자바 웹프로그래밍 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에 비해서 간편하다.

  • 컴파일 타임에 에러를 잡아줘서 디버깅이 편리하다.