innn

디버깅은 왜 중요할까 본문

코딩 테스트/코테 문제 풀이

디버깅은 왜 중요할까

33삼 2022. 9. 21. 16:48

코드의 논리 오류를 어떻게 잡을까?

- 가장 뛰어난 오류 탐색 방법, 디버깅

 

 

코드에서 논리 오류를 찾아내지 못해 코테를 통과하지 못하는 안타까운 경우가 많다고 한다.

(나의 경우에서도 자판기를 만드는 코테에서 논리적 오류가 있었다. 문제를 복기하면서 뒤늦게 알아차렸다..)

이러한 상황에서 논리 오류를 찾을 수 있는 최선의 방법은 '디버깅'이라고 한다. 이 디버깅에 대해 알아보자.

 

프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 과정을 디버깅debugging이라고 한다. 문법 오류는 컴파일러가 자동으로 찾아 주므로 테스트할 때 문제가 되지 않는다. 논리 오류는 코드가 사용자의 의도와 다르게 동작하는 것이며 다양한 형태로 발생한다. 

 

디버깅의 중요성

코테 응시자의 경우 이런 말이 많이 있다.

  • 학생 1 : '악 인덱스 범위 1개 차이로 이번 시험에 떨어졌다'
  • 학생 2 : '계속 답이 안나와서 몇시간을 붙잡고 있었는데, 알고보니 int를 long으로만 바꾸면 되는 것이었다'

두 학생이 디버깅을 제대로 했다면 ? 코테에 붙었을 것이다. 많은 사람들이 문법을 배우는 과정에서 디버깅을 가볍게 생각하고 넘어간다고 한다. 하지만 디버깅은 코테에 필요한 기술이고, 그냥 알아두기만 하면 되는 것이 아니라 문제를 풀면서 반드시 해야하는 과정이다. 반드시 디버깅을 익힌 후에 코테에 응시해야한다. 

 

디버깅하는 법

디버깅을 하는 방법은 코드에서 디버깅하고자 하는 줄에 중단점break point를 설정하고, IDE의 디버깅 기능을 실행해 진행하면 된다. 구체적인 방법은 아래와 같다.

 

디버깅 방법

  1. 코드에서 디버깅하고자 하는 줄에 중단점을 설정한다. 이때 중단점은 여러 개 설정할 수 있다.
  2. IDE의 디버깅 기능을 실행하면 코드를 1줄씩 실행하거나 다음 중단점까지 실행할 수 있으며, 이 과정에서 추적할 변숫값도 지정할 수 있다. 이 방법으로 변숫값이 자신이 의도한 대로 바뀌는지 파악한다.
  3. 변숫값 이외에도 원하는 수식을 입력해 논리 오류를 파악할 수 있다.

 

 

2번과 3번에서 말하는 변숫값 추적은 이클립스의 Expressions 기능을 활용하면 된다. 

Window 에서 Show View 누르고 Expressions 고고