남이 짠 코드 고치기

요즘 회사에서 하고 있는 일이 남이 짠 코드를 읽고, 해석하고, 개선 사항이 있으면 찾아서 고치는 일이다. 그렇게 완전 발로 짠 코드는 아닌데, 그래도 이 업계 특성 상, 외주 개발자가 적당히 개발해 놓은 코드라.. 코드를 읽으면서 그렇게 기쁘지는 않다 T_T

다행이 코드 상단에는 이 클래스가 하는 역할이 무엇이다 정도는 주석이 달려 있는데, 문제는 코드 구석에 달려 있는 알 수 없는 부분들.. 예컨대, hashCode()를 override를 해 놨는데, 그냥 단순히 a << 4 + b 이런 식으로 hash code를 계산해 놓았다. 뭔가 일반적인 케이스가 아닌 듯 하여, 일단 코드를 바꿔 놓고 다시 한참을 보다보니, 다른 코드에서는 또 hash code를 a << 8 + b 이런 식으로 계산하고 있다. 뭔가 data에 특성과 hadoop cluster의 규모를 고려하여 최적화를 시켜 놓은 건가.. 해서 다시 아까 고친 코드를 원래대로 돌려 놓으면서도 알 수 없는 이 찝찝함이란.. 그냥 개발자가 생각 없이 박아 놓은 코드인지, 아니면 최적화를 위한 고민의 산물인지 알 수 없는 코드들. 그런데 그런 부분들에는 주석이 없다. 에휴 –_-

그리고 또 문제는 테스트 케이스가 전혀 없으므로, 코드를 고쳐도 제대로 고쳤는지 확인할 방법이 없다는 것. 그래서 일단 기존 코드에서 돌아가는 테스트 케이스를 먼저 만들고, 코드를 고친 다음, 아까 만든 테스트 케이스가 제대로 동작하는지 일일이 확인하면서 고쳐 나가고 있다. 정답 없는 문제에 내가 정답 케이스를 만들고, 그 정답 케이스에 맞춰서 문제를 조금씩 수정해 나가는 이 오묘한 감정이란.. ㅋㅋ

댓글

Designed by JB FACTORY