강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

메이슨리님의 프로필 이미지
메이슨리

작성한 질문수

오브젝트 - 기초편

3-1. 객체지향 설계 원칙

설명중에 "그렇다면 설계를 변경하는 이유는 무엇이었나요?" 질문입니다.

해결된 질문

작성

·

196

·

수정됨

0

설명하신 내용중에 "그렇다면 설계를 변경하는 이유는 무엇이었나요?" 라고 하시면서 "프로세스와 데이터가 하나의 모듈안에 모여 있으면 코드를 수정하기 어렵기 때문이였죠." 라고 하시던데...

앞에 내용으로는 '프로세스와 데이터가 서로 다른 모듈안에 배치되어서 수정이 어려우니 프로세스를 구현한 코드를 데이터를 구현한 코드로 옮기는..' 뭐 이런거 아니였나요??

제가 잘못 이해하고 있는건가요?

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

메이슨 리님께서 언급하신 부분은 객체지향 설계의 주요 개념 중 하나로, ‘프로세스(또는 기능)와 데이터가 모듈 안에 함께 존재해야 한다’고 설명하는 것입니다. 객체지향 설계의 기본 아이디어는 데이터를 처리하는 함수(또는 메서드)와 이 데이터를 하나의 객체로 묶어, 그 객체가 데이터와 관계된 모든 책임을 갖도록 하는 것입니다.

주어진 설명을 보아, 메이슨 리님이 혼동하신 부분은 객체지향 설계에서 프로세스와 데이터가 분리되어 다른 모듈에 있는 것이 아니라, 오히려 하나의 모듈, 즉 객체 안에 통합되어야 한다는 점입니다. 이를 통해 객체는 자기 자신과 관련된 데이터와 기능에 대한 책임을 전담하게 되며, 따라서 시스템의 유지보수와 확장이 용이해집니다. 이렇게 하면 객체의 내부 구현의 변경이 외부에 영향을 덜 미치게 되고, 재사용성과 확장성이 높아집니다.

\“프로세스(메서드)와 데이터가 같은 모듈(즉, 객체) 내에 일치하는 것이 이상적인 객체지향 설계이며, 이는 책임을 명확히 하고 코드의 수정과 유지보수를 용이하게 해줍니다\“는 결론이 이해를 돕는 핵심입니다.

만약 추가로 궁금한 점이 있으시다면, 아래 조영호 강사님의 강의 및 설명을 참고할 수 있습니다:
- “객체를 구성하는 핵심 개념”에서는 객체가 데이터를 포함하는 방식에 대해 다루고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

메이슨리님의 프로필 이미지
메이슨리

작성한 질문수

질문하기