티스토리 뷰

Development

[책] 켄트 벡의 Tidy First?

KimDoubleB 2024. 5. 26. 23:53

Kent beck 켄트 백

 

켄트 벡 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

켄트 벡이라는 이름은 개발자들 사이에서 큰 영향력을 지니고 있다.

XP(익스트림 프로그래밍)와 TDD(테스트 주도 개발) 등을 창안하고 이를 널리 전파하여 수많은 개발자들에게 지대한 영향을 미쳤기 때문이다. 많은 개발자들이 그를 멘토이자 영웅으로 여긴다.

 

하지만 나는 그의 이론과 책을 많이 접하지 않은 사람으로 거리감이 있다. XP와 TDD가 차차 알려지던 시절의 개발자들에게는 더 큰 의미로 다가왔겠지만 말이다.

한 번 쯤 그의 책을 읽어보고 배워보고 싶다는 생각은 있었지만, 오래된 책들을 책장에서 찾아 읽어보기는 쉽지 않았다. 하지만 새로운 책을 구매해 펼치는 것은 쉽지 않은가?

이번 기회를 통해 그의 사상과 철학을 직접 접해보고 싶었다. 그의 어깨 위에 올라타서 나의 생각의 범위를 넓힐 수 있기를 바라며 이 책을 펼쳤다.

 

 

코드 정리가 먼저일까?

책의 제목인 Tidy First?를 해석한 말이다.

이 질문을 중심으로 책이 전개되며, 3장에 걸쳐 코드 정리의 기술, 시기, 그리고 그 이유를 설명한다.

목차는 다음과 같다:

1장: 코드를 정리하는 기술, 방법
2장: 코드 정리를 언제 시작할지, 코드 변경과 어떻게 구분해 적용해 나갈 것인지 
3장: 코드 정리의 이유, 소프트웨어 설계

 

코드 정리를 좋아하고 실천해왔던 독자라면 1장에서 소개되는 기술과 방법들이 그다지 새롭게 다가오지 않을 수 있다.

이는 이미 코드 정리 과정에서 겪은 여러 개선과 실패를 통해 체득한 기술들이기 때문이다.

많은 챕터로 구성되어 있지만 내용은 비교적 간결하여, '경험 했던 것들을 이렇게 글로 정리할 수 있구나' 감탄하며 읽을 수 있었다.

 

 

2장에서는 코드 정리와 코드 변경에 초점을 맞춘다. 언제 코드 정리를 시작하고 멈추는지, 코드 변경과 어떻게 조화롭게 진행할 수 있을지를 다룬다.

이 부분이 특히 흥미로웠던 이유는, 보통 코드 정리와 변경을 크게 구분하지 않았기 때문이다. 리팩토링을 위한 PR 작업을 제외하면, 코드 정리는 작업 진행과 함께 이루어졌고, 그 구분이 명확하지 않았다.

그러나 이 챕터를 통해 코드 정리와 변경 커밋을 구분하고 PR을 세분화하는 방법을 알게 되었다. 이 방식이 더 효율적일 수 있음을 깨닫고, 과거의 작업 방식을 되돌아보며 개선의 필요성을 느낄 수 있었다.

 

 

3장은 코드 정리를 해야 하는 이유에 대해 다룬다.

면접에서 "코드 정리를 하나요?"라는 질문에 "아니요"라고 대답할 사람은 드물다. 대부분은 "네, 합니다"라고 대답한다.

하지만 "왜 코드 정리를 하나요?"라는 질문에는 명확한 답을 하지 못하는 경우가 많다. 목표 없이 코드 정리를 하는 것은 올바르지 않은 결과를 초래할 수 있다.

켄트 벡은 이 장에서 왜 코드 정리를 해야 하는지 자신의 철학을 설명한다. 단순히 '코드 정리는 이래서 해야 한다'는 식의 뻔한 설명이 아니라, 코드 정리와 그 비용을 현금의 인플레이션/주식 옵션 등의 개념과 연결 지어 설명하는 부분은 어렵지만 흥미롭다.

 

 

이렇게 책을 읽어보면 어떨까?

이 책은 각 챕터에서 새로운 개념을 소개하는 이론서와는 달리, 단계별로 진행되며 결론을 향해 나아간다. 그리고 마지막에 이르러 책의 핵심 질문에 대한 답변을 제시한다.

이러한 구조 이기에 마지막 챕터인 '33장 결론'을 먼저 읽고 나서 정독하는 것을 추천한다. 이렇게 하면 책을 읽는 내내 궁금증을 유지하면서도, 전체적인 흐름과 결론을 미리 이해할 수 있어 더욱 재미있고 몰입감 있게 읽을 수 있을 것 같다.

 

또한, 이 책에는 옮긴이의 노트가 별도로 제공된다. 옮긴이는 켄트 벡과 직접 소통하며 번역 과정에서 이해되지 않거나 애매모호했던 부분들을 해결한 내용을 담고 있다.

이 노트를 책을 읽기 전에 먼저 읽어보면, 책의 내용을 더 깊이 이해하는 데 도움이 된다. 여러 단어와 표현이 왜 그렇게 구성되었는지를 알 수 있어, 책에 대한 이해도를 높이는 데 유용할 것이다.

 

 

결론

책을 처음 펼칠 때만하더라도 진행 중인 코드정리 작업들을 생각하며 '작업에 도움이 되겠지'라는 마음이었다.

다 읽고 나니 너무도 작은 마음으로 책을 펼친게 아닌가 하는 생각이 든다.

 

코드 정리와 소프트웨어 설계, 그리고 그 속에서 질문들을 생각하다보면,

현재 내가 진행하는 작업만 생각하는 것이 아닌 내가 지금까지 해온 개발들과 그 개발들의 비용과 가치를 생각해보게 되기 때문이다.

 

요소와 관계들, 그 관계의 이점을 높이는 소프트웨어 설계 그리고 돈의 속성으로 배우는 소프트웨어 변동성의 가치.

내 몸과 머리에 익숙해질 때까지 개발하며 계속해서 되뇌고, 되뇌어야 하는 것이 아닐까.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함