객체지향 설계 5대 원칙 (SOLID)

Jihun Kim·2021년 8월 26일
0

SOLID란 무엇인가?

  • 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 소개한 것.
  • 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리펙토링 할 수 있게 적용할 수 있는 지침이다.

SRP (Single Responsibility Priciple) - 단일 책임 원칙

  • 한 클래스는 하나의 책임만 가져야 한다.
  • 클래스는 그 책임을 완전히 캡슐화하여야 한다. 클래스가 제공하는 모든 기능은 이 책임과 부합해야 한다.

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

  • 소프트웨어 요소는 확장에는 열려 있지만 변경에는 닫혀 있어야 한다.
  • 하나의 변화가 다른 곳에도 연쇄적으로 변화를 일으키는 것을 방지한다.

LSP (liskov Substitution Principle) - 리스코프 치환 원칙

  • 컴퓨터 프로그램에서 자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 치환할 수 있어야 한다.
  • 자식 클래스는 부모클래스의 역할을 완벽히 수행할 수 있어야 한다.

ISP (Interface Segregation Principle) - 인터페이스 분리 원칙

  • 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다.
  • 클라이언트 입장에서 사용하는 기능만 제공하도록 인터페이스를 분리해야한다.
  • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

DIP (Dependency Inversion Principle) - 의존 역전 원칙

  • 자신보다 변하기 쉬운 것에 의존하지 않아야 한다.
  • 첫째, 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.
  • 둘째, 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.
profile
backend studying

0개의 댓글