Book 8

[객체지향의 사실과 오해: 마무리] 07 함께 모으기 / 부록 A

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. 객체지향 설계 안에 존재하는 관점이 있다.개념 관점(Conceptual Perpective): 설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현한다. 이 관점은 사용자가 도메인을 바라보는 관점을 반영하고, 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심이다. 명세 관점(Specification Perspective): 사용자 영역인 도메인을 벗어나 개발자 영역인 소프트웨어로 초점이 옮겨진다. 실제 소프트웨어 안 객체들의 책임에 초점을 맞추게 된다. (객체의 인터페이스) 명세 관점에서 프로그래머는 객체가 '무엇'을 할 수 있는가에 초점을 맞춘다. 구현 관점(Implemenation Perspective)은 실제 작업을 수..

Book 2024.11.20

[객체지향의 사실과 오해] 06 객체 지도

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. 길을 물어 직접 알려주는 방법이 '기능적이고 해결 방법 지향적인 접근법'이라면 지도를 이용하는 방법은 '구조적이고 문제 지향적인 접근법'이다. 지도는 길을 찾는 데 필요한 구체적인 기능이 아니라 길을 찾을 수 있는 '구조'를 제공한다. 그리고 지도는 범용적이다. 지도를 제작한 사람들이 지도를 만들 때는 사용할 사람들이 구체적으로 어떤 목적으로 지도를 사용할지 알지 못한다. 지도를 사용하는 사람들의 요구사항은 계속 바뀐다. 마을까지의 길을 찾을 수도 있고 기차역으로 이동하는 길을 찾을 수도 있다. 지도는 이 모든 요구사항을수용할 수 있는데, 지도는 기능에 비해 상대적으로 잘 변하지 않는 안정적인 지형 정보를 기반으로 하고 있기 때문이다. 지도 은유의..

Book 2024.10.30

[객체지향의 사실과 오해] 05 책임과 메시지

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. '책임감 분산' 현상과 관련된 실험이 있다.음성 대화방에서 누군가 발작을 일으켰을 때, 자신 말고도 도와줄 학생이 있다고 믿으면 아무도 도움을 요청하지 않고, 자신과 발작을 일으킨 학생 단 둘만이 있다고 믿었을 때는 참가자의 85%센트가 도움을 요청했다.사건에 대한 목격자가 많으면 개인이 느끼는 책임감은 적어진다는 것이다. 자율적인 책임객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다.  적절한 책임의 선택이 전체 설계의 방향을 결정한다. 적절한 책임이 자율적인 객체를 낳고, 자율적인 객체들이 모여 유연하고 단순한 협력을 낳는다. => 협력에 참여하는 객체..

Book 2024.10.23

[객체지향의 사실과 오해] 04 역할, 책임, 협력

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. '최후 통첩 게임'이 있다. 제안자는 금액을 몇으로 나누어 가질지 제안하고, 응답자는 거부 또는 수용할 수 있다. 거부한다면 한 푼도 가질 수 없다. 협상의 여지가 없으며 한 번의 선택으로 게임이 종료된다.전통적인 경제학은 인간은 이기적인 동시에 합리적인 존재라고 가정한다. 인간이 합리적이라면 응답자는 아무리 적은 제안이더라도  받아드릴 것이다. 그러나 20% 이하의 금액을 제안받은 경우 대부분의 응답자들이 제안을 거부했다. '가지려면 받고 아니면 말라' 식의 인색한 최후 통첩에 대해 인간은 감정적으로 대응한다. 자존심을 지키기 위해 불공정한 제안을 단호히 거절한다.  1) 인간은 이기적이고 합리적인 존재다. 2) 그러나 타인과 관계를 맺는 과정속..

Book 2024.10.10

