저작권 안내: 저작권자표시 Yes 상업적이용 No 컨텐츠변경 No

스프링5 입문

JSP 2.3

JPA 입문

DDD Start

인프런 객체 지향 입문 강의

'디버깅'에 해당되는 글 1건

  1. 2006.04.24 디버깅 능력

개발의 사이클을 간단하게 생각해보면, (머리속에서 생각을 하든, 종이에 그리든, 툴을 사용하든) 설계를 하고, 설계에 따라서 코드를 작성하고, 그리고 테스트를 해 봅니다. 테스트에 성공하면 그 코드는 넘어가고 다음 코드를 만들게 됩니다. 만약 테스트에 성공하지 못하면 어디가 문제인지 찾아내서 문제점을 보완하고 다시 테스트를 수행합니다. 이 과정은 테스트가 통과될 때 까지 반복됩니다.

이런 과정은 개발자에게 꽤 많은 스트레스를 제공합니다. 특히 문제가 어느 부분에서 발생하는 지 알 수 없는 경우에는 더더욱 그렇습니다. 심지어 동일한 코드인데 상황에 따라서 문제가 발생하는 경우도 있는데, 이런 경우는 개발자를 미치기 일보 직전까지 몰고 가기도 합니다.

처음부터 완벽한 코드를 작성하면 좋겠지만, 그게 뜻대로 되진 않을 겁니다. 가급적 오류 없는 코드를 만들기 위해 노력해야 하지만, 어쨋든 버그를 찾는 과정은 반드시 존재하기 마련입니다. 여기서부터 개발 속도가 차이나기 시작합니다. 어떤 개발자는 정말이지 빠른 시간에 버그를 찾아서 수정합니다. 하지만, 어떤 개발자는 똑같은 버그를 반나절을 다 보내고도 찾아내지 못하고 여전히 코드를 해맵니다.

이것이 바로 디버깅 능력의 차이입니다. 디버깅 능력이 뛰어난 개발자는 결국 개발을 빠르게 완료하게 됩니다.

이런 이유로 출현하게 된 것이 TDD(Test Driven Development)가 아닐까 하고 생각합니다. 즉, 테스트 코드를 미리 작성해서 올바르게 돌아가는 코드를 만들도록 강요하는 개발 방식인거죠. 이는 확실하게 스트레스를 줄여주는 효과를 갖고 있습니다. 그래서 처음 개발을 시작할 때에는 TDD를 사용하는 것이 디버깅 시간을 획기적으로 줄여주게 됩니다.

하지만, 굳이 TDD 기법을 사용하지 않더라도 디버깅 능력은 키우는 것이 좋습니다. 언제 어디서나 TDD를 사용할 수 있는 것은 아닐테니까요. 그리고 디버깅 능력을 키운다는 것은 곧 남들보다 빠르게 개발할 수 있다는 것을 뜻하기도 합니다. 그러니, 디버깅 능력을 키우세요. 코드를 만들어내는 능력만큼이나 중요한 능력이 바로 디버깅 능력이니까요!


Posted by 최범균 madvirus
TAG

댓글을 달아 주세요