[Spring] 설계 원칙(SOLID 5원칙)

푸른별·2023년 7월 31일
0

Web

목록 보기
9/16
post-thumbnail

1. SOLID 원칙이란

객체지향 프로그래밍(OOP)을 설계할 때는 SOLID 원칙을 지키며 설계하는 것을 지향합니다.

SRP: 단일 책임 원칙(Single Responsibility Principle)
OCP: 개방-폐쇄 원칙(Open Closed Principle)
LSP: 리스코프 치환 법칙(Liskov Substitution Principle)
ISP: 인터페이스 분리 원칙(Interface Segregation Principle)
DIP: 의존 역전 원칙(Dependency Inversion Principle)

2. SOLID 각 특징에 대한 설명

SRP: 한 클래스는 하나의 책임만을 가져야 합니다. 수정사항이 영향이 약할 경우 SRP를 잘 지키는 것으로 판단할 수 있습니다. 이는 낮은 결합도, 높은 응집도를 얻기 위함입니다.

OCP: 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 합니다. 다형성을 사용하고 별도의 설정자를 사용하여 OCP를 지킬 수 있습니다.

LSP: 프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 합니다. 다형성을 지원하기 위한 기본 원칙이기도 합니다.

ISP: 특정 클라이언트를 위한 여러 인터페이스가 범용 인터페이스 하나보다 효율적입니다. 인터페이스가 명확해지고, 대체 가능성이 높아지며 수정 시 영향을 미치는 클라이언트가 적어지는 이점을 얻을 수 있습니다.

DIP: 추상화에 의존하되, 구체화에 의존하지 않는 원칙입니다. 구현 클래스보다 인터페이스에 의존하는 것으로 의존성 주입이 이 원칙을 따르는 대표적인 예시로 볼 수 있습니다.(구현체에 의존 시 변경이 용이하지 않음)

profile
묵묵히 꾸준하게

0개의 댓글