작성
·
61
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
12. 다형성과 설계 강의 자료에서 OCP원리를 보면 코드 수정은 닫혀 있다는 의미에서 "새로운 차를 추가하게 되면 기능이 추가되기 때문에 기존 코드의 수정은 불가피하다. 당연히 어딘가의 코드는 수정해야 한다."라고 되어 있습니다. 기존 코드의 수정이 불가피하다고 하는데 왜 코드 수정은 닫혀 있다고 표현하는 건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 박주용님께서 질문하신 OCP 원리에 대해 설명드리겠습니다.
OCP(Open-Closed Principle)는 객체지향 설계 원칙 중 하나로 “확장은 가능하되, 수정은 불가능해야 한다”는 개념을 뜻합니다. 이 원칙에 따르면, 새로운 기능을 추가하기 위해 기존의 코드를 변경하지 않고 기존 코드의 변경 없이도 기존 기능을 확장할 수 있어야 합니다.
질문하신 사항과 관련하여 기존 코드의 수정이 불가피하다고도 표현되는 경우가 종종 있습니다. 이는 새로운 기능이 추가되거나 변경될 때, 인터페이스나 상위 클래스와 같은 구조적 부분을 통해 기존의 동작을 손상시키지 않고 확장할 수 있도록 해야 한다는 의미로 이해할 수 있습니다. 즉, 기존의 비즈니스 로직이나 데이터 흐름을 방해하지 않는 선에서 확장할 수 있어야 한다는 것입니다.
이해를 돕기 위한 추가 자료로, 두 개의 유사한 질문에 대한 답변을 참고하시면 도움이 될 것입니다:
OCP의 대해서 질문이 있습니다.에서는 메서드 이름 변경이나 파라미터 추가와 같은 사항이 OCP를 지키는 데 어려움을 줄 수 있는 상황에 대해 설명합니다.
OCP 개방-폐쇄 원칙에 관해는 소수의 메서드만 수정하고 싶을 때, 기존 클래스를 어떻게 활용할 수 있는지에 대한 질문과 답변을 제공합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.