잡다한 사전

(2023.11.29) 객체 지향 설계 5원칙(SOLID) 본문

프로그래밍 언어/node.js

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

잡사전집사 2023. 11. 29. 16:53
반응형

이번 장에서는 객체 지향 설계 5원칙인 SOLID에 대해서 알아보도록 하겠습니다. 

 

SOLID는 (SRP, OCP, LSP, ISP, DIP)를 이야기하며 5개의 개발 원칙에 대해서 자세하게 알아보도록 하겠습니다.

 

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

● OCP (Open Closed Priciple) : 개방 폐쇄 원칙

● LSP (Listov Substitution Priciple) : 리스코프 치환 원칙

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

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

 

1. 단일 책임 원칙 - SRP (Single Responsibility Principle)

● 특징 

    ☑︎ 단일 책임 원칙은 클랙스는 단 하나의 책임을 가질 수 있다는 원칙이다. 

         ( 하나의 책임을 가질 수 있다는 뜻은 클래스나 모듈을 변경할 이유가 하나 뿐이어야 한다는 원칙을 말합니다.)

    ☑︎ 하나의 클래스에서 여러개의 기능이 존재하다면 기능 하나의 책임을 수행하도록 클래스를 따로 설계하는 것입니다.

    ☑︎ 하나의 기능에 책임을 가지는 원칙의 목적은 프로그램의 유지보수를 쉽게 하기위한 설계 기법입니다. 

 

2. 개발 폐쇄 원칙 - OCP (Open Closed Principle)

● 특징

    ☑︎ OCP의 원칙은 확장에는 열려있으면서 수정에는 닫혀있어야한다는 뜻입니다.

    ☑︎ 기능을 추가하는 요청이 오면, 클래스를 확장을 통하여 쉽게 구현을 하지만, 확장에 다른 수정은 최소화를 하여 프로그램을 작성하는 설계 입니다.

    ☑︎ OCP의 원칙은 추상화 사용을 통해 관계 구축을 권장을 의미하는 것을 이야기합니다.

 

3. 리스코프 치환 원칙 - LSP (Liskov Substitution Principle)

● 특징

    ☑︎ LSP 원칙은 서브 타입은 항상 부모 타입으로 교체할 수 있어야한다는 원칙입니다.

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

         ( 예를 들어, S가 T의 하위 유형이라고 한다면, 프로그램의 기능에 변화를 주지않고 T타입 객체를 S객체로 대체 가능해야합니다. )

 

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

● 특징

    ☑︎ ISP 원칙은 인터페이스를 각각 사용하에 맞게 분리를 해야한다는 설게 원칙입니다.

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

 

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

● 특징

    ☑︎ DIP 원칙은 어떤 Class를 참조해서 사용하는 상황이 생긴다면, 참조하는 Class를 직접 참조하는 것이 아닌, 그 대상의 상위 요소로 참조를 하라는 원칙이다.

    ☑︎ 구현 클래스에 의존을 하기보다, 인터페이스에 의존을 하라는 의미입니다.

반응형