본문 바로가기
728x90

JAVA & SPRING/Spring 입문7

스프링 핵심 원리 - 7일차(빈 생명주기 콜백) 디비와 연동하거나 네트워크 소켓처럼 미리 연결을 해야지 바로바로 응답할 수 있고, 서버 다운될때 한번에 종료되는것보다 미리 안전하게 종료가 더 좋다고 함 이러한 기능을 스프링에서 어떻게 하는지 알아본다. 간단한게 네트워크 미리 연결하는 객체 예제를 통해 알아보면, package hello.core.lifecycle; public class NetworkClient implements InitializingBean, DisposableBean { private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); connect(); call("초기화 연결 메세지"); } public void setUrl(String.. 2023. 7. 31.
스프링 입문 강의 - 5일차(AOP) 이제 이 입문강의에서 들을 수 있는 마지막 AOP에 대해서 정리하려고 한다. 보통 컴공 1학년이 C에서 포인터 부분을 나가게 되면 다들 이제 실력이 평등하게 된다고 한다는 말이 있다 스프링에서는 AOP가 이 역할을한다고 한다. 그만큼 어렵지만 중요하기때문에 열심히 공부를 해야하는 부분일 수도 있다. AOP란 Aspect Oriented Programming 의 약자로 관점 지향 프로그래밍 이라고도 부른다고함 AOP를 왜써야되는지 어디서 필요한지에 대해 먼저 정리를 하면, 만약 의뢰인이 지금 현재 내가 만든 코드들의 시간을 측정해달라고 부탁했다고 쳐보자. 그럼 위 사진들처럼 3개 부분의 시간을 측정을 해야한다. 일단 MemberService 회원 조회 시간을 측정하려면 package hello.hellos.. 2023. 7. 20.
스프링 입문 강의 - 5일차(JDBCTemplate, JPA, 스프링데이터 JPA) 저번시간에 순수한 JDBC를 통해 개발을 했다(고대 개발자들 따라하기) 오늘은 JDBC 라이브러리 활용 & JPA 활용 과 AOP까지 정리를 할예정이다.(스프링 입문 강의 드디어 끝!) JDBC 라이브러리를 활용하면 쌩으로 처음부터 끝까지 개발하는거에 비해 코드가 훨씬 간결해진다. 중복된 코드들이 없어지기 때문 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.. 2023. 7. 20.
스프링 입문 강의 - 4일차 (MVC, 순수 JDBC) 이제 홈 화면을 추가해서 스프링을 실행했을때 화면이 나오게끔 하는 작업을 진행한다(스프링 MVC) 우선 화면을 보여주려면 컨트롤러를 추가해야한다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 이렇게 하면 GetMapping에 아무것도 없으므로 아무것도 없으면 "home" 이라는 html을 화면으로 보여준다. 그래서.. 2023. 7. 19.
스프링 입문 강의 - 3일차 (스프링 빈, Controller) 오늘 강의는 스프링 빈 과 의존관계 에 대해서 배웠다 Controller 패키지에 MemberController를 만들고 클래스 이름 위에 @Controller 어노테이션을 붙인다. 이 Controller 어노테이션이 있으면 스프링 컨테이너에 객체를 생성해서 스프링이 관리한다.(즉 컨트롤러는 스프링 컨테이너가 관리함) package hello.hellospring.controller; import hello.hellospring.service.Memberservice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller //컴포넌트 스.. 2023. 7. 18.
스프링 입문 강의 - 2일차 (스프링 계층 구조) 이번 강의에서는 비지니스 요구사항 및 회원 도메인을 간략하게 개발 하는식으로 진행했다.(아직 내가 자바와 스프링의 개념이 중요해서 이번 강의는 좀 어렵게 느껴짐.. 분발하자) 일반적인 웹 애플리케이션 계층 구조에 대해서 먼저 말하자면 컨트롤러 -> 웹 MVC의 컨트롤러 역할을 한다(말 그대로 컨트롤 데이터를 준다던지) 서비스 -> 핵심 비즈니스를 로직으로 구현을 한다 레포지토리 -> DB에 접근하고, 도메인 객체를 DB에 저장하고 관리한다. 도메인 -> 비즈니스 도메인 객체로 회원,주문,쿠폰 등등 주로 데이터베이스에 저장하고관리한다. 이번에 강의들으면서 어떠한 상황에서 개발할건지에 대한 상황을 먼저 말하자면 아직 데이터 저장소를 선정하지 않는다는 가정하에 개발을 진행한다. 메모리에 저장한다고 보면됨 ( .. 2023. 7. 14.
스프링 입문강의-1일차 (스프링이란..) 인프런 김영한님 강의를 듣고 정리하려고 한다. (정리를 그렇게 잘하는 편은 아니지만.. 일단 정리하면서 내 머릿속도 같이 장리한다는 느낌으로) 스프링을 하면 이제 https://start.spring.io/ 여기서 스프링 파일을 생성할텐데 project를 보면 Gradle 과 Maven이 존재한다. 둘다 쉽게 말해서 라이브러리를 땡겨오고 빌드까지 관리해주는 툴을 말한다 과거에는 Maven을 썼지만 요즘은 Gradle로 넘어왔기때문에 일단 이렇게 알아두면 됨 또 버전에 관해서 괄호하고 SNAPSHOT이라고 적혀있는거는 아직 만들고 있는 버전이라고 생각하면 된다 실험중인 버전이라고 생각하면 될듯-> 선택하면 안됨 Group에는 보통 도메인을 거꾸로 적는다 Artifact에는 프로젝트 명 중요한건 Depend.. 2023. 7. 14.
728x90