전체 글124 18. IoC, DI, 그리고 컨테이너 이전까지 개발한 프로그램을 바탕으로 IoC와 DI, 컨테이너의 개념을 정리해본다. 제어의 역전 - IoC (Inversion of Control) 제어의 역전이란, 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 말한다. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 의존관계의 구현체를 직접 생성, 연결, 실행했었다. 이렇게 객체를 직접 생성 및 호출한다는 것은 프로그램의 제어 흐름을 직접 통제한다는 의미고, 개발자 입장에서는 이것이 자연스러운 흐름이었다. 하지만 AppConfig와 같은 구성 영역이 등장한 후로, 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 구현 객체에게 필요한 의존성은 모두 AppConfig와 같은 외부로부터 주입받는다. OrderService.. 2023. 10. 25. 17. 좋은 객체 지향 설계의 5가지 원칙 (SOLID)의 적용 지난 포스트까지 개발한 프로그램을 좋은 객체 지향 설계의 5가지 원칙 (SOLID)의 관점에서 보자면, 단일 책임 원칙(SRP), 의존관계 역전 원칙(DIP), 개방-폐쇄 원칙(OCP)를 적용할 수 있다. https://debuggingworld.tistory.com/80 3. 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 지난 포스트에서 좋은 객체 지향 프로그래밍이란 프로그램의 유연한 변경이 가능하도록 하여 개발 생산성을 높이는 것이라 하였다. 그리고 이것을 위해서는 객체 지향의 다형성을 극대화하고, debuggingworld.tistory.com 단일 책임 원칙 - SRP 하나의 클래스는 하나의 책임만 가져야 한다. AppConfig 추가 이전까지, 클라이언트 객체는 직접 구현 객체를 생성 및 연.. 2023. 10. 25. 16. 새로운 구조와 할인정책 적용, 전체 흐름 정리 지난 포스트까지 각 인터페이스 구현체를 생성하고 이를 연결하는 AppConfig를 작성하였다. https://debuggingworld.tistory.com/93 15. AppConfig 리팩터링 지난 포스트에서 AppConfig를 추가하여 구현 객체를 생성하고 연결하는 역할을 분리하였다. 근데 AppConfig 코드를 보면, 중복되는 부분이 보이고, 역할에 따른 구현이 한 눈에 잘 들어오지 않는다. pa debuggingworld.tistory.com 이제 새롭게 추가된 AppConfig를 통해 실제로 새로운 할인 정책을 적용해본다. 새로운 구조와 할인 정책 적용 처음으로 돌아가, 기존 정액 할인 정책을 정률 할인 정책으로 변경해본다. 즉 DiscointPolicy의 구현체를 FixDiscountPol.. 2023. 10. 24. 15. AppConfig 리팩터링 지난 포스트에서 AppConfig를 추가하여 구현 객체를 생성하고 연결하는 역할을 분리하였다. 근데 AppConfig 코드를 보면, 중복되는 부분이 보이고, 역할에 따른 구현이 한 눈에 잘 들어오지 않는다. package hdxian.hdxianspringcore; import hdxian.hdxianspringcore.discount.DiscountPolicy; import hdxian.hdxianspringcore.discount.FixDiscountPolicy; import hdxian.hdxianspringcore.member.MemberRepository; import hdxian.hdxianspringcore.member.MemberService; import hdxian.hdxiansprin.. 2023. 10. 14. 이전 1 ··· 6 7 8 9 10 11 12 ··· 31 다음