인프런 커뮤니티 질문&답변

alzpqm님의 프로필 이미지
alzpqm

작성한 질문수

스프링 핵심 원리 - 기본편

컴포넌트 스캔과 의존관계 자동 주입 시작하기

@Component 사용이 OCP를 위배하지는 않는가요?

작성

·

186

4

  앞서 강의에서 AppConfig파일을 만들고 의존성을 주입했던 이유는

 - 기존의 자바 코드가 DIP를 위반 했고,

 - 또한 OCP 역시 만족하지 못했기 때문이었습니다.

 따라서 AppConfig파일은 기존의 코드를 전혀 건들지 않고도 새로운 구현체를 역활에 맞게 끼워넣을 수 있었습니다.

 하지만 @ComponentScan과 @Component를 통해 자동으로 스프링빈을 등록하는 방식은 역활에 따른 구현을 갈아 끼울 때 또다시 코드를 '수정'해야합니다. 저의 생각으로는 이는 앞서 말했던 OCP를 위반하는 방식 같은데, 이러한 방식은 OCP를 위반해서라도 더 편하게 Bean을 관리하기 위함입니까? 아니면 뒷쪽 강의에서 이에대한 이야기가 추가적으로 언급이 되나요?

답변 2

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. alzpqm님

고민하신 부분이 맞습니다. 여기서 중요한 점은 @Component를 A -> B로 변경하더라도 클라이언트 코드는 변경하지 않는다는 점입니다.

대신에 편의성을 위해 구현 코드의 @Component를 붙였다 때야하기 때문에 구현 코드 입장에서 일부 트레이드 오프가 발생합니다.

편의성을 위해서 일부를 희생한 트레이드 오프로 생각하시면 됩니다.

이후 공부하시면 다양한 케이스를 볼 수 있는데, 그때 다음 글도 읽어보시면 도움이 되실거에요.

https://www.inflearn.com/questions/160058

감사합니다.

1

alzpqm님의 프로필 이미지
alzpqm
질문자

답변 감사합니다! 

alzpqm님의 프로필 이미지
alzpqm

작성한 질문수

질문하기