티스토리 뷰
1. 브레이크 포인트란?
- 디버깅할 때 코드의 특정 지점에서 프로그램 실행을 멈추게 하는 표시
1) 브레이크 포인트가 왜 필요할까?
- 문제의 원인을 정확히 찾기 위해
- 변수 값이 예상한 대로 변하는지 상태 확인
- 코드가 의도한 순서대로 실행되는지 코드 흐름 이해
2) 브레이크 포인트를 잘 잡는 법
- 에러 발생 직전 위치에 설정
- 중요한 조건문 앞에 설정
- 함수의 시작 부분에 설정 : 함수의 인자 값이나 초기상태를 확인하고 싶을 때
- 변수 값이 바뀌는 부분에 설정
- 에러 메시지와 관련있는 부분에 설정
3) 팁
- 처음부터 너무 많은 브레이크 포인트를 걸지 말고, 문제와 관련된 부분에만 선택적으로 설정
- 브레이크 포인트를 걸고 하나씩 확인하면서 점점 좁혀나가기
4) vscode에서 브레이크포인트 설정하는 법
- 코드 라인 번호 옆 왼쪽 클릭: 빨간색 점이 생기는데, 한번 더 클릭하면 삭제된다.
- 또는 커서를 해당 줄에 놓고 F9를 누르면 브레이크 포인트가 설정된다
* 관련 단축키
단축키 | 설명 |
F5 | 다음 브레이크포인트까지 실행 계속 |
F10 | 현재 줄을 실행하고 다음 줄로 이동(함수 내부로 들어가지 않음) |
F11 | 현재 실행 중인 함수 내부로 진입 |
Shift+F11 | 현재 함수 실행을 끝내고 호출한 위치로 돌아감 |
Ctrl+Shift+F5 | 디버깅을 재시작 |
Shift+F5 | 디버깅 중지 |
5) 예시: 조건문이 예상대로 작동하지 않을 때
- price가 100보다 큰데도 else로 가는거 같을 때 (할인 값이 이상할때), 멈춘 상태에서 price 변수 값이 제대로 전달되고 있는지 확인
def accumulate_sum(numbers):
total = 0
for num in numbers:
total = num # 실수: +=가 아닌 =를 사용
return total
numbers = [1, 2, 3, 4, 5]
sum_result = accumulate_sum(numbers)
print(sum_result)
- F5 눌러서 디버깅 모드 실행 > python 선택 > 브레이크포인트 지정 > F10 사용
2. logging
- 프로그램 실행 중 발생하는 이벤트, 변수 상태, 에러 메시지 등을 기록
- 프로덕션 환경에서 문제 발생 원인을 추적할 때 사용
1) 왜 쓸까?
- 파일로 저장 가능해서 나중에 분석할 수 있고, 문제 발생시 언제, 어디서, 어떤 문제가 발생했는지 정확히 추적 가능하다.
- 로직과 무관하게 상태만 기록해 가독성을 해치지 않는다.
- 로그 레벨을 설정해서 출력 여부를 제어할 수 있다. (print는 항상 콘솔에 출력되지만, logging은 level=longging.DEBUG일때만 DEBUG가 출려된다.
로그레벨 | 설명 |
DEBUG | 상세한 디버깅 정보 (개발 중에만 사용) |
INFO | 일반적인 정보 |
WARNING | 경고, 하지만 프로그램은 계속 실행됨 |
ERROR | 에러 발생, 프로그램 기능에 문제 발생 |
CRITICAL | 심각한 문제, 프로그램이 종료될 수 있음 |
'AI > AI 서비스 개발' 카테고리의 다른 글
[AI 서비스 개발] DB 엔진, DB 세션, Redis 클라이언트 (0) | 2025.02.26 |
---|---|
[AI 서비스 개발] Docker 멀티스테이지 빌드 (0) | 2025.02.23 |
[AI 서비스 개발] FastAPI 쿼리 파라미터 (0) | 2025.02.20 |
[AI 서비스 개발] Redis 기초 문법(with python) (0) | 2025.02.18 |
[AI 서비스 개발] Redis 다중 키워드 검색(Set & Tag) (1) | 2025.02.17 |
- Total
- Today
- Yesterday
- 다이어트
- Python
- 스크랩
- 영어회화
- 고득점 Kit
- SQL
- 아침
- 기초
- 티스토리챌린지
- llm
- 아침운동
- 프로그래머스
- 오픽
- 빅데이터 분석기사
- ChatGPT
- 30분
- 실기
- 루틴
- 줄넘기
- 습관
- C언어
- 오블완
- 경제
- 뉴스
- IH
- Ai
- 운동
- 갓생
- opic
- 미라클모닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |