책/객체지향의 사실과 오해(7)
-
[객체지향의 사실과 오해] 7장
7장 함께 모으기 코드와 모델을 밀접하게 연관시키는 것은 코드에 의미를 부여하고 모델을 적절하게 한다. -에릭 에반스 객체지향 설계의 세가지 관점 마틴 파울러는 객체지향 설계안에 존재하는 세가지 관점을 각각 개념 관점, 명세 관점, 구현 관점이라고 부른다. 그리고 이것은 곧, 개발자가 소프트웨어를 개발하는데 있어서 클래스를 어떻게 설계해야 하느냐에 대한 힌트가 될 수 있다. 각 관점에 대해 설명하자면, 개념 관점은 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현하는 것을 의미한다. 이때 도메인이 의미하는 것은 사용자들이 관심을 가지고 있는 특정분야나 주제를 말하며 소프트웨어는 도메인에 존재하는 문제를 해결하기 위해 개발된다; 명세 관점은 사용자의 영역인 도메인을 벗어나 개발자의 영역인 소프트웨어로..
2020.04.28 -
[객체지향의 사실과 오해] 6장
6장 객체 지도 유일하게 변하지 않는 것은 모든 것이 변한다는 사실뿐이다. - 헤라클레이토스 기능 설계 대 구조 설계 모든 소프트웨어 제품의 설계에는 두 가지 측면이 존재한다. 하나는 '기능'측면의 설계이고, 다른 하나는 '구조'측면의 설계다. 기능 측면의 설계는 제품이 사용자를 위해 '무엇을 할 수 있는지'에 초점을 맞추고, 구조 측면의 설계는 제품의 형태가 어떠해야 하는지에 초점을 맞춘다. 설계를 하는 목적은 기능과 구조라는 두 가지 측면을 함께 녹여 조화를 이루도록 만드는 것이다. 소프트웨어는 사용자가 원하는 기능을 제공해야한다. 단, 원하는 기능은 가변적이다. 한번만들고 변경될 일 없는 소프트웨어는 거의 존재하지 않는다. 사용자들의 요구사항은 계속해서 변경되기 때문이다. 이러한 측면에서, 변경되는..
2020.04.28 -
[객체지향의 사실과 오해] 5장
5장 책임과 메시지 의도는 "메시징"이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다는 모듈이 어떻게 커뮤니케이션 하는가에 달려있다. - 앨런 케이 존 달리와 밥 라타네의 실험 1964년 두 명의 젊은 심리학자는 흥미로운 실험을 하게 된다. 학생들을 모집하여 도시 생활에 대한 어려움을 이야기 하게끔 한 이 실험은, 학생들을 물리적으로 격리 시켜 두었지만 오디오 시스템을 통해 다른 학생의 이야기를 들을 수 있게 설계되었다. 그러나 실제 실험에서 참가자 본인을 제외한 다른 학생들의 목소리는 미리 녹음된 내용을 재생한 것이었다. 학생들은 다른 학생이 각자의 방에서 실시간으로 이야기를 하고 믿고 있는 상태였다. 실험의 주요 포인트는 간질을 앓고있는 학생의 녹음본이 재..
2020.04.22 -
[객체지향의 사실과 오해] 4장
4장 역할,책임,협력 우리 모두를 합친 것보다 더 현명한 사람은 없다. - 켄 블랜차드 최후통첩게임 1982년 독일 훔볼트 대학의 베르너 귀스 교수는 흥미로운 경제학 게임 하나를 고안했다고 한다. '인간은 항상 자신에게 최대의 이익이 돌아올 수 있도록 합리적인 의사결정을 내리는가?'라는 질문에 대한 답을 얻기 위한 이 실험의 이름은 '최후 통첩 게임'이다. 룰은 매우 간단하다. 이 게임에는 '제안자'와 '응답자'가 존재한다. 1. '제안자'는 연구팀으로부터 일정한 금액을 제시받는다. '제안자'가 이 금액을 얻기 위해서는 '응답자'와 일정 비율로 나누어 가져야 하며, 그 비율은 '제안자'가 결정할 수 있다. 2. '응답자'는 '제안자'로부터의 제안을 승낙하거나 거부 할 수 있다. 승낙할 경우 '제안자'가 ..
2020.04.21 -
[객체지향의 사실과 오해] 3장
3장 타입과 추상화 일단 컴퓨터를 조작하는 것이 추상화를 구축하고, 조작하고, 추론하는 것에 관한 모든것이라는 것을 깨닫고 나면 컴퓨터 프로그램을 작성하기 위한 중요한 전제 조건은 추상화를 정확하게 다루는 능력이라는 것이 명확해진다. -키스 데블린 해리 벡이 창조한 지하철 노선도 위의 사진은 1933년 해리 벡이 내놓은 지하철 노선도이다. 매우 오래된 노선도임에도 불구하고 현재 서울의 지하철 노선도를 보는것과 크게 다르지 않은 느낌이다. 사실 해리 벡이 창조한 지하철 노선도는 역의 순서와 갈아타는 역의 표시를 제외하면 어느 것 하나 정확한 것이 없다. 모든 역의 위치와 거리도 부정확하고, 심리어 경로를 표시한 직선은 실제로 지하철이 이동하는 경로와는 상관이 없다. 그럼에도 해리 벡이 제시한 지하철 노선도..
2020.04.13 -
[객체지향의 사실과 오해] 2장
2장 협력하는 객체들의 공동체 객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캡슐화 함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화 하는 문제다. -레베카 워프스브록 2장에서는 이상한 나라의 앨리스 이야기를 통해 설명을 풀어나간다. 앨리스가 토끼를 따라 정원으로 통하는 문을 통과하기 위해 자신의 상태인 '키'를 줄이는 방법들에 대한 설명으로 객체의 상태(필드)와 행동(메소드)의 관계를 설명하였다. 예를들어 앨리스의 키(상태)를 변화 시킬 수 있는 방법은 음료를 마시거나, 부채질을 하거나, 버섯을 먹거나, 케이크를 먹는등의 행동들이다. 이 상태와 행동간에는 세가지 특징이 있다. 첫째,앨리스는 '키'라는 상태를 가지며 이 상태는 ..
2020.04.12