• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

IoC/DI와 POJO의 관계

21.07.19 01:48 작성 조회수 424

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

지우영님의 프로필

지우영

질문자

2021.07.21

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

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