본문 바로가기

책/오브젝트15

07. 객체 분해 07. 객체 분해태그비어 있음날짜2024년 4월 16일조지 밀러의 이론에 따르면 사람이 동시에 단기 기억 안에 저장할 수 있는 정보의 개수는 9개 정도를 넘지 못한다고 한다. 프로그램은 시간과 공간의 트레이드오프를 통해 효율을 향상시킬 수 있지만, 사람의 단기 기억에 있어 시간과 공간의 두 측면 모두가 병목지점으로 작용한다. 본질적인 정보만 남기는 추상화를 통해 단기 기억의 한계를 초월할 수 있다.이런 추상화는 인류가 소프트웨어 개발 영역에 사용해 왔다.프로시저 추상화와 데이터 추상화현대적인 프로그래밍 언어를 특징 짓는 중요한 두 가지 추상화 매커니즘은 프로시저 추상화와 데이터 추상화다. 데이터 추상화를 할 때 데이터를 중심으로 타입을 추상화 하는 것을 추상 데이터 타입이라고 하고 , 데이터를 중심으로 .. 2025. 3. 17.
06. 메시지와 인터페이스 06. 메시지와 인터페이스태그비어 있음날짜2024년 4월 15일협력과 메시지객체는 협력에 참여하는 동안 클라이언트와 서버 역할을 동시에 수행하는 것이 일반적이다. 객체가 독립적으로 수행할 수 있는 것보다 더 큰 책임을 수행하기 위해서는 다른 객체와 협력해야 한다.메시지 : 오퍼레이션명 + 인자전통적인 방식의 함수 호출과 프로시저 호출은 다르다.전통적인 방식 : 어떤 코드가 실행될지를 정확하게 알고 있는 상황에서 함수 호출이나 프로시저 호출 구문을 작성한다. 코드의 의미가 컴파일 시점과 실행 시점에 동일하다는 것객체는 메시지와 메서드라는 두 가지 서로 다른 개념을 실행 시점에 연결해야 하기 때문에 컴파일 시점과 실행 시점의 의미가 달라질 수 있다.실행 시점에 메시지와 메서드를 바인딩하는 메커니즘은 두 객.. 2025. 3. 17.
05. 책임 할당하기 05. 책임 할당하기태그비어 있음날짜2024년 4월 5일책임 할당 과정은 일종의 트레이드오프 활동이다. 올바른 책임을 할당하기 위해서는 다양한 관점에서 설계를 평가할 수 있어야 한다.책임 주도 설계를 향해협력이라는 문맥 안에서 책임을 결정하라책임 주도 설계책임 할당을 위한 GRASP 패턴도메인 개념에서 출발하기정보 전문가에게 책임을 할당하라높은 응집도와 낮은 결합도 LOW COUPLING 패턴HIGH COHESION 패턴창조자에게 객체 생성 책임을 할당하라CREATOR 패턴구현을 통한 검증변경의 이유가 하나 이상인 클래스에 나타나는 위험 징후를 드러내는 패턴타입 분리하기 - 다형성을 통해 분리하기변경으로부터 보호하기Movie 클래스 개선하기 변경과 유연성책임 주도 설계의 대안느낀점책임 주도 설계를 향해두.. 2025. 3. 17.
04. 설계 품질과 트레이드 오프 04. 설계 품질과 트레이드 오프태그비어 있음날짜2024년 4월 4일책임이 객체지향 애플리케이션 전체의 품질을 결정한다.책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 깊이 연관되어 있다.훌륭한 설계란 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것이다.객체를 단순한 데이터의 집합으로 바라보는 시각은 설계가 변경에 취약해진다.이번 장에서는 데이터 중심 설계와 객체지향적으로 설계한 구조의 차이를 통해, 훌륭한 객체 지향 설계의 다양한 특징과 책임 할당 원칙을 알아보자.데이터 중심의 영화 예매 시스템데이터 중심의 설계란 객체 내부에 저장되는 데이터를 기반으로 시스템을 분할하는 방법이다.‘데이터가 무엇인가’를 묻는 것으로 시작한다.Movie, DiscountCondition, Scree.. 2025. 3. 17.