오브젝트 (1)
앞서 객체지향 사실과 오해를 작성하신 저자 분의 책을 이어서 읽게 되었다.
절차지향 언어에서 객체지향 언어로 변경되면서 현재 내가 사용하고 있는 Java의 객체지향이 나에게는 또렷한 개념
으로 와닿아 있지 않는다.
이 부분에 대한 나의 현재 상태는 어설프게 아는 상태가 아닌가 한다.
부족한 이유는 개념에 맞춰 작성해본 경험이나, 좀 더 나은 이해가 부족해서 이지 않을까 싶기도 하다.
우습게도 책의 맨 앞의 구절에서 다음과 같은 내용이 있다.
로버트 L. 글래스 <소프트웨어 크리에이티비티 2.0>에서 ‘이론 대 실무’ 라는 주제로 개인적인 견해를 밝혔다고 한다.
대부분의 사람들은 이론이 먼저 정립된 후에 실무가 그 뒤를 따라 발전한다고 생각한다. 하지만 글래스는 그 반대로 주장한다고 한다. 실무가 어느 정도 발전하고 난 다음에야 비로소 실무의 실용성을 입증할 수 있는 이론이 서서히 그 모습을 갖춰가기 시작하고, 해당 분야가 충분히 성숙해지는 시점에 이르러야 이론이 실무를 추월하게 된다는 것.
이 책의 내용을 읽기 전 나는 이전 회사에서 만난 친구로부터 어떠한 감명을 받았었다. 그것은 나에게는 실무가 어느 정도 있었지만, 나도 경험해보지 못했던 면( 좀더 나은 성능을 위한 사고 접근 방법, 데이터 구조, 알고리즘, CS적 사고) 등이 나에게는 이제 존재하지 않는 것 같았는데, 실무가 부족한 이 친구는 그런 부분들이 자연스럽게 나오는 것이었다. 나는 그런 것을 생각하면서 내가 어떤 부분이 부족하고 한편으로는 반성하게되어 살펴보게 하는 등 좋은 경험등을 주었다.
그런데 책에서 저러한 내용을 주제로 이미 발표를 했던 사람이 있다니 왠지 모르게 이제서야 나는 느껴진다. 근래에 들어서 개발했던 부분들에 대한 내용들은 기초 적인 이론이나 지식등에서 알고 있고, 이미 들어봤던 내용인데 이것이 피부에 와닿는 그런 경험들을 했던 것이었다. 이런 것들이 실무의 실용성을 입정할 수 있는 이론 **이라는 글 처럼, **실무에 좀더 나은 해결 방법을 모색할 수 있는 이론(지식) 같은** **형태로 다가오는 것 같았다.
물론 나보다 더 나은 경험과 지식, 그리고 좋은 회사등에 재직하여 이미 얻는 부분일 수 있지만, 나에게는 특별했었다.
그래서인지 요즘 좀더 부족한 내용에 대해서 책을 살펴보고, 그것을 바탕으로 실무에 적용해보고 생각도 해보는 그런 형태인거 같다.
책 내용을 살펴보면서, 그동안 봐왔지만 잘 이해하지 못했던 DDD나 기초같은 개념의 객체지향에 대해서 좀더 생각해 볼 수 있는 시간이 되었으면 한다.
(잡설이 길었다 -_-;)