Computer Science/기타 CS

프로그래밍에서 SOLID란?

JM Lee 2023. 9. 26. 23:28
728x90

SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙( SRP, OCP, LSP, ISP, DIP )을 말한다.

 

  • 단일 책임 원칙 (SRP, Single Responsibility Principle)
    • 클래스(객체)는 단 하나의 책임(기능 담당)만 가져야 한다는 원칙 ex) 청소기는 청소의 기능만을 담당해야한다!
  • 개방 폐쇄 원칙 (OCP, Open Closed Principle)
    • 확장에 열려있어야 하며, 수정에는 닫혀 있어야 한다는 원칙 ex) 청소기에 튜닝(옵션)을 하더라도 기본 기능을 변경해서는 안된다!
  • 리스코프 치환 원칙 (LSP, Liskov Substitution Principle)
    • 서브 타입은 언제나 기반(부모) 타입으로 교체할 수 있어야 한다는 원칙 ex) “먼지를 모아 버린다”는 개념(부모클래스)을 상속한 빗자루(자식클래스)와 진공청소기(자식클래스)는 서로 교체가 가능하다.
  • 인터페이스 분리 원칙 (ISP, Interface Segregation Principle)
    • 인터페이스를 각각 사용에 맞게끔 잘게 분리해야한다는 설계 원칙 ex) SRP 와 유사
  • 의존 역전 원칙 (DIP, Dependency Inversion Principle)
    • 어떤 클래스를 참조해서 사용해야하는 상황이 생긴다면, 그 클래스를 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스 or 인터페이스)로 참조하라는 원칙 ex) 빗자루의 기능을 참조하려면 빗자루가 아니라, “먼지를 모아 버린다”는 개념을 상속하여 진공청소기를 개발한다.

'Computer Science > 기타 CS' 카테고리의 다른 글

데이트팝 기술면접 풀이  (0) 2024.03.04
에자일 방법론이란?  (1) 2023.10.14