트위터에서 신간 소식을 보고 마치 게임 캐릭터의 능력치 정보 창과 같은 책 커버 디자인이 흥미롭다는 얘기를 회사 점심시간에 꺼냈다가, 선뜻 주문해주셔서 회사 서재에 이 책이 한 권 생겼다.
글을 정리하기 전 써보는 간단한 후기는...
1. 당연한 말의 지분이 생각보다 높다. (당연한 말이지만, 이라는 수식을 굉장히 자주 사용한다.) 사실 개인적으로는 당연한 말이더라도 그 말을 그럼에도 해야하는 이유나 목적이 분명하게 설명될 경우 아무 문제가 되지 않는다고 생각한다. 그런데 이 책은 당연한 말을, 그 말이 당연한 이유만 붙여 설명할 뿐이다.
2. 제목에 충실하게, 글이 굉장히 넓고 얕다. 술술 읽으며 시니어 개발자는 이런 생각을 하는구나, 읽기 위해 이 책을 펴는 것이 가장 적합하다.
지은이가 제시하는 개발자의 역량은 다음과 같은 키워드로 정리된다.
이를 중심으로 책을 읽으며 2년차 개발자로서 지난 날을 돌아보고, 현재와 앞으로 할 일을 정리해보는 시간을 갖기 위해 책을 읽어봤다. 이 책은 읽고 요약하기 보단 나중에 다시 한 번 읽고 싶을 만한 문장을 남겨놓는 쪽으로 정리를 했다.
개발자가 얼마나 구현 기술을 활용할 수 있는가?
어떤 기술을 도입할 때 보수적으로 고민하면서 고려해야할 것들이 있다.
사실 내가 쓰는 크로스 플랫폼 모바일 앱의 기술이 굉장히 마이너해서, 이 기술을 사용하는 회사를 만나기는 커녕 내 이력서를 통해 그 프레임워크의 이름을 처음 들어봤다는 사람들을 훨씬 많이 보게 된다. (사실상 이전 회사에서 1년 정도 썼고, 여러 플러그인도 써봤지만 이를 필요로 하는 회사가 없으니 내 이력서에서는 그냥 분량을 채우는 역할만 하게 된 것이다.)
어떻게 유지 보수하는 비용을 줄일 수 있을까?
코드 품질 관리가 곧 결국 비용 문제에 직결된다.
유지 보수를 하기 위해서는 기존 코드를 이해하는 과정이 늘 선행된다.
이 코드 이해를 하는데 소요되는 비용을 어떻게 줄일 수 있을까?
중요한 점. 코드를 다이어그램으로 시각화할 때 모든 상세 내용을 전부 표시하려고 하면 안 된다. 불필요한 요소는 생략하여 분명하게 다이어그램의 목적을 수행하고, 의도된 정보를 제공하게 한다.
왜 응집도를 높이고 결합도를 낮추어야 할까?
응집도를 높이고 결합도를 낮춘다는 것은 구성 요소 간 상호 작용을 최소화하는 것이다.
레거시 코드는 왜 무서운가?
테스트 코드를 작성하는 게 쉽지만은 않다. 하지만 테스트가 주는 이점을 고려하면 테스트 코드 작성 능력을 길러야 한다.
테스트 코드를 만들고 이 테스트를 통과할 수 있는 구현을 진행하여 소프트웨어를 개발하는 방법론.