News from 8월 31, 2007
  Dashboard > 내 가슴에 열정이.. > Browse Space > News from
Community
  내 가슴에 열정이.. Log In | Sign Up   View a printable version of the current page.  
  2007/08/31
Labels: reviews

지금까지 웹 애플리케이션 개발 경험이 7년이 되어간다. 7년이 되는 지금까지 대부분의 개발 경험이 신규 프로젝트였다. 신규 프로젝트의 경우에는 새롭게 만든 애플리케이션이 정상적으로 동작하는 것이 확인되면 유지보수를 담당하게 될 개발자들에게 인수인계를 마치고 빠지는 형태로 지금까지 개발해왔다. 그리고 운영 업무보다는 신규 개발 업무가 훨씬 어려운 작업이며, 대단한 작업으로까지 생각하며 살아왔다. 그러나 7년의 마지막 1년.. 즉 최근 1년은 유지보수 업무와 개발 업무를 병행하고 있다. 처음 유지보수 업무를 맡았을 때 상당한 거부감이 생긴 것 또한 사실이다. 시간이 지나면서 다른 개발자이 개발한 소스코드를 분석하고 개선해 나간다는 것이 얼마나 어려운 작업인지를 새삼 느끼고 있다. 좀 더 빨리 유지보수를 업무를 해봤다면 나의 개발 스타일에도 많은 변화를 가져왔으리라 생각한다.

유지보수 업무를 맡은지 얼마되지 않아 이 책을 읽기 시작했다. 이 책의 "Legacy Code"라는 단어에 필이 꽂혀 책을 선택하게 되었다. 현재 내가 맡고 있는 모든 소스코드를 Legacy Code로 간주하고 좀 더 효율적으로 개발하고 싶은 욕심에 선택하게 되었다. 사실 처음에는 큰 기대없이 읽기 시작했다. 그러나 기대와는 달리 너무 많은 것을 느끼게 하는 책이다. Chapter를 하나씩 읽을 때마다 필자가 Legacy Code들과 얼마나 많은 시간을 싸워왔는지 피부로 느낄 수 있었다. 사실 운영 업무의 시작단계라 할 수 있는 나는 생각할 수 조차 없는 다양한 방식으로 Legacy Code가 가지고 있는 문제점들을 해결해나가는 것에 많은 것을 배울 수 있었다.

유지보수 업무의 핵심은 기존 기능을 변경하지 않는 상태에서 소스코드를 리팩토링하는 것이라 할 수 있다. 이 책은 이에 대한 다양한 해결책을 제시하고 있다. 기존 Legacy Code가 가지고 있는 문제점과 성격에 따라 다양한 해결책을 제시하고 있다. 특히 Legacy Code를 Step by Step으로 리팩토링해 가는 과정은 감동 그 자체이다. 테스트를 만들 수 없을 것으로 생각되는 Legacy Code에 테스트 코드를 만들어 가는 과정이 특히 많은 것을 배울 수 있게 했다. 지금까지 Legacy Code의 가장 큰 문제점은 테스트 코드가 없다는 것이다. 그러므로 기능을 추가하거나 리팩토링을 하더라도 해당 기능에 대해 검증할 수 있는 안정장치가 없으므로 인해 유지보수하기 힘든 것이 사실이다. 이 책은 기존의 Legacy Code에 테스트 코드를 어떻게 만들어 나갈 수 있는지에 대하여 많은 부분을 할애하고 있다.

많은 개발자들이 신규 프로젝트는 유지보수 성격의 없는 것으로 착각하고 있다. 그러나 신규 프로젝트 또한 프로젝트가 중,후반으로 진행될수록 지금까지 개발했던 코드들에 대한 유지보수 업무가 발생한다. 고객들의 요구사항은 언제든지 변경될 수 있기 때문이다. 따라서 이 책은 유지보수 업무를 담당하고 있는 개발자들에게만 필요한 것이 아니라 애플리케이션을 개발하는 모든 개발자들에게 필요한 내용이다. 신규 프로젝트를 진행하고 있는 개발자들도 자신이 개발하고 있는 소스 코드를 유지보수할 때 어떻게 하면 좋을지에 대해서 같이 고민할 필요가 있다. 현재 기능만 정상적으로 동작하면 되겠지라는 안이한 생각은 프로젝트 막바지에 자신의 발등을 찍는 경우가 종종 있다. 이 같은 코드는 추후 유지보수 업무를 전담하는 개발자들에게 큰 업무 부담으로 작용한다. 유지보수 용이한 소스코드를 작성하는 것이 다른 개발자들을 위하는 것이 아니라 자기 자신을 위하는 것이라는 것을 생각하고 이 책을 반드시 읽어봤으면 하는 바램이다. 그리고 현재 자신이 개발하고 있는 소스 코드가 이 책이 지적하고 있는 형태로 개발되고 있다면 이 책이 제시하는 방법을 이용해서 리팩토링해보는 습관을 들이는 것이 어떨까..?

유지보수 업무가 항상 재미없는 것만은 아니다. 유지보수 업무를 하면서 다른 개발자들이 구현해 놓은 소스코드를 보고 리팩토링하는 것도 무엇보다 중요한 업무이며, 많은 재미를 부여한다. 다른 개발자가 구현한 코드를 리팩토링하면서 자기 자신 또한 많은 성장을 가져올 수 있으며, 자신이 신규 프로젝트를 진행할 때 여러가지 상황에 대하여 고려하는 능력까지 키우게 된다. 나는 7년이 지난 지금에서야 유지보수 업무의 중요성을 느끼고 있다. 많은 개발자들이 좀 더 빠른 시기에 유지보수 업무를 해보는 것도 개발자로서 성장하는데 큰 도움이 되리라 생각한다. 이 책은 개발자들이 유지보수 업무를 맡아 막막할 때 새로운 즐거움을 느끼게 해 줄 책이다. 바쁜 업무 때문에 정독하는데 6개월이 걸렸지만 지금부터 다시 한번 읽고 실행해 옮겨볼 생각이다.

Posted at 31 8월 @ 7:57 오전 by 박재성 | 2 comments

8월 2007
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

9월 03, 2007
8월 30, 2007

Site running on a free Atlassian Confluence Open Source Project License granted to JavaJiGi Project. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.3.1 Build:#643 1월 22, 2007) - Bug/feature request - Contact Administrators