• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94

한 우물만 파는 기술 블로그

객체 지향 프로그래밍 및 설계 5가지 원칙
CS

객체 지향 프로그래밍 및 설계 5가지 원칙

2021. 3. 22. 23:11

2000년대 초반 로버트 C. 마틴이란 사람이 객체 지향 프로그래밍 및 설계에 대한 SOLID라는 5가지 원칙을 소개했다.

유지 보수와 확장성이 열려있는 애플리케이션을 만들려고 할 때 이 원칙들을 적용할 수 있으며,

코드의 가독성을 높이고 확장이 쉬운 구조를 만드는 지침이다.

 

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

- 객체 지향 프로그래밍에서 '단일 책임의 원칙'이란 모든 클래스는 하나의 책임만을 가지고, 클래스는 그 책임을 완전히 캡슐화해야 함을 뜻한다.

즉 변경 사항이 발생해도 책임이 있는 부분만 수정하면 된다는 뜻이다.

 

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

- '개방-폐쇄원칙'은 소프트웨어가 확장에 대해서는 열려있어야 하고, 수정에 대해서는 닫혀있어야 한다는 원칙이다.

시스템의 구조를 올바르게 구성하여 변경 사항이 발생하더라도 다른 코드나 모듈에 영향이 없도록 하는 것이다.

위 원칙이 잘 지켜진 경우 새로운 기능을 추가하거나 기존 기능을 변경하기 용이해진다.

 

3. 리스코프 치환 법칙(Liskov Substitution Principle)

- '리스코프 치환 법칙'은 서브타입이 언제나 기반 타입으로 교체될 수 있는것을 뜻한다. 인터페이스를 상속받아 구현한 서브타입의 객체는 

상속받은 기반타입으로 교체되어 동작할 수 있어야 한다는 뜻이다. 

설계 내역을 변경하지 않는 한 구체화된 클래스 객체를 변경해도 인터페이스를 구현한 클래스는 프로그램에 쉽게 스위칭될 수 있다.

 

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

- '인터페이스 분리 원칙'은 사용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다. 

인터페이스를 큰 덩어리로 놔두지 말고 작은 단위들로 분리함으로써 클래스들이 꼭 필요한 인터페이스만을 쓰도록 해야 한다.

 

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

- '의존 역전 원칙'은 의존 관계를 최대한 느슨하게 하여 추상화된 객체를 메시지로 주고받는 개념이다.

이를 통해 클래스들 간 관계 밀집성이 느슨해지고 객체의 재사용 및 변경이 용이하게 된다.

'CS' 카테고리의 다른 글

Garbage Collection  (0) 2022.05.25
Process와 Thread  (0) 2022.05.17
소프트웨어 개발방법론  (0) 2022.01.20
임계 영역 동시접근 해결 방안  (0) 2021.12.21
임계 구역과 경쟁 상태  (0) 2021.12.21
    'CS' 카테고리의 다른 글
    • Process와 Thread
    • 소프트웨어 개발방법론
    • 임계 영역 동시접근 해결 방안
    • 임계 구역과 경쟁 상태
    MJ_94
    MJ_94
    안드로이드, 개발 관련 기술 블로그

    티스토리툴바