12. 디버깅

C급 개발자와 함께하는 파이썬

12. 디버깅

디버깅이란 위키백과를 통해 알아본 바로는 다음과 같이 정의하고 있습니다.


“디버그(영어: debug), 디버깅 (debugging) 혹은 수정은 컴퓨터 프로그램의 정확성이나 논리적인 오류(버그)를 찾아내는 테스트 과정을 뜻한다. 디버깅(debugging), 수정이라고도 한다. 일반적으로 디버깅을 하는 방법으로 테스트 상의 체크, 기계를 사용하는 테스트, 실제 데이터를 사용해 테스트하는 법이 있다.”


위키백과에서 정의 하듯이 디버깅이랑 프로그램이 오류없이 잘 돌아가도록 논리적인 오류나 버그를 찾아내는것을 뜻합니다.


대부분의 프로그래밍을 하기 위해서는 디버깅 방법을 알고 있어야 합니다. 그래야 라인별로 문제가 있는 부분을 찾아내서 고쳐나갈 것입니다.


디버깅은 PyCharm 프로그램을 통해서 알아볼 것입니다. 파이썬을 개발시에 가장 많이 사용하는 IDE입니다. 이제까지 배운 부분을 PyCharm으로 해보셔도 좋습니다.


다운로드할 주소는 : https://www.jetbrains.com/pycharm/?fromMenu



위의 주소로 들어가서 파이참을 다운로드 받았습니다.


받은 파일을 실행하면 설치화면이 출력됩니다.


PyCharm을 설치할 폴더를 선택합니다. 기본으로 설치하면 위의 폴더에 설치합니다.

옵션을 모두 선택합니다.


바로가기 메뉴를 선택합니다.


인스톨 버튼을 클릭하면 인스톨화면으로 들어가서 인스톨이 되고 있습니다.


show detail버튼을 클릭하면 파일들의 진행현황이 나옵니다. 그런데 hide detail은 없네요.



설치가 모두 끝났습니다. 설치후 프로그램을 실행하도록 하고 Finish버튼을 클릭한다.



개인정보 정책에 대해서 Accept버튼을 클릭합니다.


라이센스를 고르라고 하는데. 프리버전으로 선택합니다. 이메일도 선택이기 때문에 입력하지 않아도 됩니다.


Accpt 버튼을 클릭합니다.



PyCharm 이 로드되는 화면입니다.


PyCharm 환경설정입니다. Keymap scheme은 제가 이클립스를 주로 사용했었으므로 Elipse를 선택하였습니다. 다른거 선택하셔도 됩니다.



새로운 프로젝트를 만들거나 기존 프로젝트를 오픈합니다.




Pure Python프로젝트를 선택하고 Location을 선택합니다.

interpreter : 파이썬이 여러버전으로 설치되어있다면 사용하는 인터프리터를 선택하시면 됩니다.



모두 끝나면 환영 메시지가 출력됩니다.



파이썬 프로그래밍을 만들기 위해 파일을 만들어 보도록 하겠습니다. 위와 같이 PyCharm에서 마우스 오른쪽 버튼을 클릭하면 New > Python File을 선택합니다.





저는 테스트를 위해서 debugging.py라는 파이썬 파일을 만들어서 위와 같이 코딩하였습니다. 디버깅을 하기 위해서는 break point를 표시해두고 해당 표시 부분에서 값을 확인하는 작업을 합니다. 이러한 break point를 표시하는 방법은 총 3가지의 방법이 있습니다.


첫번째로 위와 같이 Run > Toggle Line Breakpoint 를 클릭하면 현재 선택된 행에 Breakpoint가 설정되게 됩니다.

두번재로 소스보기 부분에 보면 회색으로 라이넘버가 나오는 부분이 있습니다. 이 부분을 마우스로 클릭하면 Breakpoint가 설정되게 됩니다.

세번째로는 위에 나와 있는 바와같이 Ctrl+Shift+B를 클릭하면 Breakpoint가 설정됩니다.

설정된 모습은 아래와 같습니다.

이러한 Breakpoint는 행마다 설정할수 있습니다. 원하는 행에 설정할수 있으며 아래와 같이 여러행인경우 해당 행마다 값을 찍어보거나 할수 있습니다.


이러한 디버깅은 한줄한줄 정확한 값으로 나타나는지 확인함으로써 프로그램의 품질을 높여주고 이후 에러가 일어나는것을 방지합니다.








12.99 요약

이상과 같이 파이썬에서 디버깅을 하는 방법에 대해서 알아보았습니다. 지금은 작은 프로그램으로 눈으로 파악해도 정답이 있을정도로 작은 프로그램이지만 프로그램이 커지고 논리적으로 복잡한 알고리즘이 들어가게 되면 라인라인 제대로 프로그램이 수행되는지 확인이 필요합니다.


이 장의 내용을 충분히 숙지하여 이후 작업에서 문제가 없도록 하시기 바랍니다.


댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.