본문 바로가기
TIL

TIL #19) 객체 지향 설계 5원칙(SOLID)

by 해룸 2024. 2. 16.

SOLID

객체 지향 프로그래밍 및 설계의 다섯가지 핵심원칙

SOLD 원칙을 따르면 시간이 지나도 유지보수와 확장이 쉬운 시스템을 구축할 수 있다.

  • 단일 책임의 원칙
  • 개방 - 폐쇄 원칙
  • 리스코프 치환 원칙
  • 인터페이스 분리 원칙
  • 의존성 역전 원칙

단일 책임의 원칙

Single Responsibility Principle, SRP

하나의 객체는 단 하나의 책임을 가져야 한다. 즉, 클래스나 모듈을 변경할 이유가 단 하나 뿐이어야한다는 원칙.

동작하기만 하는 소프트웨어 보다 깨끗하고 우아하게 작성된 소프트웨어!!

개방 - 폐쇄 원칙

Open - Closed Principle, OCP

소포트웨어 엔티티 또는 개체는 확장에는 열려있으나 변경에는 닫혀 있어야 한다.

기존 코드에 영향을 주지않고 소프트웨어에 새로운 기능이나 구성요소를 추가할 수 있어야한다.

리스코프 치환 원칙

Liskov substitution principle, LSP

어플리테이션에서 객체는 프로그램의 동작에 영향을 주지 않으면서, 하위 타입의 객체로 바꿀 수 있어야 한다.

 

인터페이스 분리 원칙

Interface segregtion principle, ISP

특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.

클라이언트가 필요하지않는 기능을 가진 인터페이스에 의존해서는 안되고, 최대한 인터페이스를 작게 유지해야한다.

인터페이스는 작고 구체적으로 유치한다.

의존성 역전 원칙

Dependency Inversion Principle, DIP

프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.

고수준 계층의 모듈은 저수준 계층의 모듈에 의존해서는 안된다. 둘 다 추상화에 의존해야 한다.

 

여기까지가 SOLID 5가지 원칙인데.. 솔직히 완벽하게 이해가 되지는 않는다..

직접 계층 아키텍쳐를 이용해서 코드실습을 하니 좀 알것같기도 하고..?

일단 최대한 작게작게작게 쪼개어서.. 하나의 함수는 하나의 기능을 담당해야하고, 직접적으로 변경을 하거나 

과도하게 확장하는게 아니라.. 보기 편안하게? 나눈다는 개념으로 이해했다.

 

 

 

'TIL' 카테고리의 다른 글

TIL #21) 기존코드 3계층 분리하기  (0) 2024.02.21
TIL #20) 객체 지향 프로그램  (0) 2024.02.19
TIL #18) Transaction  (0) 2024.01.30
TIL #17) ORM, Prisma 파먹기  (0) 2024.01.27
TIL #16) CPU 구성요소  (0) 2024.01.26