안녕하세요 괴짜 개발자 namedboy 입니다. 😎
개발자 여러분! 리팩터링을 얼마나 자주 하시나요? 개발자로 일을 한다면 일을 하는 동안에 내내 하게 되는게 리팩터링이 아닐까 싶습니다. 어떤 새로운 개발을 한다고 해도 결국 리팩터링을 하게 되는 순간이 오는 것 같습니다.
저는 리팩터링이 없이 일을 해야 한다고 하면 엄청난 두려움이 엄습해 오는데요. 그만큼 더 좋은 코드에 대한 끊임없는 갈망이 있는 듯 합니다.
개발 업계에서 유명한 저자이자 공학자 등의 타이틀을 가지고 있는 마틴파울러가 리팩터링을 하면서 만든 기준들과 방식들에 대해 정리한 책이 바로 이 리팩터링 입니다. 만약에 이 글을 읽는 분이 리팩터링에 대해서 처음 들어보셨다면 꼭 이 책을 일독하시는 것을 권합니다.
아마도 리팩터링이라는 단어를 듣지 못하셨다고 하더라도 의미를 조금 알게 된다면 이미 리팩터링을 하고 있구나 라고 생각하시게 되실 수도 있습니다. 리팩터링이라는 것이 그만큼 개발 하기 위해 필수 불가결한 존재이기 때문 입니다.
간단하게 중복 변수를 제거하는 법부터 함수 재활용, 읽기 쉬운 코드로 변환하는 법등 일반적인 상황에서 활용할 수 있을 만한 방법과 기술들을 자세한 코드들과 함께 설명하고 있습니다. 중간쯔음부터는 리팩터링 하는 중간에 필요한 테스트 코드 작성법과 테스트 코드를 통해 안전하게 리팩터링 하는 법에 대해 설명해줌으로써 오래된 알 수 없는 코드를 리팩터링 할 때 어떤 방식으로 하면 문제 없이 할 수 있는지에 대해 설명하고 있습니다.
리팩터링을 어떻게 해야 하는지 잘 모르는 방법에 대해서 설명을 해 뒀다면 언제 리팩터링을 해야 하는지에 대해서도 친절하게 설명해 두었습니다. 저의 생각은 사람마다 다르게 느끼는 부분이라고 생각합니다만 정말 정확하게 그걸 잘 번역해주셨다고 생각합니다. 바로 “코드에서 나는 악취” 파트 인데요.
어떤 사람은 코드가 무슨 음식이냐며 코드에서 어떤 악취가 나냐고 말씀 하시는 분들도 있으실 것 같습니다. 하지만 저는 저 부분이 너무 크게 공감이 되었던 부분이 정말 코드에서 나는 악취느낌이기 때문입니다.
저는 보통 이런 상황에서 코드의 악취를 느끼는 것 같습니다.
- 결과물이 잘못 될 것 같다.
- 이상한 코드가 될 것 같다.
- 다른 사람이 내 코드를 이해하지 못할 것 같다.
- 반복되는 비슷한 코드가 많아진다.
- 함수 하나를 파악하는데 스크롤이 길어진다.
실제 책에는 더 자세한 내용과 함께 어떻게 하면 이런 것들을 쉽게 알아챌 수 있는지도 함께 가이드 하고 있습니다. 리팩터링에 대한 모든 것을 담고 있죠. 더불어 개발자라면 지향해야 하는 방향에 대해서 함께 나와 있다고 생각합니다.
리팩터링을 하는 것 자체가 더 좋은 코드를 만들기 위한 노력이라고 생각합니다. 하지만 보통 리팩터링에 대해서는 어떻게 해야 한다 하는 내용은 잘 알려주지 않습니다. 잘 모르기도 하구요. 하지만 리팩터링을 하지 않으면 코드는 죽어가게 됩니다. 죽은 코드는 되살릴 수 없죠. 유지보수를 하는 입장에서도 새롭게 개발을 하는 상황에서도 리팩터링은 꼭 필요한 작업인 것이죠. 리팩터링에 대해 자세히 알고 싶고 제대로 알고자 하는 분이라면 리팩터링을 추천합니다. 리팩터링은 링크 에서 보실 수 있습니다.