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

Kim님의 프로필 이미지
Kim

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

의존관계 주입관련해서 질문 있습니다.

작성

·

133

0

안녕하세요~ 강의잘보고 있습니다!!!

강의를 듣다가 의존관계(DI) 주입관련해서 의문이 생겼습니다.

저는 기존에 @Autowired 어노테이션을 사용하여 의존관계를 설정하였는데

김영한님 뿐만 아니라 다른 블로그를 찾아봐도 생성자 주입을 통해 DI 설정을 하고 있는데

Autowired를 사용하지않고 생성자 주입했을 때의 장점을 알려주셨으면 좋겠습니다 ㅎㅎ

답변 1

0

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

안녕하세요. Kim님^^ 좋은 질문입니다.

이게 사실 좋은 객체지향 설계란 무엇일까? 객체지향 설계와 DI는 무슨 관계가 있을까?

사실 이런 본질적인 깨닮음이 필요합니다.

간단하게 예를 들면 필드에 @Autowired를 사용하면, 해당 객체를 다른 객체로 변경하기가 참 어렵습니다.

반면에 생성자 주입을 사용하면, 외부에서 다른 객체를 편리하게 주입할 수 있다는 장점이 있습니다.

그래서 예를 드면 테스트 케이스 같은 것에 API 통신이 필요한 부분이 있다면, 이 부분을 mock 객체로 변경해서 테스트를 외부 시스템의 영향 없이 안전하게 처리할 수 있는 것이지요.

제가 8월 중에 출시 준비를 하고 있는 스프링 핵심 원리에서 이 부분을 깊이있게 다룰 예정입니다. 그래서 근본적으로 DI가 왜 필요한지 핵심 원리부터 실제 실무에서 어떻게 주로 사용하는게 좋은 방법인지도 설명드릴 예정입니다^^

감사합니다.

Kim님의 프로필 이미지
Kim

작성한 질문수

질문하기