Computer/CS

클린 아키텍처 7~8강

안녕도라 2025. 12. 4. 15:13

SOLID 원칙의 목적은 중간 수준의 소프트웨어 구조가 아래와 같도록 만드는 데 있다.

  • 변경에 유연하다.
  • 이해하기 쉽다
  • 많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반이 된다.

 


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

SRP(Single Responsibility Principle) : 단일 책임 원칙

 

하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다.

  • [A] calculatePay() : 회계팀에서 기능 정의
  • [B] reportHours() : 인사팀에서 기능 정의
  • [C] save() : 데이터베이스 관리자가 기능 정의

위반 징후 1: 우발적 중복

 

A와 B가 같은 regularHours라는 함수를 호출한다고 할 때, 그 함수를 B에 맞게 고쳐버리면 A에도 영향이 간다.

 

서로 다른 액터가 의존하는 코드를 서로 분리하라!


위반 징후 2: 병합

 

많은 사람이 서로 다른 목적으로 동일한 소스 파일을 변경하는 경우, 

충돌이 일어나고 이로인한 병합은 안전하지 않음

 


OPC(Open-Closed Principle) : 개방폐쇄원칙

 

소프트웨어 개체는 확장에는 열려 있어야 하고, 변경에는 닫혀있어야 한다.