객체지향의 사실과 오해 감상평
Updated:
스프링 공부를 이제 막 시작했을 시기에 이 책을 접하게 되었습니다.
워낙 유명한 책이기도 했고, 인프런의 김영한 개발자님과 이동욱 개발자님 등, 많은 개발자 분들 께서 추천해 주셔서 읽어보게 되었습니다.
객체에 대한 이해가 부족했었기 때문에 책이 많이 어렵지는 않을까 걱정했었습니다.
하지만 저자님께서 적절한 비유를 통해서 객체간의 협력과 OOP 개념을 쉽게 설명해 주시기 때문에, 당시의 저처럼 이제 막 OOP에 관심을 갖게된 분들께서 읽으시더라도 객체지향에 대한 이해를 하는데 큰 어려움이 없을것이라고 생각합니다.
이책을 읽고나서
저자님께서 책의 앞부분에 언급하셨듯이 이 책을 전부 읽고 나서 저의 프로그래밍 실력이 성장하지는 않았습니다.
대신 객체지향적 설계를 바라보는 저의 관점은 많이 달라졌다고 생각합니다.
책을 읽기 전까지 저는 객체지향이라는 개념이 현실 세계를 프로그램 안에 모방해 놓은 것이라고 생각했습니다.
때문에, 객체간의 책임을 부여하는데 있어서 잘못된 사고를 갖고있었습니다.
예를 들어서 물을 마실때도 물을 마시는 행위는 사람이 하기 때문에 물병의 물을 줄이는 행위 또한 사람이 해야한다고 생각했습니다.
하지만 이 책을 읽고 나서, 물병도 스스로 책임을 수행할 수 있는 자아를 가진 존재로 바라보게 되었고, 객체간의 역할과 책임을 분배하는데 어떻게 해야할지 감을 익히게 해준 책이었습니다.
동화, 이상한 나라의 엘리스에서 엘리스는 시계를 든 토끼릴 쫓아 들어간 곳에서 카드 병정과 말하는 주전자를 만나게 됩니다.
저 또한 책 표지에 있는 토끼를 따라서 물체들이 자아를 갖고, 각자만의 책임과 역할을 수행하는 객체 지향 세상을 경험하고 온 것 같은 기분을 느낄수 있었습니다.
메모
-
객체는 독립적인 존재이지만 협력에는 오픈되어있어야한다.
-
객체는 자신에게 주어진 책임을 해내기 위해 다른객체에 도움을 요청하기도 하고 다른 객체로 부토 요청을 받아 수행하기도 한다.
-
객체지향 설계란 기능 구현을 위한 협련 관계를 고안하고, 협력에 필요한 역할과 책임을 식별한 후, 이를 수행할 수 있는 적절한 객체를 식별해 나가는 과정이다.
-
하나의 객체가 메시지를 전송하면 해당 메시지에 담긴 책임은 전달 받은 객체의 행동을 수행하게 만들고, 수신 객체는 자율성을 보장받은채 어떤 방법으로든 전달 받은 책임을 수행한다.
-
요청을 처리할 메서드를 선택할 수 있다.
-
메시지가 수신자의 책임을 결정한다.
-
“역할, 책임, 협력”
-
메세지는 “어떻게”가 아닌 “무엇을” 만 담아서 전송 (객체의 자율성을 너무 침해하지 않도록 주의)
-
다형성은 메시지 송신자의 관점에서 동일한 역할을 수행하는 다양한 타입의 객체와 협력할 수 있게 한다. 즉, 동일한 역할을 수행할 수 있는 객체들 사이의 대체 가능성을 의미한다.
-
객체지향의 이점 = 유연,확장가능,재사용성높음
Leave a comment