책 리뷰 - "객체지향의 사실과 오해"

DongHyun Kim·2021년 1월 20일
0

IT 책 리뷰

목록 보기
1/1

때는 2012년, 대학교에 들어와서 처음으로 프로그래밍을 배우게 되었다.
그때는 프로그래밍에 대해 하나도 모르던 때였고, 아무런 배경지식도 없이 c++이라는 언어를 1년에 걸쳐 배우게 되었고 아무런 지식도 없이 클래스, 상속, 다형성 이런 개념을 단지 구현의 관점에서 사용하였다.

이런 상황은 2학년, 3학년을 거쳐가면서도 그저 주어진 과제를 해결하기 위해 클래스를 쓰고, 그저 모든 상황에 대처하는 클래스 하나를 만들어 이 과제에도 쓰고, 저 과제에도 쓰고 하는 행위의 반복이였다.
4학년이 되어서도 분명 나는 객체지향 프로그래밍 언어들을 배우고 클래스를 쓰고, 상속도 사용하며, 때때로 다형성을 이용하고, 어쩔때는 맛만 봤던 디자인패턴을 억지로 가져다 쓰곤 하였지만 전혀 왜 써야하는지 이것이 정말 유용한 것인지에 대해 의문이 들곤 했다.

시간이 흘러 이제는 객체지향의 개념은 머릿속에 거의 남아있지 않고, 그저 클래스라는 것만이 남아있을 때, 스프링에 대해 관심을 가지게 공부하게 되었고, 디자인 패턴에 관심을 가지게 되었고, 그 기반을 이루는 객체지향에 대해 알아보고 싶어졌고 많은 분들이 조영호님의 "객체지향의 사실과 오해" 라는 책을 추천해 주셨다.

이 책은 나에게 있어서 센세이션한 충격을 주었다.
객체지향을 실세계를 모방하여 어떠한 물체를 추상화한 클래스를 써서 데이터와 행동을 정의하고 상속과 다형성을 곁들여 쓰는 것이라 생각하던 생각 자체를 부수게 도와주었다.

객체가 주인공이고 행위가 우선이며 데이터는 나중에 정의된다는 것은 마치 지금까지 알고 설계해왔던 것이 모두 틀렸다고 말하는 것 같았으며 어디선가 들은 객체지향은 실세계를 모방한다는 말에 사로잡혀 마치 실세계와 동일하게 설계하고 수동적인 객체만을 양산하던 내가 부끄러워졌다.

마지막으로 책 전체를 관통하는 역할, 책임, 협력 의 관점에서 바라보아야 한다는 것은 막무가내로 실세계와 1:1 매칭을 통해 클래스를 찍어내온 지금까지의 행동을 반성하게 하고 객체지향을 바라보는 내 시선의 스펙트럼을 넓혀주었다.

누군가 객체지향에 대해 궁금하여 그 개념을 알고 싶다고 한다면 나는 강력히 이 책을 추천하고 싶다.

profile
저는 편함을 추구하는 개발자입니다.

0개의 댓글