PyCharm을 사용한 Python 코드 디버그

비주얼 디버그

이 콘셉트은 어렵고 pdb는 까다롭기 때문에 여전히 print 문을 사용해 디버그하는 코더들이 있습니다. PyCharm의 python 디버그 GUI는 프로세스에 시각적인 면을 가미함으로써 디버거를 쉽게 사용할 수 있게 합니다. 간단하고 쉽게 시작할 수 있으며 주요 디버그 기능으로의 이동도 간단합니다.

어디에서든 디버그 가능

PyCharm은 Python, virtualenv, Anaconda 또는 Conda env와는 관계없이 로컬 컴퓨터에서 실행되는 코드를 디버그할 수 있습니다. PyCharm Professional Edition의 경우 Docker 컨테이너, VM 내에서 또는 SSH를 통해 원격 호스트에서 실행되는 코드도 디버그할 수 있습니다.

템플릿 내부 디버그 pro 전용

템플릿을 사용해 작업할 때 버그가 잠입하는 경우가 있습니다. 내부에서 어떤 일이 벌어지고 있는지 알 수 없다면 이 문제를 해결하는 것은 매우 어렵습니다. PyCharm의 디버거를 사용하면 Django 및 Jinja2 템플릿에 중단점을 설정하여 이 문제를 쉽게 해결할 수 있습니다.

참고: 템플릿을 디버그하려면 먼저 템플릿 언어를 구성하십시오.

JavaScript pro 전용

모든 최신 웹 프로젝트에는 JavaScript가 포함되어 있습니다. 따라서, JavaScript를 디버그할 수 있는 최신 Python IDE도 필요합니다. PyCharm Professional Edition은 WebStorm의 탁월한 JavaScript 디버거를 갖추고 있습니다. 이 JavaScript 디버거는 브라우저 내의 JS 및 NodeJS를 모두 지원합니다.

TDD 중 디버그

테스트 주도 개발(TDD)에서는 테스트를 작성하는 동안 탐색이 수행됩니다. 이 디버거를 사용하여 조사 중인 컨텍스트에 중단점을 설정하면 탐색에 도움이 됩니다.

TDD 중 디버그

이 조사는 테스트 코드 안이나 테스트되는 코드 안에서 수행할 수 있어서, Django 통합 테스트 시 큰 도움이 됩니다(Django는 PyCharm Professional Edition에서만 지원됩니다). 중단점을 사용해서 테스트 케이스 안의 쿼리에서 발생된 결과를 확인할 수 있습니다.

코드 수정 불필요

PDB는 훌륭한 도구이지만, 코드를 수정할 필요가 있습니다. 이로 인하여 실수로 사용자의 git 저장소에 'pdb.set_trace()' 호출이 체크인될 수 있습니다.

코드가 수행하는 작업 확인

중단점

모든 디버거는 중단점을 제공하지만, 범용성이 매우 뛰어난 중단점을 제공하는 디버거는 소수에 불과합니다. 버그가 발생한 루프 반복에 도달할 때까지 'continue'를 여러 번 클릭해야 했던 적이 있으세요? PyCharm의 조건부 중단점을 사용하면 그럴 필요가 없습니다.

때로는 코드가 실행되는 동안 특정 변수의 값이 어떻게 변하는지 확인하고 싶을 때가 있습니다. 이 경우 코드를 중지시키지 않고 메시지만 기록하도록 PyCharm의 중단점을 구성할 수 있습니다.

이례적인 일로 하루를 망칠 수도 있습니다. 따라서, PyCharm의 디버거는 어디에서 발생하고 있는지 확실하지 않은 경우에도 이를 중단할 수 있습니다.

사용자가 디버그 환경을 제어할 수 있도록 PyCharm은 모든 중단점을 볼 수 있는 개요 창을 제공하며, 여기서 체크박스를 사용해 일부를 비활성화할 수 있습니다. 또한, 필요할 때까지 모든 중단점을 일시적으로 해제할 수도 있습니다.

한 눈에 변수 값 파악

PyCharm이 중단점에 도달하면 모든 변수 값을 코드 안에서 인라인으로 확인할 수 있습니다. 마지막으로 중단점에 도달한 때 이후 어떤 값들이 변했는지 쉽게 파악할 수 있도록 변경된 값은 강조 표시됩니다.

Watches

watches를 추가하여 변수 뷰를 커스터마이징하세요. 단순한 것이든 복잡한 것이든 상관 없이 보고 싶은 것을 정확하게 볼 수 있습니다.

코드 제어

시각적인 단계별 코드 실행

코드의 위치를 알기 위해 모든 곳에 중단점을 설정할 필요가 없습니다. 단계별로 코드를 실행하고 발생한 내용을 정확히 추적할 수 있습니다.

사용자 지정 코드 실행

경우에 따라서 어떤 상황을 재현하는 가장 쉬운 방법은 변수를 특정 값으로 지정하는 것입니다. PyCharm은 값을 빠르게 변경할 수 있는 '평가식(evaluate expression)'과 더 많은 제어가 필요할 때 유용한 콘솔을 모두 제공합니다. 이 콘솔은 심지어 설치된 경우 ipython 셸도 사용할 수 있습니다.

속도

PDB보다 빠름

Python 3.6 디버그의 경우 PyCharm의 디버거는 시장에서 가장 빠른 디버거입니다. PDB보다 훨씬 더 빠릅니다. 즉, 사용자는 개발하는 동안 언제나 디버거 상태에서 코드를 실행할 수 있으며, 필요할 경우 간편하게 중단점을 추가할 수 있습니다. PyCharm이 Cython 스피드업의 설치 여부를 물을 때 '설치'만 클릭하시면 됩니다.