2004년 10월 28일 목요일

회사 일 - Refactoring

전임자와 함께 보고 있는 source 코드가 맘에 안들어서 refactoring하려는 데 쉽지가 않다.
논리적인 버그를 몇 개 발견해서 수정해야 했고
약간 치명적일 수 있는 것들도 발견했는 데,
다른 팀원들이 작업한 많은 코드와 연동되어 있어서 수정할 수가 없다.
결국 시스템 전체의 구멍이 될 전망이다.


버그 수정을 위해서는 file format을 약간 바꿔야 하고,
5명 이상의 팀원의 코드를 동시에 수정해야 하고
과거 데이터 500기가를 migration해야 할 것 같다.
500기가라니!! 말이 500기가지 고치려면 아주 미친다.
만약에 실수하게 되면 지난 몇 개월간 모든 data가 날아가는 거다.


이대로 버그를 덮어놔도 당분간 잘 돌겠지만
새 기능을 추가하면 더 어지러워질테고 디버깅이 불가능해 질 것 같기도 하다.


변수명, 함수명도 일관성이 없어서 코드를 이해하기가 힘들었다.
(특히 나처럼 경험 부족한 프로그래머는 머리가 빙빙돈다.)
변수명, 함수명 몇 개 바꾸려고 꽤나 머리 굴리느라 시간을 소비하고 있다.
기껏 바꿔 놓으면 너무 이름이 길다고 아우성이다.
C++로 코딩한 것인데, OOP적 디자인이 부족해서 원래는 class 명이어야 할 것이 함수명에 붙어서 그렇다.


reading, parsing, processing, writing이 한 function에 섞여 있어서 코드를 이해하기도 어려웠다.
서로 다른 일을 하는 function이 같은 이름으로 overloading되어 있기도 했다.
data structure가 일관성 있지 않고 ad hoc으로 만들어져 있었다.
중복된 코드가 2~3개 존재해서 새 기능을 추가하려면 여러 곳을 수정해야 했다.


매우 짧은 코드인데도, 머리 복잡해 죽겠다. -0-


------------------
프랑켄슈타인 박사가 되고 있다.
우리는 만들어서는 안될 괴물을 만들고 있다.
능력은 뛰어나고 힘도 세고 하는 일은 많지만
통제가 안되는 녹색 얼굴을 하고 머리에는 못을 박은 괴물이 곧 탄생한다.
------------------
군대 4주 갔다오면 그래도 여기가 거기보다는 천국이고 이성적인 곳이라는 걸 알게되겠지.

댓글 없음:

댓글 쓰기