1990년대 말 미국에서 어떤 팀에서 만든 프로그램을 한국에 현지화 하려고 하다 차라리 다시 만드는게 빠를 것 같아 통채로 다시 만든적이 있습니다.
일단 여럿이 달라붙어서 만든 프로그램이라 개발자 수준에 따라 코멘트와 네이밍이 정석으로 되어 있는 코드부터 코멘트도 없는데 네이밍까지 엉망인 코드까지 하여튼 들쭉날쭉 이였습니다.
해당 프로그램 개발하는데 참여한 개발자는 없고 그 프로그램을 사용했던 고객만 있어 DB부터 고객과 토론해가며 일부 수정하고 기능중 5% 정도는 결국 살리지 못하고 95% 정도의 기능만 구현하였습니다.
살리지 못한 5%는 코드만 봐서는 도저히 뭔지 알 수가 없어 살리지를 못했었죠.
대신 뒤죽박죽 되어 있던 코드가 일관되게 바뀌고 성능이 일부 개선됐으며 새로운 기능을 쉽게 추가할 수 있는 구조로 만들었습니다.
미국에서 만든 프로그램은 인건비로 3억 정도가 들었고 통채로 다시 만드는데 걸린시간은 2~3개월에 개발자는 저 혼자였습니다.
통채로 다시 만들었다고 얘기했지만 건축으로 치면 리모델링이나 마찬가지였습니다.
DB구조 대부분은 그대로 둔 상태에서 튜닝을 좀 한 수준으로 끝내고 인터페이스도 폼을 새롭게 다시 다 만들었지만 이미 제작되어 있던 폼에 약간 수정을 가한 후 기능을 추가하는 식의 작업이였죠.
알고리듬은 대부분 그대로 살리고 뒤죽박죽 된 코드 위주로 다시 개발했습니다.
오유의 경우 회원수는 매우 많지만 사이트의 구조 자체를 보면 상당히 단순한 구조입니다.
10년이 넘는 동안 기능을 확대해 나가면서 코드가 상당히 지저분해졌을 거라 예상합니다.
처음부터 대부분의 기능을 설계하고 사이트를 개발한게 아니라면 어쩔수가 없는 현상이죠.
만약 제가 오유운영자라면 아예 한번 뒤엎을 겁니다.
최초 설계시 고려되지 않은 기능이 계속 다닥다닥 붙다가 보면 점점 유지보수가 힘들어지고 성능 또한 계속 떨어지게 되기 때문이죠.
대댓글 기능이나 신고 기능 같은 거 오래걸릴만한 기능들이 아닌데도 불구하고 운영자 분이 힘들어하는게 이런 문제 때문이 아닐까 합니다.
네이밍 룰부터 시작해서 제대로 최적화 시킨후 유지보수가 쉽게 되도록 만들겁니다.
고려하고 있는 기능들을 전부 추가하고 테스트 기간을 포함해도 6개월이면 시간이 넘치지 않을까 생각합니다.