2025-08-09 00:05
Tags: 소프트웨어 공학
개방 폐쇄 원칙(Open-Closed Principle)
“소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.”
- 확장에 대해 열려 있다: 기존 코드 변경 없이 동작 추가 및 변경 가능
- 수정에 대해 닫혀 있다: 한번 만들어지고 테스트까지 된 코드는 특별한 이유 없는 한 수정X
- 추상화를 통해 즉, 인터페이스나 추상 클래스에 코드가 의존하도록 함
- 좋은 원칙이지만 모든 것을 추상화하고 분리 하려고 하면 과잉 설계 로 이어질 수 있음
- 변화가 예상되는 지점을 예측하고 개방 폐쇄 원칙 적용
- 처음부터 적용하는게 아니라 변화 필요성이 명확해졌을때 리팩토링