Object 5

[Object] Chapter05. 책임 할당하기

오늘은 Chapter 05 책임 할당하기를 공부해보겠습니다. 데이터 중심 설계의 문제점행동 보다 데이터를 먼저 결정고립된 객체의 상테에 초점캡슐화 위반결합도가 높아짐변경이 어려워짐 책임 주도 설계의 두가지 원칙데이터보다 행동을 먼저 결정하라협력이라는 문맥 안에서 책임을 결정하라 데이터보다 행동을 먼저 결정하라객체에게 중요한 것은 외부에 제공하는 행동행동이란 객체의 책임을 의미데이터는 객체가 책임을 수행하는 데 필요한 재료를 제공데이터 중심과 책임 중심 설계의 차이데이터 중심 : "이 객체가 포함해야하는 데이터는 무엇인가" ➡️ "데이터를 처리하는 데 필요한 오퍼레이션은 무엇인가"책임 중심 : "이 객체가 수행해야 하는 책임은 무엇인가" ➡️ "이 책임을 수행하는 데 필요한 데이터는 무엇인가" 협력이라는..

Object 2025.08.12

[Object] Chapter04. 설계 품질과 트레이드오프

안녕하세요 개발자 문문입니다.오늘은 설계 품질과 트레이드오프에 대해 공부해보겠습니다. 이전 챕터들에서 공부한 역할, 책임, 협력의 정의입니다.- 협력 : 애플리케이션의 기능을 구현하기 위해 메시지를 주고받는 객체들 사이의 상호작용- 책임 : 객체가 다른 객체와 협력하기 위해 수행하는 행동- 역할 : 대체 가능한 책임의 집합이중 가장 중요한 것은 책임으로 책임이 객체지향 애플리케이션 전체의 품질을 결정합니다. 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동을 의미합니다.결합도와 응집도를 합리적인 수준으로 유지하려면 객체의 상태가 아닌 객체의 행동에 초점을 맞춰야합니다.- 객체의 상태 : 객체가 저장해야하는 데이터의 집합 객체지향 설계에서 시스..

Object 2025.07.26

[Object] Chapter03. 역할, 책임, 협력

안녕하세요 개발자 문문입니다.오늘은 3장 역할, 책임, 협력에 대해 공부하겠습니다. 협력- 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력이라고 합니다.- 메시지 전송은 객체 사이의 협력을 위해 사용할 수 있는 유일한 방법입니다.- 자율적인 객체는 자신에게 할당된 책임을 수행하던 중에 필요한 정보를 알지 못하거나 외부의 도움이 필요한 경우 적절한 객체에게 메시지를 전송해서 협력을 요청합니다.- 객체의 행동을 결정하는 것은 객체가 참여하고 있는 협력입니다.- Ex) 'Movie'라는 객체안에 영화 요금을 계산하는 메서드가 주로 있다 > 이것은 'Movie'가 영화가 상영이 아닌 영화 예매를 하기위한 협력에 참여하고 있고, 요금을 계산하는 책임을 지고 있다.- 협력은 객체를 설계하는데 ..

Object 2025.07.22

[Object] Chapter02. 객체지향 프로그래밍

안녕하세요 개발자 문문입니다. 오늘은 2장 객체지향 프로그래밍에 대해 공부하겠습니다. 협력, 객체, 클래스- 객체지향 설계시에 클래스가 아닌 객체에 초점을 맞춰야 합니다.- 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야합니다. 도메인의 구조를 따르는 프로그램 구조- 도메인 : 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야- 객체지향 패러다임의 강점은 초기 단계부터 마지막 단계까지 객체라는 동일한 추상화 기법을 사용할 수 있기 때문입니다.- 그렇기 때문에 도메인을 구성하는 개념들이 객체와 클래스로 매끄럽게 연결될 수 있습니다.ex) 영화 - Movie 클래스, 상영 - Screening 클래스 클래스 구현- private와 public 같은 접근수정자를 적절하..

Object 2025.07.15

[Object] Chapter01. 객체, 설계

안녕하세요 개발자 문문입니다.오늘부터 조영호님의 'Object - 코드로 이해하는 객체지향 설계' 책을 보며 공부하겠습니다.코드가 상당히 많아서 각 장의 핵심 내용만 정리하는 방식으로 진행하겠습니다. 먼저, 1장 객체, 설계입니다. 잘못된 설계- 한 객체에서 외부 객체를 호출하고 외부 객체의 필드들을 사용해서 로직을 구현했다고 가정합니다.- 한 객체에서 너무 많은 역할을 수행해야 돼서 사용하는 외부 객체의 세부적인 내용들을 전부 기억해야 합니다. (높은 의존성)- 그렇기 때문에 외부 객체의 내부가 변경되면 이를 사용하는 다른 객체도 변경을 해줘야 합니다. → 변경에 취약하다.- 위와 같은 경우를 "결합도가 높다" 라고 말합니다. ex) 영화 티켓을 구매하는 상황에 티켓 판매자가 손님의 가방안에서 현금..

Object 2025.07.14