개발

SOLID 원칙

코딩하는후운 2022. 8. 24. 19:06
반응형

출처: https://mangkyu.tistory.com/194

https://black-jin0427.tistory.com/192

 

객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대해 알아보자

 

SRP(단일 책임 원칙)

OCP(개방-폐쇄 원칙)

LSP(리스코프 치환 원칙)

ISP(인터페이스 분리 원칙)

DIP(의존 역전 원칙)

 

[단일 책임의 원칙(Single Responsibility Principle, SRP)]

  • 하나의 모듈은 한 가지 책임을 가져야 한다.
  • 모듈이 변경되는 이유가 한가지여야 함을 의미한다.
  • 단일 책임 원칙을 적용하여 적절하게 책임과 관심이 다른 코드로 분리하고, 서로 영향을 주지 않도록 추상화 함으로써 애플리케이션의 변화에 손쉽게 대응할 수 있다.

 

[개발 폐쇄 원칙 (Open-Closed Principle, OCP)]

  • 확장에 대해 열려있고 수정에 대해서는 닫혀있어야 한다.
  • 확장에 대해 열려 있다: 요구사항이 변경될 때 새로운 동작을 추가하여 애플리케이션의 기능을 확장할 수 있다.
  • 수정에 대해 닫혀 있다: 기존의 코드를 수정하지 않고 애플리케이션의 동작을 추가하거나 변경할 수 있다.
  • 추상화를 통해 변하는 것들은 숨기고 변하지 않는 것들에 의존하게 하면 우리는 기존의 코드 및 클래스들을 수정하지 않은 채로 애플리케이션을 확장할 수 있다.

 

[인터페이스 분리 원칙 (Interface segregatin principle, ISP)]

  • 클라이언트의 목적과 용도에 적합한 인터페이스 만을 제공하는 것이다.
  • 모든 클라이언트가 자신의 관심과 맞는 퍼블릭 인터페이스(외부에서 접근 가능한 메세지)만을 접근하여 불필요한 간섭을 최소화

 

[리스코프 치환 원칙 (Liskov Substitution Principle, LSP)]

  • 하위 타입은 상위 타입을 대체할 수 있어야 한다는 것이다.
  • 자식 클래스가 부모 클래스를 대체하기 위해서는 부모 클래스에 대한 클라이언트의 가정을 준수해야 한다는 것을 강조한다.

 

[의존 역전 원칙 (Dependency Inversion Principle, DIP)]

  • 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 되며, 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다는 것이다.
  • 고수준 모듈: 변경이 없는 추상화된 클래스(또는 인터페이스)
  • 저수준 모듈: 변하기 쉬운 구체 클래스
  • 추상화에 의존하며 구체화에는 의존하지 않는 설계 원칙을 의미한다.

 

 

 

반응형

'개발' 카테고리의 다른 글

Aes란?  (0) 2022.10.20