Spring의 DI 컨테이너 (IOC 컨테이너) 이번글에서는 Spring DI 컨테이너를 좀더 자세히 알아보고 DI 컨테이너를 Spring에서 Java code로 설정해보는 방법에 대해서 알아본다. 그전에 그림과 함께 DI 컨테이너(DI)가 어떻게 OCP,DIP를 해결해주는지에 대해 복습해보자. 1 2 3 4 5 public class Car { // private Engine engine = new EngineA(); private Engine engine = new EngineB(); } Colored by Color Scripter cs 위와 같은 코드의 클래스 다이어 그램을 의존관계와 함께 나타내보면 아래와 같다. Car 클래스는 interface인 Engine에도 의존하지만 구현체 클래스인 EngineA, EngineB에도 의존한다. 계속해서.. Spring 5년 전
Spring에서 OCP, DIP위반 문제를 어떻게 해결할까? 이번 글에서는 DI(Denpendency Injection)를 설명하며 이것이 어떻게 OCP, DIP위반 문제를 해결하는지에 대해서 알아보도록 한다. DI(Denpendency Injection)란 - 말 그대로 의존성을 주입한다는 것이다. 1 2 3 4 5 public class Car { // private Engine engine = new EngineA(); private Engine engine = new EngineB(); } Colored by Color Scripter cs 위의 상황에서 Car 클래스는 구현체인 EngineB, EngineA에 의존한다.(DIP 위반) Car가 사용하는 엔진을 교체하려면 코드 수정이 필요하다(OCP 위반) 위의 코드를 DI를 사용해 수정한다면 아래 그림과 .. Spring 5년 전
Spring 과 객체지향(SOLID) SOLID란 Clean Code로 유명한 Robert Martin이 정리한 좋은 객체지향 설계의 5가지 원칙이다. - SRP : 단일 책임 원칙 (Single Reponsiblility Principle) - OCP : 개방-폐쇄 원칙 (Open/Closed Principle) - LSP : 리스코프 치환 원칙 (Liskov substitution principle) - ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) - DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) SRP 단일 책임 원칙 (Single Reponsiblility Principle) 한 클래스는 하나의 책임만 가져아 한다. 하나의 책임이라는 것의 범위.. Spring 5년 전