[객체지향의 사실과 오해] 03 타입과 추상화

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. 지하철은 점점 더 복잡한 미로로 변해가고 있다. 그럼에도 지하철을 큰 어려움 없이 이용할 수 있는 이유는 지하철 노선도가 있기 때문이다. 그리고 지하철 노선도는 유사한형태를 띠기 때문에 한 도시의 지하철 노선도를 이해하면 다른 도시의 노선도 역시 잘 이해할 수 있다. 해리 백(노선도 창조)은 지하철 노선도를그릴 때 지도가 당연히 가져가야한다고 생각되는 '정확성'을 버리고 그 '목적'에 집중했다. (지하철 노선도 추상화) 그리고 자신의 견해를 이렇게 설명했다. "지하철을 갈아탈 때 지형때문에 골치아플 일이 있을까요? 지형은 중요한 것이 아닙니다. 중요한 것은 연결, 즉 열차를 갈아타는 것입니다." 💡 특별히 프로그래밍에 해당하거나 지하철 노선도에 ..

Book 2024.10.01

[객체지향의 사실과 오해] 02 이상한 나라의 객체

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. 사람은 태어난 지 얼마 안 된 시기부터 뚜렷한 경계를 가지고 함께 행동하는 물체를 하나의 개념으로 인지한다. (pinker 1997) 물체가 여러 부분으로 구성돼 있더라도 함께 움직일 경우 그 물체를 하나의 유기적인 단위로 인식한다는 것이다. 객체지향과 인지 능력인간은 본능적으로 세상을 독립적이고 식별 가능한 객체의 집합으로 바라본다. 많은 사람들이 객체지향을 직관적이라고 말하는 이유는 객체지향이 세상을 자율적이고 독립적인 객체들로 분해할수 있는 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다.✏️ 저자는 사람은 기본적으로 세상을 객체화해서 생각한다고 말하고 있다. 고개를 들어 주위를 둘러보면 객체라고 부를 수 있는 다양한 존재를 볼 수 있..

Book 2024.09.24

[객체지향의 사실과 오해] 01 협력하는 객체들의 공동체

✏️, 💡,❓ 해당 이모지는 저의 생각임을 나타냅니다. 객체지향이란 실세계를 직접적이고 직관적으로 모델링 할 수 있는 패러다임-> 객체지향 프로그래밍이란 현실 속에 존재하는 사물을 최대한 모방해 소프트웨어 내부로 옮겨오는 작업 -> 객체란 현실 세계에 존재하는 사물에 대한 추상화 이러한 설명은 객체지향의 철학적 개념을 설명하는 데는 적합하지만, 유연하고 실용적 관점에서 설명하기엔 적합하지 않다. 애플리케이션을 개발하면서 객체에 직접적으로 대응되는 실세계의 사물을 발견할 확률은 높지 않다. 객체지향의 목표는 실세계를 모방하는 것이 아니다. 새로운 세계를 창조하는 것이다. 하지만, 실세계의 모방이라는 개념은 실무적인 관점에서는 부적합하지만 객체지향을 이해하고 학습하는데는 매우 효과적이다. 캡슐화, 자율성,..

Book 2024.09.08

객체지향의 사실과 오해: 들어가며

약 4개월간의 클린 아키텍처 스터디를 끝내고 객체지향의 사실과 오해 책을 읽기로 했다. 사실 순서를 굳이 따지자면 객체지향의 사실과 오해 -> 클린 아키텍처 -> Object 순으로 읽는 것이 좋다는 말을 들었는데 어쩌겠는가.그래도 매우 기대가 된다. 11월 안에 완독하는 것이 목표고, 친구 한 명과 같이 스터디를 하기로 했다. -11/20일에 스터디가 끝났다. 중간 과정에서 만든 PPT도 아래 첨부한다. 01 협력하는 객체들의 공동체 객체지향 프로그래밍이란 현실 속에 존재하는 사물을 최" data-og-host="yatta.tistory.com" data-og-source-url="https://yatta.tistory.com/entry/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5..

Book 2024.09.07