설명중에 "그렇다면 설계를 변경하는 이유는 무엇이었나요?" 질문입니다.
설명하신 내용중에 "그렇다면 설계를 변경하는 이유는 무엇이었나요?" 라고 하시면서 "프로세스와 데이터가 하나의 모듈안에 모여 있으면 코드를 수정하기 어렵기 때문이였죠." 라고 하시던데...
앞에 내용으로는 '프로세스와 데이터가 서로 다른 모듈안에 배치되어서 수정이 어려우니 프로세스를 구현한 코드를 데이터를 구현한 코드로 옮기는..' 뭐 이런거 아니였나요??
제가 잘못 이해하고 있는건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
메이슨 리님께서 언급하신 부분은 객체지향 설계의 주요 개념 중 하나로, ‘프로세스(또는 기능)와 데이터가 모듈 안에 함께 존재해야 한다’고 설명하는 것입니다. 객체지향 설계의 기본 아이디어는 데이터를 처리하는 함수(또는 메서드)와 이 데이터를 하나의 객체로 묶어, 그 객체가 데이터와 관계된 모든 책임을 갖도록 하는 것입니다.
주어진 설명을 보아, 메이슨 리님이 혼동하신 부분은 객체지향 설계에서 프로세스와 데이터가 분리되어 다른 모듈에 있는 것이 아니라, 오히려 하나의 모듈, 즉 객체 안에 통합되어야 한다는 점입니다. 이를 통해 객체는 자기 자신과 관련된 데이터와 기능에 대한 책임을 전담하게 되며, 따라서 시스템의 유지보수와 확장이 용이해집니다. 이렇게 하면 객체의 내부 구현의 변경이 외부에 영향을 덜 미치게 되고, 재사용성과 확장성이 높아집니다.
\“프로세스(메서드)와 데이터가 같은 모듈(즉, 객체) 내에 일치하는 것이 이상적인 객체지향 설계이며, 이는 책임을 명확히 하고 코드의 수정과 유지보수를 용이하게 해줍니다\“는 결론이 이해를 돕는 핵심입니다.
만약 추가로 궁금한 점이 있으시다면, 아래 조영호 강사님의 강의 및 설명을 참고할 수 있습니다:
- “객체를 구성하는 핵심 개념”에서는 객체가 데이터를 포함하는 방식에 대해 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
자료 한번에 다운로드 받을 수 있게 좀 해주세요.
1
65
2
이 강의만 자료가 ppt네요.
1
97
1
DiscountPolicy의 구현체에 관련 질문 드려요!
1
63
2
강의 자료 관련 질문입니다! (2-4. 절차에서 객체로)
1
91
2
도메인 관련 질문이 있습니다!
1
117
2
영화, 상영, 예매 도메인 관계에 대한 질문
1
90
2
[오타제보] 6-4. 캡슐화
2
49
2
리스코프 치환원칙에 대해 질문드립니다!
2
75
2
책임주도 설계 적용에 대한 간단한 질문 남겨드립니다.
1
117
2
객체지향 설계에서 메서드를 설계할 때 궁금한 점이 있습니다.
2
74
2
도메인 모델을 잘 정의하기 위해서 어떻게 해야할까요?
1
117
2
getter 사용에 대한 질문입니다.
1
59
2
6-1. 변경과 설계 마지막 추상화 관련 질문 입니다.
1
62
3
객체 지향 설계 원칙에 대한 질문입니다
1
54
2
[5-1] Screening과 Movie의 의존관계에 대한 궁금증 질문입니다.
1
61
2
2-2. 변경과 의존성 / 데이터 내부 변경 시 setter가 변경의 여파를 흡수하는 방식은 어떤가요?
2
74
2
[5-1] DiscountPolicy의 getDiscountAmount 추상 메서드 관련 질문입니다,
1
60
2
2-4. 절차에서 객체로 / 도메인 구조를 따라 클래스 구조 변경 부분
1
85
2
질문 있습니다!
1
67
2
[강의 자료 오타 제보]
1
69
2
간접 참조에 대한 질문
1
138
2
3-1 강의 질문입니다.
1
111
2
책 두권 다 읽어봐야 할까요?
1
199
2
(질문 글) Movie와 Customer의 위치
1
97
2





