본문 바로가기

👨‍👩‍👦‍👦 OOP6

📔 역할, 책임, 협력 (객사오 4장) 객체지향을 설계의 핵심은 협력, 책임, 역할이다. 협력 협력이란 객체들 사이에 요청과 응답으로 이루어진 네트워크이다. 그 네트워크는 어떤 목적이 있다. 1장의 예처럼 "커피 주문"의 협력이 있다고 한다면 손님, 캐시어, 바리스타 객체들 간에 커피를 위해 서로 수많은 요청과 응답이 필요하다. 책임 책임은 어떤 객체가 다른 객체에게 받은 요청 메시지를 수신하고, 이에 대해 응답하고 처리해야 하는 것을 말한다. 손님이 캐시어에게 '커피 한 잔 주세요'라고 요청한다면, 캐시어는 손님의 요청에 대한 응답을 해야 할 책임을 갖느다. 협력을 위해 객체가 다른 객체에게 요청을 보내고, 수신한 객체에게 책임을 수행하게 만드는 것을 메시지 전송이라고 한다. 객체지향의 설계는 클래스, 상속의 관계를 먼저 생각하는 것이 아닌.. 2021. 11. 25.
📓 은총알은 없다. (오브젝트 0장) 현대의 '패러다임(paradigm)'이라는 단어는 '한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식 등의 체계'를 의미한다. 1962년 토마스 쿤은 의 책에서 과학이 단순히 계단식 발전의 형태를 이루는 것이 아니라 새로운 발견이 기존의 과학적 견해를 붕괴시키는 혁명적인 과정을 거쳐 발전해왔다고, 이를 '과학혁명', '패러다임 전환' 이라고 주장했다. 예를 들어 천동설에서 지동설로 변화한 사건처럼 말이다. 이 책(오브젝트)은 절차형 패러다임에서 객체지향 패러다임의 변화를 이야기한다. 하지만 과학혁명과는 다르게 프로그래밍 패러다임은 절차지향 패러다임을 붕괴시키고 객체지향 패러다임이 바뀐 혁명적인 패러다임이 아닌 서로 상호 보완, 발전적인 패러다임을 이야기한다. 객체지향 프로그래밍을 하는 개발자들이 .. 2021. 11. 23.
📔 타입과 추상화 (객사오 3장) 추상화를 통한 복잡성 극복 과거 지하철 노선도는 실제 지도와 1:1 매칭 되었지만 이해하기 어려웠다. 하지만 해리 벡은 승객이 알아야 할 사실(열차 타는 곳)의 정보만 추상화하여 현실의 복잡성을 단순화했다. 실제 역의 거리와 위치는 달랐지만 목적지와 방향을 쉽게 알 수 있었고 이는 현대의 대표적인 지하철 노선도가 되었다. 객체지향과 추상화 객체지향 패러다임도 마찬가지이다. 객체라는 추상화를 통해 현실의 복잡성을 극복한다. 객체 간의 공통점을 일반화하고, 불필요한 세부 사항을 제거해 단순화한다. 타입 컴퓨터는 0,1 비트로 되어있다. 얼핏 보면 랜덤 한 숫자 같지만 데이터를 목적에 따라 분류하고 타입 시스템이 시작됐다. 1) 어떤 데이터에 어떤 연산자를 적용하느냐에 따라 그 데이터 타입이 결정되고, 2) .. 2021. 11. 21.
📔 이상한 나라의 객체 (객사오 2장) 객체지향이란 단순히 현실 세계 모방이 아니다. 사람은 태어난 지 얼마 안 된 시기부터 물체를 하나의 개념으로 인지하고, 세상을 객체들의 집합으로 바라본다. 객체 지향과 인지 능력 인간은 물리적(e.g. 자동차, 모니터, 과일) 객체뿐만 아니라 추상적인 사물(e.g. 계좌 입금, 출금) 까지도 객체로 인식할 수 있다. 객체지향 패러다임은 인간이 세상을 다양한 객체들의 집합으로 인식하는 것처럼 SW의 세계도 다양한 SW 객체들의 집합으로 모여 있다는 믿음에서 출발한다. 하지만, 객체지향 패러다임의 목적은 현실 세계를 모방하는 것이 아닌, 현실 세계 기반 새로운 세계를 창조하는 것이다. SW 세계의 객체는 현실과 다르게 전등 스스로 불을 끄고 킬 수 있고, 비행기가 사람 없이 스스로 날 수 있다. 객체, 그.. 2021. 11. 18.
🆚 Object는 '객체'인가 '개체'인가? 번역 이슈 개체 🆚 객체 토비님의 유튜브 '토비의 봄 TV 스페셜 - 다정한 개발자 이규원님(1:14:28)' 편을 보고 Object에 대한 번역 이슈를 기억하고자 글을 남긴다. 주장 1. Object는 '개체'이다. Object는 협력적인 존재, 다른 객체에 도움을 요청하거나 응답한다. 또한 '자율적'이어야 한다. 자율적이란 말은 자기 스스로의 원칙에 따라 어떤 일을 하거나 통제하여 절제하는 것이다. 하지만 객체의 사전적 의미는 객체2 (客體) [명사] 1. [철학 ] 의사나 행위가 미치는 대상. 2. [언어 ] 문장 내에서 동사의 행위가 미치는 대상. 3. [철학 ] 작용의 대상이 되는 쪽. (참고 네이버 사전) 행위가 미치는 대상, 작용의 대상이 되는 쪽이니 주체적이라고 할 수 없다. 따라서 Object를 객.. 2021. 11. 15.