Object
-
문제를 해결하기 위해 사용하는 저장소는 장기 기억이 아니라 단기기억이다.문제 해결에 필요한 요소의 수가 단기 기억의 용량을 초과하는 순간 문제 해결 능력은 급격하게 떨어진다. -> 인지 과부하(cognitive overload) 인류가 복잡한 분야(소프트웨어 개발 영역)의 문제를 해결하기 위해 사용한 것추상화불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만 남기는 작업한 번에 다뤄야 하는 문제의 크기를 줄이는 것 한 번에 단기 기억에 담을 수 있는 추상화의 수에는 한계가 있지만 추상화를 더 큰 규모의 추상화로 압축시킴으로써 단기 기억의 한계를 초월할 수 있다.분해(decomposition)큰 문제를 해결 가능한 작은 문제로 나누는 작업 프로시저 추상화와 데이터 추상화프로그래밍 언어의 발전좀 더 ..
[Object] 7장 : 객체 분해문제를 해결하기 위해 사용하는 저장소는 장기 기억이 아니라 단기기억이다.문제 해결에 필요한 요소의 수가 단기 기억의 용량을 초과하는 순간 문제 해결 능력은 급격하게 떨어진다. -> 인지 과부하(cognitive overload) 인류가 복잡한 분야(소프트웨어 개발 영역)의 문제를 해결하기 위해 사용한 것추상화불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만 남기는 작업한 번에 다뤄야 하는 문제의 크기를 줄이는 것 한 번에 단기 기억에 담을 수 있는 추상화의 수에는 한계가 있지만 추상화를 더 큰 규모의 추상화로 압축시킴으로써 단기 기억의 한계를 초월할 수 있다.분해(decomposition)큰 문제를 해결 가능한 작은 문제로 나누는 작업 프로시저 추상화와 데이터 추상화프로그래밍 언어의 발전좀 더 ..
2024.08.13 -
훌륭한 객체지향 코드를 얻기 위해서는 클래스가 아니라 객체를 지향해야 한다협력 안에서 객체가 수행하는 책임에 초점을 맞춰야 한다책임이 객체가 수신할 수 있는 메시지의 기반이 된다애플리케이션은 클래스로 구성되지만 메시지를 통해 정의된다. 이번 장은 유연하고 재사용 가능한 퍼블릭 인터페이스를 만드는 데 도움이 되는 설계 원칙과 기법을 살펴보는 것이 주제이다 협력과 메시지객체가 다른 객체에게 접근할 수 있는 유일한 방법은 메시지를 전송하는 것뿐이다.객체는 자신의 희망을 메시지로 전송하고, 이를 수신한 객체는 요청을 적절하게 처리하여 응답한다. 클라이언트-서버 모델두 객체 사이의 협력관계를 설명하기 위해 사용되는 전통적인 클라이언트-서버 모델이다.클라이언트 : 메시지를 전송하는 객체서버 : 메시지를 수신하는 객..
[Object] 6장 : 메시지와 인터페이스훌륭한 객체지향 코드를 얻기 위해서는 클래스가 아니라 객체를 지향해야 한다협력 안에서 객체가 수행하는 책임에 초점을 맞춰야 한다책임이 객체가 수신할 수 있는 메시지의 기반이 된다애플리케이션은 클래스로 구성되지만 메시지를 통해 정의된다. 이번 장은 유연하고 재사용 가능한 퍼블릭 인터페이스를 만드는 데 도움이 되는 설계 원칙과 기법을 살펴보는 것이 주제이다 협력과 메시지객체가 다른 객체에게 접근할 수 있는 유일한 방법은 메시지를 전송하는 것뿐이다.객체는 자신의 희망을 메시지로 전송하고, 이를 수신한 객체는 요청을 적절하게 처리하여 응답한다. 클라이언트-서버 모델두 객체 사이의 협력관계를 설명하기 위해 사용되는 전통적인 클라이언트-서버 모델이다.클라이언트 : 메시지를 전송하는 객체서버 : 메시지를 수신하는 객..
2024.07.09 -
책임에 초점을 맞춰 설계할 때 직면하는 가장 큰 문제는 어떤 객체에게 어떤 책임을 할당할지를 결정하기 어렵다는 점이다.책임 할당 과정은 일종의 트레이트오프 활동이다.책임 주도 설계를 향해데이터 중심의 설계에서 책임 중심의 설계로 전환하기 위한 원칙 데이터보다 행동을 먼저 결정하라 데이터는 객체가 책임을 수행하는 데 필요한 재료를 제공할 뿐이다.객체를 설계하기 위한 질문의 순서를 바꾸자.데이터 중심의 설계 : "이 객체가 포함해야 하는 데이터가 무엇인가" -> "데이터를 처리하는 데 필요한 오퍼레이션은 무엇인가"책임 중심의 설계 : "이 객체가 수행해야 하는 책임은 무엇인가" -> "이 책임을 수행하는 데 필요한 데이터는 무엇인가"협력이라는 문맥 안에서 책임을 결정하라적합한 책임이란 메시지 수신자가 아니라..
[Object] 5장 : 책임 할당하기책임에 초점을 맞춰 설계할 때 직면하는 가장 큰 문제는 어떤 객체에게 어떤 책임을 할당할지를 결정하기 어렵다는 점이다.책임 할당 과정은 일종의 트레이트오프 활동이다.책임 주도 설계를 향해데이터 중심의 설계에서 책임 중심의 설계로 전환하기 위한 원칙 데이터보다 행동을 먼저 결정하라 데이터는 객체가 책임을 수행하는 데 필요한 재료를 제공할 뿐이다.객체를 설계하기 위한 질문의 순서를 바꾸자.데이터 중심의 설계 : "이 객체가 포함해야 하는 데이터가 무엇인가" -> "데이터를 처리하는 데 필요한 오퍼레이션은 무엇인가"책임 중심의 설계 : "이 객체가 수행해야 하는 책임은 무엇인가" -> "이 책임을 수행하는 데 필요한 데이터는 무엇인가"협력이라는 문맥 안에서 책임을 결정하라적합한 책임이란 메시지 수신자가 아니라..
2024.06.17 -
객체지향 설계의 핵심은 책임이다 책임 - 객체지향 애플리케이션 전체의 품질을 결정 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동설계는 변경을 위해 존재하고 변경에는 어떤 식으로든 비용이 발생한다.-> 훌륭한 설계란 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것데이터 중심의 영화 예매 시스템객체지향 설계에서 시스템을 객체로 분할하는 두 가지 방법 상태(데이터)를 분할의 중심축으로 : 객체는 자신이 포함하고 있는 데이터를 조작하는 데 필요한 오퍼레이션을 정의 책임을 분할의 중심축으로 : 객체는 다른 객체가 요청할 수 있는 오퍼레이션을 위해 필요한 상태를 보관객체의 상태객체가 저장해야 하는 데이터의 집합 (상태 = 데이터).객..
[Object] 4장 : 설계 품질과 트레이드오프객체지향 설계의 핵심은 책임이다 책임 - 객체지향 애플리케이션 전체의 품질을 결정 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동설계는 변경을 위해 존재하고 변경에는 어떤 식으로든 비용이 발생한다.-> 훌륭한 설계란 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것데이터 중심의 영화 예매 시스템객체지향 설계에서 시스템을 객체로 분할하는 두 가지 방법 상태(데이터)를 분할의 중심축으로 : 객체는 자신이 포함하고 있는 데이터를 조작하는 데 필요한 오퍼레이션을 정의 책임을 분할의 중심축으로 : 객체는 다른 객체가 요청할 수 있는 오퍼레이션을 위해 필요한 상태를 보관객체의 상태객체가 저장해야 하는 데이터의 집합 (상태 = 데이터).객..
2024.06.13