간단한 모니터링 페이지를 만들고 팀장님과 추가적인 아이디어 회의를 하다보니 새로운 기능 및 지표를 추가 해야 할 일이 생겼다. 불과 4일 전에 내가 짠 코드였지만 정말 간단한 기능을 추가하려고 하니 전체적인 구조를 바꿔야 하는 상황이 다가왔다. 완성을 하고 보니 비슷한 리턴값 (지표 하나 추가)을 가졌지만 새로운 코드가 되어버렸다.
지금까지 막연하게 내가 생각한 좋은 코드는 짧고 알아보기 쉬운 아름다운 형태의 코드였다. 그것이 좋은 코드라고 생각했고 그것이 실력이라고 믿고 있었다. 그래서 좀 더 짧게 코드를 작성하기 위해 for 루프 보다는 리스트 컴프리헨션이나 루프 연산시 reduce를 사용하곤 했다. 하지만 이 생각이 깨지는데는 얼마 가지 않았다. 루프 한 번을 돌면서 처리해도 되는 로직을 굳이 reduce를 사용하여 4~10번의 추가 루프를 돌기도 했고, 불 필요하게 리스트 컴프리헨션 안에 로직을 많이 추가하여 오히려 해석하기 위해 시간을 투자하는 불필요한 낭비가 일어나기도 했다. 또한 코딩 컨벤션을 무시한 채 오브젝트 프로퍼티들을 한 줄에 모두 나열하기도 했다..(그것이 이쁜 코드라고생각 해서..)
오늘의 경험을 통해 다시 한 번 좋은 코드라는 것을 생각해보니 크게 3가지로 정리되었다.
후회가 된다. 그 때 조금만 더 생각하고 코드를 작성할 껄.. 불필요한 리소스를 동일한 업무에 투자했고, 그 결과 또한 결코 좋다고 확신 할 수 없다..
그래도 얻은 것이 있다면 다음에 또 그 다음에 내가 코드를 작성 할 때 이 점을 인지할 수 있다는 점 ? 또한 내가 나의 코드에만 너무 빠져 있었고 결국 우물 안에서 고민만 하는 개구리에 불과했다는 사실을 알았다는 점 ?
앞으로 다양한 사람들의 더 많은 코드를 봐야겠다는 다짐을 하게된다 !