본문 바로가기

CS (Computer Science)9

3일차(4장) - 협력을 위한 책임. 책임에 맞는 객체. 객체가 참여할 수 있는 역할. 최후통첩 실험 에피소드로 4장이 시작된다. 인간은 이기적이면서도 합리적인가에 대한 가설에 대한 실험. 하지만 인간은 단순한 계산만으로 움직이지 않고 놓여진 상황, 문맥에 맞게 행동한다. 이 문맥은 타인과의 협력을 맺는 과정. 돌고돌아 협력의 중요성을 강조한다. 확장해서 오만한 하나의 객체보다 서로 조화롭게 협력하는 설계를 훌륭한 객체지향의 설계라고 강조한다. 엘리스의 내용 중 재판을 하는 과정의 에피소드로 이후 내용을 이어간다. 재판이라는 하나의 프로세스에 등장하는 여러 등장인물들을 객체로 보았을 때, 각각의 객체간의 협력과 각 객체들의 책임, 그리고 그 역할로 객체들을 추상화한다. 엘리스의 이야기에서 누군가는 재판을 진행해야 하고 누군가는 증인을 증인석으로 불러야 하며 누군가는 증언해야 한다. 이처럼 .. 2023. 11. 17.
2일차 (3장) - 클래스와 객체의 관계. 클래스는 타입을 구현하는 방법 중 하나 3장의 전반부에서는 지하철 노선도의 예시로 추상화의 중요성에 대한 얘기를 시작했다. 중반부에서는 타입의 개념과 함께 비트열에서부터 출발해서 타입의 등장을 설명한다. 숫자의 값을 떠나서 어떤 데이터에 어떤 연산자를 사용할 수 있는 지가 그 데이터의 타입을 결정한다. 이는 얘기를 곧 객체의 행동의 중요성으로 연결짓는다. 객체의 상태는 단순히 행동의 결과로 초래된 부수효과를 쉽게 표현하기 위함을 반복하여 언급한다. 이 객체의 행동의 중요성은 또 다시 다형성으로 개념이 연결된다. 같은 타입의 객체는 행동만 동일하다면 서로 다른 데이터를 갖을 수 있다. 동일한 행동이란 동일한 책임, 이는 동일한 메시지 수신을 의미한다. 즉, 데이터 처리방식은 다르더라도 동일한 메시지를 수신하고 처리한다. 이 부분에서 이전 다형성.. 2023. 11. 15.
1일차 (1장, 2장) : 객체는 무엇인가. 현실과 닮은 듯 안 닮은 듯 1장. 협력하는 객체들의 공동체 1장 전체에 걸쳐 강조하는 큰 줄기가 있다. 객체지향이란 상호작용하는 자율적인 객체들의 공동체. 객체의 자율성, 협력, 책임, 메시지, 메소드. 이 모든것들을 출근길 많은 직원들의 커피주문에 빗대어 비유해주고 있다. 물론 실세계의 모방이 실제 객체의 개념과 약간의 간극이 있지만서도. 객체지향 설계라는 예술은 적절한 객체에게 적절한 책임을 할당하는 것에서 시작된다. 전지전능한 객체는 자멸한다. 적절한 책임. 이전에 자바를 처음 배울당시 한 팀원이 한 메소드에 여러 메소드의 기능을 한번에 담았던 기억이 났다. 한 메소드가 10줄이 넘어가지 않는게 좋다는 튜터님의 말. 이 모든것들이 생각났던 구절. 그리고 가장 기억에 남은 표현은 클래스가 아닌 객체에 집중하자 2장. 이상한 나.. 2023. 11. 14.