Joonas' Note
Joonas' Note
SOLID 원칙 - Open/Closed Principle (OCP; 개방-폐쇄 원칙) 본문
SOLID 원칙들은, 소프트웨어 작업에서 프로그래머가 소스 코드를 읽기 쉽고 확장하기 쉽게 될 때 까지 리팩토링하여
코드 냄새를 없애기 위해 쓰기 좋은 지침이다.
정의
Open/Closed Principle (OCP; 개방-폐쇄 원칙)
소프트웨어 요소는 확장에는 열려 있으나, 변경에는 단혀 있어야 하다.
모듈 중 하나를 수정했는데, 그 모듈을 사용하는 모든 모듈의 코드를 수정하는 일이 있으면 안된다는 뜻이다.
조금만 떠올려봐도 얼마나 끔찍한 일인 지 알 수 있다.
확장에 대해 열려 있다.
이것은 모듈의 동작을 확장할 수 있다는 것을 의미한다.애플리케이션의 요구 사항이 변경될 때, 이 변경에 맞게 새로운 동작을 추가해 모듈을 확장할 수 있다. 즉, 모듈이 하는 일을 변경할 수 있다.
수정에 대해 닫혀 있다.
모듈의 소스 코드나 바이너리 코드를 수정하지 않아도 모듈의 기능을 확장하거나 변경할 수 있다.그 모듈의 실행 가능한 바이너리 형태나 링크 가능한 라이브러리 (예를 들어, Windows의 DLL, 자바의 jar ...)를 건드릴 필요가 없다.
추상화
객체 지향 프로그래밍 언어에서는 "추상화"를 통해서 가능할 수 있다.
추상화 클래스나 인터페이스를 만들어, 상위 클래스는 수정할 수 없도록 만들되 서브 클래스에서는 기능을 추가하여 확장할 수 있도록 만들기 때문이다.
참고
'개발' 카테고리의 다른 글
SOLID 원칙 - Interface Segregation Principle (ISP; 인터페이스 분리 원칙) (0) | 2023.05.16 |
---|---|
SOLID 원칙 - Liskov Substitution principle (LSP; 리스코프 치환 원칙) (0) | 2023.05.16 |
SOLID 원칙 - Single Responsibility Principle (SRP; 단일 책임 원칙) (0) | 2023.05.16 |
Android Studio 깨끗하게 정리하기 (0) | 2023.01.29 |
[FastAPI + React] 소셜 로그인 구현하기 - 커스텀 로그인 (feat. 카카오) (0) | 2022.09.20 |
Comments