[미래포럼]개발자 칠거지악(七去之惡)

[미래포럼]개발자 칠거지악(七去之惡)

정부는 지난해 ‘소프트웨어(SW) 중심사회’를 만들겠다고 선언했다.

SW는 이제 창조경제의 혈액이고 SW산업의 관점을 넘어 사회, 경제, 국가를 이끄는 원동력이 된 것이다. 이런 소프트웨어 중심사회를 이끌어갈 핵심은 누가 뭐래도 우수한 SW인력이다. 또 그 SW인력을 길러내기 위해선 무엇보다 3D라고 일컬어지는 근로환경과 처우가 개선돼 SW개발이 즐겁고 보람된 직업이 돼야 한다.

얼마 전 인포월드에 실린 ‘개발자가 저지르기 쉬운 7가지 나쁜 습관’이라는 공감되는 기사를 개발자 스스로 음미해 보는 것도 의미 있는 일이라 생각한다.

인포월드에 따르면 SW개발자가 저지를 수 있는 첫째 나쁜 습관은 욕심에 의한 엔지니어링의 남용이다. 책에서 제시된 방식들이 항상 효과가 좋은 것은 아니어서 원래 사용했던 방법을 효과적으로 사용하는 것이 더 좋은 방법일 수 있다. 프로그래밍의 대가들은 ‘새로운 기법을 활용하는 것보다 더 중요한 것은 기능의 효과적 구현이다’고 말하고 있다.

개발자의 둘째 나쁜 습관은 계속 기능만 추가하고 개발했던 내용을 리팩토링(재정리)하지 않는 것이다. 이미 개발된 코드는 완전하지도 않으며 추가되는 기능이 점점 늘어 갈수록 복잡해지고 뒤엉켜 버리기 때문에 기존 코드의 품질과 유지보수성을 평가해 코드에 대한 신뢰성을 확보하는 것이 중요하다.

셋째 나쁜 습관은 개발자 사이의 경쟁이다. 팀 간에 프로젝트가 비공개적으로 진행되면 다른 팀이 이미 구현한 라이브러리를 중복적으로 개발하게 된다. 개발의 최우선 과제 중 하나는 각자가 어떤 작업을 하고 있는지 서로에게 알리는 것이고, 모든 팀들이 공통의 목표를 갖고 정보를 공유하는 것이다.

넷째는 ‘입력값의 유효성 검증(input validating)’에 실패하는 나태함이다. 개발하면서 사소한 실수는 빈번히 일어나지만 잘못된 입력값을 받아들이는 개발 실수는 매우 치명적이어서 신중해야 한다.

다섯째 나쁜 습관은 소스코드에 코멘트를 달지 않는 것이다. 일단 개발된 소스코드는 보관되었다가 나중에 유지보수를 위해 다른 사람이 작업을 하게 되는 것이 보통이다. 이때 코멘트가 없다면 해당 코드가 무엇을 의미하는지 이해하기 어렵고 시간도 오래 걸린다. 따라서 최소한 힌트는 남겨둬야 한다.

여섯째는 버전관리를 하지 않는 것이다. 요즘엔 강력하고도 효과적인 버전관리 도구를 무료로 손쉽게 구할 수 있다. 심지어 분산프로젝트를 관리할 정도의 도구도 최소 비용으로 구할 수 있다. 따라서 다른 문제가 없다면 가장 기본이 되는 버전관리시스템은 반드시 만들어둬야 한다.

마지막 일곱째 나쁜 습관은 단위 테스트를 하지 않는 것이다. 개발된 프로그램이 좋은 평가를 받는 것은 개발자로서는 영광스러운 일이다. 하지만 결함을 가진 코드가 출시된다면 그 뒤처리를 감당하기 어렵게 된다. 코드를 출시하기 전에 단위 테스트를 철저히 할수록 나중에 감당해야 하는 피해를 최소화할 수 있다.

이 일곱 가지 습관은 SW개발자라면 누구나 알고 있고, 복잡한 것도 아니지만 잘 지켜지지 않는다. 그래서 아리스토텔레스는 일찍이 ‘탁월함은 행위에서 나오는 것이 아니라 습관에서 나온다’고 했던가. 좋은 습관을 익히고 실행하는 것만이 훌륭한 개발자로 남는 길이 아닐는지.

이상은 정보통신산업진흥원 SW공학센터장 selee@nipa.kr