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

지우영님의 프로필 이미지
지우영

작성한 질문수

스프링 프레임워크 핵심 기술

IoC 컨테이너 1부: 스프링 IoC 컨테이너와 빈

IoC/DI와 POJO의 관계

작성

·

599

1

안녕하세요! 스프링 공부 하다가 스프링이 추구하는 철학에 대해 궁금한 부분이 생겨 질문드립니다.

스프링 3대 철학은 IoC/DI, AOP, PSA이고 이 세가지 철학을 통해 궁극적으로 POJO와 같은 특정 서비스에 의존하지 않는 클래스를 만들어내는 것을 추구한다고 이해하고 있습니다.

다시 말해 3가지 개념을 잘 적용하면서 따라가다보면, 그 결과로써 POJO 클래스를 얻을 수 있다고 생각됩니다.

여기서 질문은, AOP나 PSA의 경우에는 클래스로부터 부가로직을 걷어내고 특정 기술을 추상화함으로써 클래스에 비즈니스 로직만을 남겨두기 때문에, POJO를 만드는 것과의 연결성이 직관적으로 이해가 되는데 반해, IoC/DI는 어떠한 역할을 하기에 POJO를 생성하는데 도움이 되는 것인지 그 연결성이 잘 이해가 되지 않습니다.

스프링의 IoC 컨테이너를 통해 많은 객체들의 라이프사이클 및 의존관계를 용이하게 설정할 수 있다는 장점은 떠오르지만, 이것이 어째서 POJO를 만드는 것인지 아무리 생각하고 찾아봐도 잘 이해가 안 되는 것 같습니다.

어떠한 부분에서 IoC/DI라는 개념이 POJO로 연결된다고 생각할 수 있을까요?

답변 2

3

백기선님의 프로필 이미지
백기선
지식공유자

3대 "철학"이 아니라 세가지 "주요 기능" 정도로 이해하시면 좋겠네요. IoC 컨테이너의 도움 없이 싱글톤 패턴을 모든 객체에 적용하려면 복잡한 코드가 많이 들어가게 될텐데 스프링이 제공하는 IoC/DI 기능 덕분에 그럴 필요없이 클래스가 원래 하려던 일과 관련된 코드만 있는 상태에서도 객체를 싱글톤으로 만들어 쓰거나 의존성 주입을 할 수 있으니 IoC/DI도 POJO에 일조한다고 생각할 수 있습니다.

0

지우영님의 프로필 이미지
지우영
질문자

이해에 많은 도움이 되었습니다!

좋은 답변 감사드립니다 ㅎㅎ

지우영님의 프로필 이미지
지우영

작성한 질문수

질문하기