레거시 코드의 아름다움?

우여곡절이 많은 프로젝트의 프로덕트를 잠깐 보게 되었다.

여러 사람들의 손을 거친 코드들이었는데 왜 이렇게 만들었지를 입에 달고 살게 만든 코드였다.
프로젝트 초기에 빨리 보여주기 위해 프레임워크에서 제공하는 기본 템플릿을 상속해서 만들었는데, 이게 오히려 독이된 프로젝트였다.

요구사항은 시시각각 변하는데 글자 하나를 고치려고 해도, 버튼 하나를 붙이려고 해도 기존 코드를 이해하는데 반나절, 짜증과 함께 추가하고 수정하는데 반나절 걸리는 코드였다. 보통은 html로 그리는 버튼을 javascript가 페이지 로딩후 동적으로 그린다. 왜? 프레임워크를 상속받아 html을 프레임워크가 기본으로 그려주기 때문에 개발자가 수정할 수 없다. 그래서 페이지 로딩후 javascript로 그린다. 이 얼마나 속터지는 상황이란 말인가...

경험이 적으니 이런 상황에 대해 적잔히 당황했다. 운이 좋게도 내가 경험한 프로젝트들은 이정도는 아니었다. 보통 프리렌서를 하면서, 특공대 처럼 다니시는 사람들은 이런 레거시 코드를 꽤 많이 보겠지...
java 소스 파일이 없이 class 파일만 있는 핵심 코어 프로그램을 유지보수 하셨다는 아는 형의 말을 들으며 이런경우도 있구나라고 생각했는데, 그보단 덜 했지만 설계 자체가 잘못되어 유지보수가 점점 어려워지는 코드를 경험하니 이런 일이 비일비재 하다는 걸 느꼈다.

처음 시작이 중요해... 아웅!!!

,