2025-08-09 00:05

Tags: 소프트웨어 공학

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

“소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.”

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

References

SOLID