티스토리 뷰
회원 관리 예제 만들어보기
컨트롤러 : 웹 MVCdml 컨트롤러 역할 리포지토리 : DB에 접근, 도메인 객체를 DB에 저장
서비스 : 핵심 비즈니스 로직 구현 도메인 : 비즈니스 도메인 객체(회원, 주문 등 ..), DB에 저장됨
테스트케이스 - main메서드 실행하거나, 컨트롤러를 통해 해당 기능을 실행하여 검증하기는 오래걸리고 반복이 어렵다.
JUnit 프레임워크를 통해 이를 해결할 수 있다.
짧게 배운 테스트 해보기
Test 패키지에 테스트하려는 대상Test 클래스 생성 후 @Test를 사용한다. (Test라는 것을 알려줌)
테스트는 순서가 랜덤, 각 테스트들끼리는 의존적이지 않아야 한다.
각 테스트가 끝난 후 테스트에 사용한 객체를 초기화 해줘야 한다. (보통 @AfterEach를 사용한다고 한다.)
테스트 시 given -> when -> then 사항을 준수하며 작성해보자.
스프링 빈과 의존관계
스프링 빈은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다.
빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.
-> 스프링 빈을 통해 클래스마 객체 생성 하지 않고 하나의 객체를 공유하여 쓸 수 있다. ( 일반적으로 싱글톤 방식 )
등록 방법
컴포넌트 스캔과 자동 의존관계 설정
@Component( @SpringBootApplication과 같은 패키지의 있는 어노테이션을 모두 스프링 빈에 자동 등록 시킴 )
@Controller, @Service, @Repository -> @Component를 세분화(정형화) 한 어노테이션
자바 코드로 직접 스프링 빈 등록하기
의존 관계 성립
각 컨트롤러, 서비스, 리포지토리에 컴포넌트 스캔을 하면 스프링 빈으로 등록되며,
객체가 필요한 경우 객체 생성이 아닌 @Autowired를 사용한 생성자를 통해 의존성 주입을 받는다.
+) 의존성 주입(Dependency Injection) - 생성자 주입(선호), 필드 주입(비추), Setter를 통한 주입(접근이 public이라 불안..)
본 포스팅은 인프런 강의 중 김영한님의
[ 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 을 수강하며 작성한 내용입니다.