- Published on
IDE별 디버깅 완전정리: VS Code · IntelliJ IDEA · PyCharm 브레이크포인트, 실행 구성, 프로파일링
- Authors
- Name
IDE 디버깅은 “설정”이 절반이다
좋은 IDE를 쓰는데도 디버깅이 느린 이유는 대부분 같다.
- 실행 구성이 매번 달라 재현이 흔들림
- 브레이크포인트를 무작정 많이 찍음
- 프로파일링을 장애 후반에야 시작함
아래 설정을 팀 표준으로 맞추면 디버깅 속도가 눈에 띄게 빨라진다.
1) VS Code
실행 구성 (launch.json)
{
"version": "0.2.0",
"configurations": [
{
"name": "Python API",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/app/main.py",
"console": "integratedTerminal",
"envFile": "${workspaceFolder}/.env"
},
{
"name": "Node API",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/dist/index.js",
"runtimeArgs": ["--inspect-brk"],
"sourceMaps": true
}
]
}
브레이크포인트 팁
- 조건부 브레이크포인트: 특정 userId/requestId에서만 중단
- Logpoint: 중단 없이 값만 출력
- Exception breakpoint: 예외 발생 시 즉시 멈춤
프로파일링
- JS/TS: DevTools Performance/Memory
- Python: 터미널에서 py-spy 연동
- 확장 기능: Error Lens, Python, Java, Go 확장 조합 권장
2) IntelliJ IDEA
Run/Debug Configuration
필수 표준화 항목:
- JVM 옵션(Heap, GC, Debug port)
- 환경변수 파일
- 활성 프로파일(dev/stg)
- working directory
원격 디버그는 “Attach to process”보다 고정 포트 설정을 권장.
브레이크포인트 고급 기능
- Condition (
orderId == 1234) - Evaluate expression
- Method breakpoint(비용 큼, 꼭 필요할 때만)
- Exception breakpoint (NPE, IllegalStateException)
프로파일링
- IntelliJ built-in Profiler (Ultimate)
- JFR 파일 열어 hotspot 확인
- flamegraph에서 상위 10개 함수부터 처리
3) PyCharm
실행 구성
- Script path / Module name 고정
- Parameters를 샘플 입력으로 저장
- env file 연결
- pytest configuration 분리(unit/integration)
브레이크포인트
- conditional + hit count 조합
- Django/FastAPI 엔드포인트 진입점에 우선 배치
- 멀티스레드 디버깅 시 thread 전환 확인
프로파일링
- PyCharm Profiler(또는 cProfile 통합)
- Line Profiler로 느린 함수 라인 단위 분석
- 대용량 데이터는 object viewer보다 요약값으로 점검
IDE 공통 베스트 프랙티스
1) 디버그 프로필을 코드처럼 관리
.vscode/launch.json,.run/,.idea일부 템플릿을 저장소에 포함- 팀원 온보딩 시 “실행 버튼 한 번”으로 재현 가능하게
2) 브레이크포인트 계층화
- Level 1: 진입/경계
- Level 2: 분기 조건
- Level 3: 내부 루프(조건부만)
3) 프로파일링을 조기 시작
- “느리다” 체감하면 바로 60초 샘플링
- 감으로 최적화하지 말고 증거 기반으로 처리
4) 재현 스크립트 자동화
- Makefile/npm script/pytest marker로 고정
- 실행 인자 누락으로 인한 “내 로컬만 됨” 방지
장애 대응용 빠른 체크리스트
- 같은 입력으로 재현되는가?
- Exception breakpoint 켰는가?
- request id로 전체 경로 추적되는가?
- CPU/메모리 프로파일 캡처했는가?
- 원인과 재발방지 테스트를 남겼는가?
결론
IDE는 편집기가 아니라 문제 탐지 장비다. 실행 구성/브레이크포인트/프로파일링을 표준화하면, 개인 역량이 아니라 팀 시스템으로 디버깅 속도를 끌어올릴 수 있다.
빠른 디버깅은 천재성이 아니라, 잘 설계된 IDE 습관에서 나온다.