서평에 앞서
요즘 들어서 클린코드 계열의 책이 꽤 나오기 시작했다.
TDD, XP 쪽의 네임드인 켄트 백의 'Tidy First?', Line 개발자가 알려주는 '코드 작성 가이드', 조만간 나온다고 알려진 '프로그래밍의 규칙' 처럼 뭔가 짠 것처럼 앞다퉈서 책이 나왔다.
유행인지 타이밍이 겹친 것인지는 모르겠지만 주기적으로 마인드를 세탁(?)하기에 적합한 종류의 책들일 것 같다.
오늘 리뷰할 '읽기 쉬운 코드' 또한 비슷한 결의 책이다.
읽기 쉬운 코드는 '로버트 C 마틴' 시리즈 중 하나로, 클린 코드, 클린 코더, 클린 아키텍쳐 등등의 책을 집필한 로버트 C 마틴의 손을 거쳐간 책이다. (다른 책과 다르게 이 책은 집필을 다른 사람이 했다.)
클린 코드와 다른가?
개발을 시작한 첫 해에 클린코드에 심취했었던 적이 있다. 어떻게 코드를 구성할 지 모호하던 차에 큰 지침서가 됐던 것 같다. 함수명이 길어도 읽혀야하고 적절한 길이로 함수가 끝나야한다 같은 것은 공부하고 프로젝트를 처음 할 때 정말 큰 도움이 됐다. 이제는 머리가 굵어 모든 사항을 지키지는 않지만 영향을 받았고 좋은 가이드라인이었다. 지키지 못하는 부분들이 생긴건 현실적으로, 또는 나에게 맞지 않는 부분들이라고 느껴서 였다. 그 책이 나온지 오래됐기에 현실정에 맞지 않는게 아닐까 라고 생각이 들었다. 너무 단정적으로 정해진 규칙을 따르기엔 세상이 달라진게 아닐까...?
클린 코드는 '좋은 코드'는 '깨끗한, 클리어한 코드'라는 주장이라고 생각한다.
이제 새로운 책이 나왔다. 읽기 쉬운 코드는 현실정에 맞게 진화하고 있는 좋은 코드가 무엇인지를 다루는 책이다.
어떤 내용을 다루는가?
읽기 쉬운 코드를 만들기 위해서 해야하는 방안들과 아이디어를 다룬다.
1부에서는 프로젝트를 처음 만드는 과정을 다루고, 2부에서는 지속가능하게 유지보수하면서 발전을 해가는 과정을 다룬다.
따라서 1부에서는 설계하는 과정, 작게 시작하는 수직 슬라이스 개념(MVP와 비슷한데 쵸금 다르다.), 초반에 속도를 내고 미래에 유지보수를 염두해주는 코드 작성을 다룬다. 협업에서는 깃을 다룰 때의 팁, 협업 방식에 대한 이야기를 다루는데, 그 내용 안에서는 각자의 코드가 아니라 공동 소유화가 되도록 유도하고 있다.
2부에서는 유지보수와 발전과정이다. 현업에 가게 되면 밑바닥부터 쌓아가는 일보다는 기존 코드베이스 위에서 움직이게 된다. 이 코드를 이해하고 보강, 편집하면서 문제를 해결하고 테스트 코드까지 편집하는 등 지속가능한 코드 작업에 대해서 다룬다.
인상 깊었던 내용은?
책의 제목처럼 '읽기 쉬운 코드'를 만드는 방법이 주 내용이다.
읽기 쉬운 코드가 '좋은 코드'라고 이야기한다. 좋은 코드를 다루는 책들은 철학, 테크닉, 경험에 의존해서 자기가 생각하는 좋은 코드를 풀어간다. 저자의 관점은 사람이, 팀원들이 읽기 쉬운 코드를 만드는게 유리하다는 것이다.
사람이 한 번에 기억할 수 있는 단기기억은 7개 정도라고 한다. 이것보다 더 복잡해지면 사람이 받아들이기 힘들다는 것이다. 어쩌면 당연한 얘기이고 과학적인 접근이라서 너무 흥미로운 말이었다. 시대가 발전하면서 개발 생산성이 올라가면서 더 복잡하고 과거에 하기 어려운 개발을 할 수 있게 됐다. 그 안에서도 여러 추상화, 캡슐화, 다각화, 분리, 결합 등을 하면서 7개 이내의 논리 구조를 가지도록 해야한다.
코드가 부패한다. 이 부패라는 표현이 정말 와닿았다. 리팩토링이나 클린코드처럼 청소를 하지 않고 방치해두면서 계속 덧붙임 코드를 이어가다보면 더 컨트롤하기 어려워지고 개발 생산성에 악영향을 끼치는데. 이것을 부패한다고 표현해서 재밌는 표현이라고 느꼈다.
'리뷰 > Book' 카테고리의 다른 글
책 리뷰 '러닝 깃허브 액션' (0) | 2024.06.23 |
---|---|
책 리뷰 '더 나은 프로그래머 되는 법' (0) | 2024.05.26 |
책 리뷰 '스타트업 서바이벌' (0) | 2024.03.24 |
책 리뷰 '프로덕트 매니지먼트의 기술' (0) | 2024.02.25 |
책 리뷰 '모던 리액트 Deep Dive' (0) | 2024.02.01 |