내용
OCP는 요구사항이 변경될 때 기존 코드를 변경하는 것이 아니라 새로운 코드를 추가하는 방향을 추구하는 원칙입니다.
- OCP는 Open-Close Principle로 소프트웨어를 설계할 때 클래스를 포함한 엔티티들은 확장에 열려있고 변경에는 닫혀있도록 설계해야 함을 뜻한다.
- 확장에 열리다: 요구사항이 변경되면 새로운 동작을 추가하여 기능을 확장할 수 있어야 함을 뜻한다.
- 변경에 닫히다: 기존 코드를 수정하지 않고 애플리케이션의 동작을 추가하거나 변경할 수 있어야 한다.
생각
- 개발 폐쇄 원칙이라고 불리는 OCP를 이해가 잘 안되고 있었는데, 위 글을 보고 뭔가 깨닫게 되었다.
- 기존 코드를 변경하면 사이드이펙트가 자연스럽게 생긴다. 그렇기에 요구사항이 변경되면 기존 코드를 버리고 새로운 코드를 만드는게 가장 좋다.
- 사이드 이펙트를 줄이기 위한 아주 좋은 방식이라고 볼 수 있다.