패캠 JAVA 14일차
자바 웹프로그래밍 2기 강의 14일차 내용을 정리한 포스팅입니다.
단위 테스트 잘하기
- 객체 지향적으로 개발하기
테스트 하기 쉬운 코드라는 것은
-
새로운 기능이 추가 되었을때 확장 쉬운 구조
-
기능이 변경되었을때 기능을 변경하기 쉬운 구조
DI를 쓰는 이유에 대해 생각해보면
스프링이 빈의 인스턴스를 관리한다. 스프링 컨테이너가 인스턴스들을 인스턴스화 해서 가지고 있다가 필요할때 찾아서 쓰게 해준다.
DI : 나는 의존관계 있는 객체는 쓰기만 할거니 인스턴스화 해서 나에게 전달해줘
DI : 특정 인스턴스가 사용하는 인스턴스에 대한 책임을 인스턴스 본인이 책임지지 않겠다.
Bean 의존 관계 연결
스프링 설정 파일이 하는 일은?
-
인스턴스 생성 및 라이플사이클 관리
-
인스턴스 간의 의존관계 설정
스피링은 설정파일을 기반으로 싱글톤 패턴이 아니지만 다들 싱글톤 처럼 동작하게 결국 어딘가에서는 인스턴스화를 해주고 있다.
Component Scan을 통한 설정
-
@Autowired, @Resource
-
@Autowired : type 기반으로 체크한다.
-
@Qualifier : 같은 클래스에 대해서 여러 bean이 선언 되어있을 때 사용
-
@Resource : @Autowird + @Qualifier
JAVA Config를 통한 설정
-
@Configuration + @Bean : 해당 클래스에 대해서 내가 수정이 힘들때, 라이브러리 같은거를 DI 용도로 사용할때
-
@CoponentScan -> @Service, @Controller, @Component … : 내가 만든 클래스 (주로 사용)
자바 Config 설정의 장점
-
설정하는 방법이 xml에 비해서 간편하다.
-
컴파일 타임에 에러를 잡아줘서 디버깅이 편리하다.