생각나열/tidy first

tidy first 17장 '연쇄적인 정리' 를 읽고

nimkoes 2024. 11. 25. 22:08
728x90

코드 정리는 인간적으로

 

챕터 16 ‘코드 정리 구분’ 에서 ‘변경은 변경을 낳는다.’ 라고 언급한 부분이 있었습니다. 여기서는 변경의 결과로 새롭게 변경 할 부분이 도출 된 상황이었다면, 이번에는 개인의 욕망에 의한 연쇄적인 변경을 얘기 하며 충동을 억제할 수 있어야 한다고 얘기 합니다.

이번 챕터에서는 앞서 다룬 구체적인 코드 정리 실천 방법들에 대해 다시 한 번 언급하고 있습니다. 각각의 구체적인 방법에 대해서도 되뇌는 시간을 가질 수 있었는데, ‘그래서 이런 것들을 왜 해야하는가?’ 의문을 가지게 되었습니다.

 

 

코드를 정리하는 이유 중에는 ‘미래의 변화에 유연하게 대응하기 위함’ 이라는 것을 부정할 수 없을 것입니다. 변화에 유연하게 대응할 수 있다는 것은, 작성 된 코드를 어렵지 않게 이해할 수 있음이 전제 되어야 합니다. 무엇을 하는 코드인지 이해하지 못한 상태에서 리팩토링은 수많은 부작용을 가져올 수 있기 때문입니다.

 

코드를 어렵지 않게 이해할 수 있다는 것은, 코드가 드러내는 의도가 명확하게 보인다는 것을 뜻합니다. 코드의 의도를 명확하게 드러내기 위해서는 코드를 작성하는 사람의 배려가 필요 합니다. 같은 일을 하는 코드라 할지라도 잘 쓰여진 소설 한 편을 읽듯 술술 읽히게 코드를 작성하는 사람이 있는 반면, ‘동작만 하면 되지’ 라는 생각으로 ‘당시 작성자의 기반 지식을 모두가 알고 있다고 가정하고’ 코드를 작성 하는 사람도 있기 때문입니다.

 

미래의 변화에 유연하게 대응하기 위함의 연장선에서, 변화의 중심에 놓인 미래의 동료를 생각하고 사려 깊게 작성한 코드는 인간성을 담았다고 생각 합니다. 그런 관점에서 tidy first 에서 안내하는 코드 정리 기법들은 소프트웨어를 아프지 않게 유지하기 위한 최소한의 인간적인 행동 양식들을 정리 했다고 느꼈습니다. 다시 말해, 각자 살아온 시간이 달라 생각하는 인간성의 기준이 다르지만, 켄트 벡이 이 책을 통해 전달하는 구체적인 실천 방법들을 하나의 지침으로 참고하여 실천 한다면, 최소한의 인간성을 담은 소프트웨어 설계를 할 수 있다고 말하는 듯 했습니다.

 

하지만 가장 중요한 것은, 이 모든 실천 방법들을 강제하는 것은 아니며 모든 경우에 대한 정답이 아니라는 것을 염두에 둬야 합니다. 대부분의 경우 책에서 말하는 가이드가 올바른 방향을 제시 하지만, 상황에 맞춰 합의가 이뤄져야 겠습니다.

 

 

 

 

728x90