[인생 프로그래밍] 디버깅 (Debugging)

Rex·2023년 1월 11일
0

인생 프로그래밍

목록 보기
16/33

디버깅 (Debugging)

지금까지 코드를 작성하면서 엄청난 집중을 했거나 운이 좋았다면 아직 에러를 만나지 못했을 수도 있고, 조금의 실수가 있었다면 몇 차례의 에러를 마주쳤을 것이다. 이번에는 에러가 발생했을 때 문제를 찾아가는 가장 기초적인 방법을 알려줄 것이다. 이 과정을 디버깅(Debugging) 이라고 한다.


디버깅 (Debugging) 이란?

우리들이 흔히 인터넷을 하거나 게임을 할 때, "이거 버그가 심각하네", "버그가 발생했다!" 등의 이야기를 하는 걸 들어본 적이 있을 것이다. 보통 어떤 프로그램에서 전혀 예상치 못했던 문제가 발생하면 '버그가 있다' 라고 말하곤 한다. 그 버그를 잡는 행위를 '디버깅(debugging)' 이라고 한다.
'bug' 는 벌레라는 뜻을 가진 단어고, 앞에 'de' 라는 부정 접두사를 붙여서, debug 는 'bug 를 제거하다' 는 의미를 가지고 있다.
거기에 'debugging' 은 동명사 -ing 가 붙어서 'bug 를 제거하는 것' 이 되고, 이는 곧 "프로그램(소스코드)의 결함을 고치는 행위" 를 의미하는 단어가 된다.

그럼 어떻게 디버깅을 하는지 알아보겠다.


기초적인 디버깅 방법

디버깅의 가장 기초는 로그(log) 를 확인해 보는 것이다. 로그(log) 란, 기록을 남긴다는 의미이다. 우리들이 '블로그(blog)', '브이로그(v-log)' 라고 말할 때 사용하는 그 로그와 같은 로그이다. 그래서 궁금한 곳에 로그를 남기는 코드를 작성함으로써, 현재 프로그램의 상황이 어떠한지 확인할 수 있다.

파이썬에서는 print() 함수를 사용해서 궁금한 값이나 변수를 확인해 볼 수 있다. 우리는 직전에 "Hello World!" 라는 로그를 출력했던 것이다. 이 방식으로 우리는 프로그램이 내가 의도한 대로 실행되고 있구나, 또는 문제가 있구나 라는 사실을 확인할 수 있다.

각 언어마다 로그를 확인하는 방법이 다른데, 파이썬에서는 print(변수) 의 방식으로 사용하고, 자바스크립트에서는 console.log(변수), 자바에서는 System.out.println(변수) 의 방식으로 디버깅이 가능하다.

변수에 대한 설명은 곧 나올 것이다. 여기서 기억해야 할 것은 프로그래밍을 하면서 수시로 이런 로그를 찍어봐야 한다는 것이다. 궁금한 모든 변수 또는 코드를 확인하기 위해서는 로그를 찍어보면 된다. 그러면 왜 에러가 났는지, 어느 코드까지는 정상적으로 실행되었는지를 파악하는데도 큰 도움이 된다. 디버깅에는 여러 가지 방법이 있지만, 사실상 이 방법 하나만으로도 프로그래밍 중 발생하는 99.9% 의 버그를 파악할 수 있다.


정리하기

  1. 디버깅(debugging)
    • 프로그램(소스코드)의 결함을 고치는 행위
  2. 로그(log)
    • 프로그래밍을 하면서 수시로 로그를 찍어봐야 한다.

생각 해보기

프로그래밍을 포함한 세상의 모든 일에는 '문제 해결 능력'이 매우 중요하다. 그런데 문제를 올바르게 해결하기 위해서는 문제의 '원인을 파악하는 능력' 이 먼저 있어야 한다.
최근에 개인적으로 겪고 있는 문제가 있다면 그 문제의 원인을 곰곰이 생각해 보자. 그리고 어떻게 하면 해결할 수 있을지 생각해 보자.

최고의 디버깅 방법은 로그를 출력해 보는 것이다. - Developer Rex


궁금증 / 질문 / 개선점이 있다면 꼭 댓글을 달아주세요. 제가 최선을 다해 도와드리겠습니다. 여러분들의 최고의 학습 친구가 되어드리겠습니다.

#인생프로그래밍 #개발자렉스 #프로그래밍 #프로그래머 #개발자 #개발입문 #프로그래밍입문서적 #코딩교육 #코딩무료교육 #파이썬 #자바스크립트 #자바 #파이썬기초 #파이썬독학 #파이썬책 #혼자공부하는파이썬 #혼공파 #자바스크립트책 #앱개발 #어플개발 #ProgrammingOfLife #programming #programmer #coding #software #developer #python #javascript #java

profile
🔥 from Abstraction to Realization

0개의 댓글