본문 바로가기

책을 읽어보자/객체지향의 사실과 오해

[우테코 권장도서] 객체지향 사실과 오해 7장 7장 이제 실제 적용하고 코드로 구현하는것을 보여줬다 사실상 정리하고 뭐할건 없는것 같고 실제 이번 미션에서 적용해보고 있는데 나쁘지 않은것 같다. 기회가 된다면 UML을 공부하고 관련 플러그인깔아서 예쁘게 만들어놓고 개발을 시작해야겠다는 생각이 든다. 제이슨의 조언: Mermaid 를 사용해봐라 https://mermaid.js.org/intro/ 코드블럭에 mermaid 설정해주면 UML 보임 ^^ 티스토리는 이런거 지원안하는것 같은데 참 .... 타이포라도 해주는데 참...... 어쨋든 개쩐다 더보기
[우테코 권장도서] 객체지향 사실과 오해 4장 4장 역할,책임,협력 역시 이책이 그렇듯 실제 예시를 들어가며 설명한다. 두명에 사람들에게 일정금액을 한명은 몇대몇으로 나눠가질지 한명은 받을지 말지 결정하고 기회는 단한번인 최후 통첩게임의 예시이다. 인간은 일단 돈을 아주 조금이라도 받으면 이득이기 때문에 아주 작은 비율이더라도 돈을 받을쪽으로 움직일것이고 비율을 결정하는자도 지가 많이 먹는 쪽으로 움직일것이라고 전통 경제학은 예상하지만 실제 결과는 그렇지 않다는것이다. 협상의 문맥상 사람들은 불합리하다고 생각이 들어 빡돌면 내가 돈을 받고 말고는 상관없고 그냥 손해보더라도 같이 손해보는 결과를 선택한다는 실험결과가 나온다는 것이다. 여기서 중요성은 문맥(context)이다 사람이 객체일텐데 객체는 문맥에 따라서 다른 행동을 할수도 있다는것이다. 일반.. 더보기
[우테코 권장도서] 객체지향 사실과 오해 3장 중간에 블로그에 올리는걸 까먹어서 순서가 뒤죽박죽이 되었다 3장 타입과 추상화 추상화라는것이 참 어려운 이야기 같은데 지하철역 지도를 통해서 쉽게 설명하고있다. 추상화라는것은 두가지 측면에서 볼 수 있다고 한다. 1.분류를 위해 공통점을 취하고 차이점을 버리는 일반화를 통해 단순화 시키는 작업이라고 하는데 -> 한마디로 그냥 공통적인것들에 집중하여 분류 기준을 가져오는것이라고 생각한다 이때 사소한 차이점들은 과감히 버린다. (클래스든 인터페이스든 타입을 만드는 방법들에서는 공통적인 행위를 분리해내는것이 포인트라고 생각한다.) 2.중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거 단순하게 만드는것이다. 이것도 공통점을 취하는 과정에서 차이점들은 버려야하는데 이것들을 필요에 맞게 과감하게 버리라는 뜻으.. 더보기
[우테코 권장도서] 객체지향 사실과 오해 6장 6장 계속 같은말을 하지만 이번장은 좀 어렵다. 결국 객체지향 짱짱맨 이런거지만 키워드 위주로 정리해 보려고한다. 도메인 모델(멘탈 모델) 책에서는 구구절절히 설명하는데 결국 도메인 모델이란 우리가 원래 실세계에서 객체들을 보고서 객체지향적으로 옮겨내려고 노력하지만 일반적으로 우리의 도메인이 되는것들은 꼭 실세계 뿐만이 아니라 추상적인 것들도 있고 꼭 물리적인 것은 아니다. 예를들어 은행의 예금 상품 같은것들은 물리적인 실체가 없지만 우리가 실제로 잘사용하고있고 이것들을 우리가 어떻게 머리속에 받아들이고 서로 객체로서 생각하며 머리에 연관도가 작성되는지를 머리속에서 꺼내보고 이런것들을 객체지향적으로 옮겨내야 한다고 한다. 즉 꼭 실체가아니라 내가 이 도메인에서 분석하고 받아들인상태에서 내가 일반적인 사람.. 더보기
[우테코 권장도서] 객체지향 사실과 오해 5장 5장 책임과 메시지 지금 현재 상태가 헤르페스나고 목구멍에는 구멍나고 졸려죽겠다. 그리고 책읽는것도 밀렸었어서 모든걸 정리할 힘이 나지않고 거기다가 이책은 읽을때마다 느끼는거지만 술취한 사람과 대화하는 느낌으로 한말 또하고 한말 또 한다. 근데 또 중간에 의미를 툭툭던져서 넋을 놓고 읽을수는 없는 개꼰대 교수님과의 술자리 같다. 그래서 아주 핵심적인 내용들을 키워드와 함께 정리해보려한다. 자율적인책임 외부에 노출된 인터페이스를 제외하고는 객체가 자율적으로 처리방법을 정하는것이 주이다. 이래야 재사용성도 올라가고 객체의 변경에 따른 다른 객체의 연쇄 변경을 막을수 있다. 여기서 자율적인 책임은 모자장수의 증언을 예시로 드는데 왕이 증언하라 라고 메시지를 던져야지 기억을 더듬어라 생각을 말로 정리해라 말해봐.. 더보기
[우테코 권장도서] 객체지향의 사실과 오해 2장 2장 현실과 프로그래밍 세계는 다르다구~~~~~~~~~~~~ 객체!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 전장의 주제는 객체지향을 구성하는 요소를 종합해봤다면 이번장은 객체에 집중해보는 장이였다 시작부터 객체는 무엇일까를 살펴보는데 객체를 인간이라면 응당 구분해내야할것으로 이야기한다 -> 인지와 관련된 실험을 언급하며 아기들도 객체를 구분하는 능력이 있다고한다. 이런면에서 나는 객체를 구분못하는 문어 이쯤인가 싶다. 어쩃든 객체는 일단 눈으로보면 물리적적이든 추상적이든 구분이 되고 값이 아닌 객체라면 객체를 구분하는 고유값을 갖고있다-> 여기서는 뭐 동일성을 주소값이 아닌 어떤 인스턴스로 표현했지만 뭐 주소값이라도 말해도 무방하지않나 싶다. 그래서 동등성 동일성, 값객체, DTO(이건 .. 더보기
[우테코 권장도서] 객체지향 사실과 오해 1장 1장 걍 카페나 창업할까? 객체지향은 클래스가 본질이 아니다!! -> 프로토 타입언어를 보면 바로 알수있다. 객체지향의 본질은 객체의 역할 책임 협력이다. + 캡슐화 -> 캡슐화가 객체의 자율성을 보장한다(다른 객체에게 휘둘리지 않도록) 캡슐화: 책임(메서드)가 움직이는 대상은 캡슐화된 상태가 주이다. 협력 협력은 대부분 연쇄적이다. 요청이 연쇄적일수있고 응답 또한 연쇄적이다. 역할 역할은 연관성이 짙은 책임의 집합이라고 할수있다. 개발에서 보면 인터페이스라고 대치할수 있다고 생각한다. 역할을 미리 정의해놓는 수단이 인터페이스 아닌가 싶다. 책임 사실상 하는일(메서드) 라고 생각하면 될 것 같다. 책임은 결국 메서드이다. 메서드에서 다른객체의 메서드를 호출할수있다 -> 다른 객체에 요청할수있다. 결국 객.. 더보기