우당탕탕 우리네 개발생활

[oop] <객체지향의 사실과 오해>에 대해 정리하기 전에... 본문

tech

[oop] <객체지향의 사실과 오해>에 대해 정리하기 전에...

미스터카멜레온 2024. 5. 6. 20:26

객체지향에 대한 공부를 시작하게 된 계기

올해 설정한 백엔드팀의 긴 로드맵 중 하나가 객체지향에 근간한 개발하기이다. 그 이유 중 하나는 '코드의 책임 분리'가 확실해질 수 있기 때문이다. 현재 무거운 로직들의 경우 책임 분리가 명확하지 않아 덕지덕지 꼬여있다. 이로 인해 코드에 대한 이해가 어렵고 유지 보수는 엄두가 나지 않는다. 점점 살이 붙으면서 더 유지보수가 힘들어지고 있는 상황을 긴호흡으로 객체지향 베이스로의 전환을 통해 해결해보자고 의견이 모아졌다.  근래 합류한 훌륭한 동료가 객체지향에 대한 공부를 꾸준히 해왔고 실무에서도 적용해본 경험이 있어서 객체지향 도입에 대해 리딩을 해주고 있다. 최근 새로운 feature를 개발하면서 동료가 객체지향 방식으로 작성한 코드를 리뷰할 기회가 생겼는데 다소 충격적이었다. 객체지향에 대해 제대로 모르는 상태에서 코드를 봤는데도 로직 내 역할 분담이 잘 되어있는 느낌을 받았고 이에 따라 비즈니스 로직이 직관적으로 한눈에 들어왔다. 이 매력적인 패러다임에 대해 한시라도 빨리 녹아들고 싶었고 충동적으로 쿠팡 로켓배송을 통해 책을 주문했다. 팀의 로드맵으로 객체지향 적용을 채택한 이상 한시라도 빨리 기본적인 지식들은 습득해두기로 결심했다.

<객체지향의 사실과 오해>는 어떤 책인가?

1. 우리나라 객체지향의 권위자이신 조영호님의 책이다.(조영호님과의 일대일 과외라고 생각하며 즐겁게 열심히 배웠다.)

2. 책이 총 7개의 장으로 구성되어 있는데 99%가 줄과 그림이고 그나마 아주 간단한 예시코드가 7장에 나온다. 페이지는 약 250장으로 학습서 중 가벼운 편이다.

3. 책의 서론에서 조영호님은 이와 같이 말씀하신다. 이 책은 객체지향이란 무엇인가라는 원론적이면서도 다소 위험스러운 질문에 대한 제 나름의 대답을 말씀드리기 위해 쓰여졌습니다. 그동안 객체지향이라는 패러다임속에서 수많은 연구와 시행착오 끝에 정리하신 생각들을 이 책에 풀어주셨다는 느낌을 확실히 받을 수 있었다.(그렇기 때문에 밑줄과 메모로 책이 도배되었다.)

4. 꼭 알고 넘어가야하는 사실과 오해들을 수많은 장들에서 반복적으로 일관되게 강조해주시는게 좋았다. 이로 인해 객체지향이라는 패러다임에 대한 추상화를 어렴풋이 할 수 있게 되었다. 

앞으로의 계획

1. 구성된 장별로 주요하게 정리했던 내용들을 블로그에 정리해두려고 한다. 앞서 얘기했듯이 거의 모든 문장들에 줄을 긋고 메모를 하며 책을 읽었을 만큼 내용이 좋았는데, 이를 좀 더 추상화하여 틈틈이 찾아보기 쉽게 핵심 키워드위주로 정리해보고자 한다.

2. <객체지향의 사실과 오해>의 내용들이 어느정도 머릿속에 정리되었다고 판단되면 <오브젝트> 공부를 시작하려고 한다. 현재 <리팩토링 2판>도 공부중이고 테스트와 관련된 책도 예정되어 있어 좀 길어질 수도 있을 것 같다.

마무리

4.23 ~ 5.5 약 2주 조금 안되는 기간동안 <객체지향의 사실과 오해>와 함께 했다. 내가 잘 알고 있는 지식을 남들에게 이해하기 쉽게 설명하기란 정말 어려운 일이라는 것을 어렴풋이나마 알기에 이 책을 완성하시기까지 얼마나 깊은 고뇌를 하셨을까 존경심도 들고 감사했다. 이 책을 통한 공부가 앞으로의 객체지향을 향한 깊은 여정속에 큰 도움이 되길 바라며 나 역시도 누군가에게 좋은 영향을 줄 수 있길 바라본다.