sangj***
2024-05-27

익스트림 프로그래밍의 창시자, 켄트 벡. 그의 수십 년 경험과 통찰이 담겨 있는 ‘경험적 소프트웨어 설계’ 노하우
일상 생활에서 "tidy first"는 어떤 작업을 시작하기 전에 먼저 주변을 정리하고 정돈하는 것을 의미한다. 예를 들어, 공부를 시작하기 전에 책상이나 방을 정리하여 깨끗하고 정돈된 환경은 학습에 대한 집중력을 높이는 데 도움을 준다.
소프트웨어 개발에서 "tidy first"는 같은 선상에서 코드를 작성하기 전에 코딩 환경을 정리하고, 필요 없는 파일을 제거하며, 코드 베이스를 정돈하는 것을 의미할 것이다. 이렇게 하면 코드 유지 보수가 용이해지고, 협업 시 다른 개발자들이 더 쉽게 코드를 이해하고 수정할 수 있게 된다.
이 도서는 익스트림 프로그래밍의 창시자, 켄트 벡 그의 수십 년 경험과 통찰이 담겨 있는 ‘경험적 소프트웨어 설계’ 노하우를 느낄 수 있게 해준다. 그의 첫 번째 조언은, 시스템의 전체적인 구조를 생각하며 코드를 작성하고, 복잡한 코드는 논리적인 작은 조각으로 정리하는 방법이다. 이 코딩 노하우를 32가지로 책에 간결하게 정리했으며, 소프트웨어 설계의 기반이 되는 결합도, 응집도, 설계 옵션, 비용 등에 대한 저자만의 인사이트도 함께 담았다.
본 책과 별책 부록으로 나누어 있는데 분량이 매우 얇다. 1부 코드 정리법, 2부 관리, 3부 이론 이렇게 나뉘어 있다.
코드 정리의 경우 디자인 패턴과 마찬가지로 좀 더 효율적으로 알아보기 쉽고 유지 보수하기 좋은 형태의 코드로 변환하는 팁을 알려주는 파트다. 응집도를 높이고, 선언과 초기화를 함께 그리고 주석을 효율적으로 사용하는 방식을 다룬다.
2부 관리는 코드 관리(code management)를 의미하며 1부와 맞물려 코드 정리의 시점과 얽힘을 푸는 방법, 리듬, 연쇄적인 정리하는 주제를 통해 작은 정리를 순차적으로 성공하며 하는 사례를 제시한다.
3부 이론에서는 소프트웨어 공학에서 항상 코드의 품질을 위해 이야기하는 응집도와 결합도에 대한 얘기와 함께 코드의 설계 변경, 구조 변경에 대한 좀 더 철학적인 저자의 의견을 들을 수 있다.
이 책의 내용은 결코 어렵지 않지만 문장을 곱씹어 의미를 이해해야 하는 부분 부분이 드러난다. 아래 예제와 같이 눈으로 스캔하는 것만으로도 저자의 의도가 전달되는 부분도 있으나 뒤로 갈수록 생각하며 읽게 하는 부분은 이 책의 특징이자 저자의 의도일 것이다. 저자가 그렇기에 책을 얇게 만들었다는 내용도 나온다.
책의 제목에 물음표(?)가 있는 것은 여전히 책의 이해와 적용에 대해 독자 나름의 해석과 이후의 결정체 지식을 결정하라는 의도로 보인다. 그렇다면 내용과 더불어 충실히 도서의 의도가 전달되었다고 본다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."