작성
·
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