본문 바로가기
CS (Computer Science)/독후감 : 객체지향의 사실과 오해

1일차 (1장, 2장) : 객체는 무엇인가. 현실과 닮은 듯 안 닮은 듯

by 우인입니다 2023. 11. 14.

 

1장. 협력하는 객체들의 공동체

 

1장 전체에 걸쳐 강조하는 큰 줄기가 있다.

 

객체지향이란 상호작용하는 자율적인 객체들의 공동체.

객체의 자율성, 협력, 책임, 메시지, 메소드.

 

이 모든것들을 출근길 많은 직원들의 커피주문에 빗대어 비유해주고 있다.

물론 실세계의 모방이 실제 객체의 개념과 약간의 간극이 있지만서도.

 

 

 

객체지향 설계라는 예술은 적절한 객체에게 적절한 책임을 할당하는 것에서 시작된다.
전지전능한 객체는 자멸한다.

 

적절한 책임.

이전에 자바를 처음 배울당시 한 팀원이 한 메소드에 여러 메소드의 기능을 한번에 담았던 기억이 났다.

한 메소드가 10줄이 넘어가지 않는게 좋다는 튜터님의 말.

이 모든것들이 생각났던 구절.

 

그리고 가장 기억에 남은 표현은

클래스가 아닌 객체에 집중하자

 

 

2장. 이상한 나라의 객체

 

객체의 다양한 특성을 효과적으로 설명하기 위해서는 객체를 상태, 행동, 식별자를 지닌 실체로 보는 것이 가장 효과적이다.
소프트웨어 안에서 객체는 저장된 상태 실행 가능한 코드를 통해 구현된다.

 

 

상태

행동의 결과를 상태로 쉽게 예측가능하다.
객체의 상태는 정적인 프로퍼티와 동적인 프로퍼티 값으로 구성된다.
객체의 프로퍼티는 단순한 값과 다른 객체를 참조하는 링크로 구분할 수 있다.

 

 

행동

행동이란 외부의 요청 또는 수신된 메시지에 응답하기 위해 동작하고 반응하는 활동.

 

상태를 외부에 노출시키지 않고 행동을 경계로 캡슐화하는 것은 결과적으로 객체의 자율성을 높인다.

 

 

식별자

식별자란 어떤 객체를 다른 객체와 구분하는 데 사용하는 객체의 프로퍼티다.

 

 

엘리스를 객체에 비유하여 상태, 행동, 식별자를 설명했다.

읽는 동안 내내 자바에서 클래스를 구성할 때 크게 멤버 변수, 메소드, 생성자 파트로 나뉘던 것이 계속 연상됐다.

 

 

필자가 왜 이상한 나라의 엘리스를 비유의 대상으로 삼은 지 이해가 갔다.

객체의 특징을 현실세계에 빗대어 이해하는 것을 경계하라는 의미로 받아들였다.

이상한 나라의 트럼프카드는 팔다리가 달려있다.

현실에서는 상상할 수 없는 객체의 행동들이 소프트웨어상에서는 일어나고 있다.

 


 1장과 2장까지 읽은 지금, 객체를 바라보는 시각에 대해 현실에서의 비유로 시작하여 현실과의 간극을 설명하며 마무리하는 내용으로 와닿았다.

 

그리고 상태, 행동, 식별자. 이 용어들이 머릿속에 자리잡혔다.

이는 디버깅하며 느꼈던 부분들을 앞으로는 좀 더 언어로 사고할 수 있게 도움이 되는 용어인것 같다.