🤨2022.12.05

일일 회고 110일차

할일 및 한일

경험 및 배움

스프링 강의 수강 및 정리

오늘은 다양한 의존 관계 주입 방법을 알아보고, 장단점등을 학습해보았다.

의존 관계를 주입하는 방법에는 생성자를 통한 주입, 수정자(setter) 주입, 필드 주입, 일반 메서드 주입이 있다. 보통 생성자를 통한 주입 방법을 제일 많이 권장하고, 쓰인다고 한다.

그 이유는 여러가지이다. 첫 번째로는 생성자를 통해 의존 관계를 주입하면 불변의 특징을 갖고 있어서 외부에서 쉽게 변경하지 않게 설계할 수 있다.

@Autowired // 생성자가 한 개일 경우 생략 가능
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
    this.memberRepository = memberRepository;
    this.discountPolicy = discountPolicy;
}

예를 들어 수정자 주입을 사용하면, setter 메서드를 public 으로 열어두어야 하기 때문에, 외부에서 쉽게 변경할 수 있고 좋은 설계 방법이 되지 않는다.

또한 생성자에서 혹시라도 개발자의 실수로 인해 값이 누락되거나, 오류가 있으면 컴파일 시점에 막아줘서 보다 안전한 개발이 가능하다.

또한 필드 주입, 그리고 일반 메서드 주입은 일반적으로는 잘 사용하지 않고, 테스트 케이스를 작성하는 경우와 같은 특별한 경우가 아닌 때에는 사용하지 말라고 하였다.

이렇게 의존 관계 방법에 대해 자세히 듣고 나니 지금까지 왜 생성자 주입을 사용했는지 바로 이해갔던 것 같다.

개선 및 목표

  • 내일은 이동통신 프로토콜 및 데이터 베이스 시험 대비를 하자!

Last updated