Summary
생각
대학교에서 객체지향 수업을 들을 때, 보통 절차지향과 비교한다. 절차지향은 코드를 작성한 순서대로 프로그램이 진행되고, 객체지향은 객체와 객체 간의 상호작용을 통해 프로그램이 진행된다고. 그러면서 곧바로, 현실 물체를 프로그램 코드인 객체로 변신시키는 게 객체지향의 핵심이고, 원리는 캡슐화, 상속, 추상화, 다형성이 있고, 그 뒤 곧바로 c++의 문법에 대해 배웠던 것 같다. 결국 대학교를 졸업하고 한참 뒤에야, 이 책을 읽으면서 객체지향이란 무엇인가를 곰곰이 되뇌이게 되었다.
본 책을 통해서 간단히 객체지향이 왜 나오게 되었는가, 객체지향을 왜 쓰는가, 객체지향 방식으로 애플리케이션을 설계하려면 어떻게 해야하는 가 등을 알게 되었다. 마치 수학 공식처럼, 단순히 객체지향의 원리를 달달 외운다고 해서, 객체지향의 본질을 깨우칠 순 없는 것 아닌가. 본디 프로그램 설계에는 유스케이스가 있었고, 이에 따라 도메인 모델을 설계하고, 이를 토대로 협력의 내용을 결정하고, 협력을 통해 발생되는 신규 메시지, 인터페이스, 객체까지. 이들의 통합적인 관리와 유연한 유지보수를 위해 객체지향이 필요했고, 그에 따라 캡슐화, 상속, 추상화, 다형성이든, SOLID든, 디자인 패턴이든 나오게 되었던 것 같다.
이에 확장하여 디자인 패턴에 대해 배워보고 싶다. 디자인 패턴이 객체지향에 종속되는 것은 아니지만, 애플리케이션을 설계할 때 단순히 객체간의 상호작용이 아닌, 결국 애플리케이션의 통합적인 관리와 유연한 유지보수를 위함이다. 타 개발자가 나의 코드를 바라보았을 때, 한번에 알아먹을 수 있는 개발자가 되고 싶다는 생각이 들었다.
독서 기간 : 2022-10-01 ~ 2022-11-07
참조 : http://www.yes24.com/Product/Goods/18249021