SOLID Design

SOLID 적용 판단표

SOLID는 클래스 이름을 예쁘게 나누는 규칙이 아니라 변경 이유, 확장 방식, 대체 가능성, 인터페이스 크기, 의존 방향을 점검하는 기준입니다.

SRP변경 이유 하나
OCP확장 열림
LSP대체 가능
DIP추상화 의존
01

단일 책임

한 모듈이 너무 많은 변경 이유를 가지면 테스트와 수정 범위가 커집니다.

02

개방 폐쇄

기존 코드를 직접 고치기보다 새 구현을 추가해 확장할 수 있게 합니다.

03

리스코프 치환

하위 타입이 상위 타입 계약을 깨지 않고 대체될 수 있어야 합니다.

04

의존성 역전

구체 구현보다 인터페이스와 추상화에 의존하도록 경계를 만듭니다.

TypeScript 감각

  • interface는 구현을 숨기고 필요한 계약만 노출하는 데 유용합니다.
  • 유니언 타입과 제네릭은 확장을 코드 수정 없이 표현할 수 있게 돕습니다.
  • 작은 인터페이스를 조합하면 사용하지 않는 메서드 의존을 줄일 수 있습니다.

원칙

SRP책임
OCP확장
LSP대체
DIP역전