공유하기

SOLID

솔리드

객체지향 설계의 다섯 가지 원칙(단일 책임·개방-폐쇄·리스코프 치환· 인터페이스 분리·의존성 역전)의 앞글자를 딴 말. 유지보수와 확장이 쉬운 코드를 만들기 위한 지침으로 쓰인다.

예시

  • 이 클래스는 SOLID의 단일 책임 원칙을 어기고 있어서 리팩터링이 필요하다.
  • SOLID 원칙을 지키면 요구사항이 바뀌어도 코드 수정 범위가 줄어든다.

유래

다섯 원칙은 로버트 C. 마틴이 1990년대 후반~2000년대 초반 논문·강연을 통해 정리했고, 'SOLID'라는 두문자어 자체는 2004년경 마이클 페더스가 이름 붙였다.

설명

SOLID는 다섯 가지 객체지향 설계 원칙의 앞글자를 딴 두문자어입니다.

  • S — 단일 책임 원칙(Single Responsibility): 클래스는 단 하나의 책임만 가져야 한다.
  • O — 개방-폐쇄 원칙(Open/Closed): 확장에는 열려 있고, 변경에는 닫혀 있어야 한다.
  • L — 리스코프 치환 원칙(Liskov Substitution): 자식 클래스는 부모 클래스를 대체할 수 있어야 한다.
  • I — 인터페이스 분리 원칙(Interface Segregation): 클라이언트가 쓰지 않는 인터페이스에 의존하게 하면 안 된다.
  • D — 의존성 역전 원칙(Dependency Inversion): 고수준 모듈은 저수준 모듈이 아니라 추상화에 의존해야 한다.

이 다섯 원칙을 함께 적용하면 요구사항이 바뀌어도 코드 수정 범위가 좁아지고, 테스트하기 쉬운 구조를 유지할 수 있습니다. 클린 아키텍처를 비롯한 여러 아키텍처 패턴의 이론적 토대로도 자주 언급됩니다.

TECH중립2004설계원칙개발객체지향

관련 용어