SOLID

SOLID는 TypeScript 타입으로 변경 지점을 좁히는 설계 기준이다

원칙을 외우기보다 클래스와 인터페이스가 왜 바뀌는지, 의존성이 어느 방향으로 흐르는지 확인한다.

SRP

하나의 변경 이유만 가진다.

OCP

확장에는 열고 수정에는 닫는다.

LSP

하위 타입이 상위 계약을 깨지 않는다.

ISP

큰 인터페이스를 역할별로 나눈다.

DIP

구현보다 추상에 의존한다.

적용 기준: 타입을 추가할수록 코드가 덜 흔들리면 좋은 추상화이고, 더 많은 수정이 필요하면 경계가 잘못된 것이다.