코드 변경의 복잡성과 인간적 요소
자가 언급한 ‘볼썽사나운 모습’에서 기술적인 관점과 인간적인 관점을 동시에 다루고 있다고 느꼈습니다. 동작 변경과 코드 정리가 뒤섞인 상황은 기술적인 혼란스러움을, 그 속에서 팀원 간 부족한 신뢰로 인해 불평을 늘어놓는 인간적인 혼란스러움을 전달하고 있습니다. 특히 인간적인 면에서의 혼란스러움을 느꼈던 것은, 저자의 다른 저서인 XP(익스트림 프로그래밍)에서 다룬 인간성이 떠올랐기 때문입니다. 소프트웨어는 사람이 만드는 것이고, 보통의 경우 혼자 만드는 것이 아니기 때문에 인간성에 기반한 협업을 해야 겠다는 생각을 했습니다.
변경의 연쇄 반응과 테스트 코드의 중요성
변경은 변경을 낳는다는 말에 공감 했습니다. 그리고 이런 연쇄 변경에 대해 두 가지 생각을 했습니다.
하나는 연쇄적으로 발생하는 변경이 지금 당장 애플리케이션 동작에 영향을 주지 않는다면, 적정 수준에서 멈춰야 한다는 것입니다. 사람의 행동에도 관성이 있다고 생각 합니다. 현실적인 상황을 고려해서 적정 수준에서 멈출 수 있는 통찰을 가져야 겠습니다. 동료와의 관계도 tidying 해야지, 너무 많은 변화는 급하게 먹은 밥 처럼 급체할 수 있습니다.
다른 하나는 필요한 연쇄 변경에 대해 심리적인 안정감을 가지려면, 충분한 테스트 코드가 있어야 겠다고 생각 했습니다. 충분한 의미 있는 테스트 코드는, 특히 코드 정리를 할 때 진가를 발휘 한다고 생각 합니다. 왜냐하면 코드 정리는 원칙적으로 동작에 영향을 주면 안되기 때문에, 테스트가 실패하지 않는다는 것으로 동작에 영향을 주지 않았음을 확신할 수 있기 때문입니다.
PR의 적절한 크기와 팀의 합의
PR의 적절한 크기는 팀의 상황에 따라 다릅니다. 팀원들의 코드 이해도, 프로젝트의 복잡성 등을 고려해야 합니다. 동작 변경과 구조 변경을 구분해서 PR을 작성하면 리뷰어가 변경의 의도를 더 쉽게 파악할 수 있습니다. 특히 구조 변경만 다룬 PR은 상대적으로 리뷰 부담이 적을 수 있습니다.
아무리 복잡한 것도 알면 쉽고, 아무리 쉬운 것도 모르면 어렵다고 생각합니다. 그래서 코드에 대한 이해도가 높다면 큰 PR도 부담이 적겠지만, 이해도가 낮으면 변경의 부작용을 예측하기 어려워 훨씬 복잡하게 느껴질 수 있습니다.
결론적으로, 켄트 벡의 "Tidy First?"는 코드 정리와 변경의 균형, 팀 협업의 중요성, 그리고 테스트 코드의 필요성을 강조하고 있습니다. 이러한 원칙들을 상황에 맞게 적절히 적용하는 것이 효과적인 코드 관리의 핵심이라고 생각합니다. PR의 크기, 리뷰 방식, 테스트 코드의 활용 등 모든 것은 팀의 상황과 프로젝트의 특성에 맞게 유연하게 조정되어야 할 것 같습니다.
'개발 방법론 > tidy first' 카테고리의 다른 글
tidy first 15장 '불필요한 주석 지우기' 를 읽고 (0) | 2024.11.03 |
---|---|
tidy first 14장 '설명하는 주석' 을 읽고 (0) | 2024.11.03 |
tidy first 13장 '하나의 더미' 를 읽고 (0) | 2024.10.26 |
tidy first 12장 '도우미 호출' 를 읽고 (2) | 2024.10.24 |
tidy first 11장 '비슷한 코드끼리' 를 읽고 (0) | 2024.10.21 |