SRP 2

IoC(제어의 역전)와 DI(의존성 주입)

핵심 키워드 IoC는 Inversion of Control. 즉, 제어의 역전이라는 뜻이다. DI는 Dependency Injection, 즉, 의존성 주입이라는 뜻이다. 분리해서 이해해도 무방하지만, IoC와 DI모두 비슷한 의미를 가지고있어서 IoC 컨테이너 또는 DI 컨테이너라고 불린다. 요즘은 의존관계 주입에 초점을 맞추어 주로 DI 컨테이너라고 불린다. 둘의 공통적인 핵심 역할은 클라이언트의 코드 변경 없이도 기능이 확장이 가능하다는 특징이 있다. 이 둘을 이해하기 위해서는 아래 키워드들을 순차적으로 이해해야한다. Spring Container : 개발자가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤 해줌 Bean : 스프링 컨테이너에서 관리되는 객체 DI : 외부에서 객..

SOLID(객체 지향 설계)

좋은 소프트웨어를 설계하기 위해서는? 코드의 재사용 및 유지보수가 용이한 것이 좋은 소프트웨어다. 이를 위해 결합도(Coupling)는 낮추고 응집도(Cohesion)는 높여야한다. 예를들어 A클래스와 B클래스가 서로 의존하고 있을 경우, A코드를 수정하면 B코드에도 영향을 끼칠 수 있다. 이런 경우를 결합도가 높다고 일컫는다. 응집도는 한 모듈 내부의 처리 요소들이 서로 관련되어있는 정도를 말한다. 응집도가 높으면 해당 모듈은 하나의 책임에 집중하고 독립성이 높아져, 재사용 및 유지보수가 용이하다. SOLID (객체지향 설계) 1. SRP (Single Responsibility Principle) 단일 책임 원칙 요약 : 한 클래스는 하나의 책임만 가진다. 예시로 아래 코드는 객체지향의 '다형성'을 ..