2024. 1. 7. 17:17ㆍ코딩 도구/백준
코드의 논리 오류를 어떻게 잡을까?
ㄴ 가장 뛰어난 오류 탐색 방법은 디버깅 이다.
디버깅이란?
디버깅은 모든 소프트웨어에서 소스 코드의 오류 또는 버그를 찾아서 수정하는 과정입니다.
디버깅의 유래
디버깅이라는 용어의 유래는 1940년대에 하버드 대학에서 근무했던 Grace Hopper 제독 시절로 거슬러 올라갑니다. 그녀의 동료 중 한 명이 대학의 컴퓨터 작동을 방해하는 나방을 발견하자, 그녀는 동료들에게 ‘시스템을 디버깅하고 있구나’라고 말했습니다. 컴퓨터 프로그래머들은 1950년대에 버그와 디버깅이라는 용어를 처음 사용한 것으로 기록되었고, 1960년대 초에 프로그래밍 커뮤니티에서 디버깅이라는 용어를 일반적으로 사용하게 되었습니다.
디버깅의 중요성 (출처 : (책)Do It! 알고리즘 코딩테스트(파이썬편)
코딩 테스에 떨어진 사람들 사례를 보면 '인덱스 범위 1개 차이로 떨어짐', '나중에 보니 예외 처리 하나 빠트림' 이런 사례들 모두 디버깅을 제대로 했다면 아마 코딩 테스트에 통과했을 것이다.
많은 사람들이 디버깅을 가볍게 생각하고 넘어가지만 디버깅은 코딩 테스트에 필요한 기술이고, 그냥 알아 두기만 하는 것이 아니라 문제를 풀면서 반드시 생각해야하는 과정이다.
디버깅 방법
1. 코드에서 디버깅하고자 하는 줄에 중단점을 설정한다. 이때 중단점은 여러 개 설정할 수 있다.
2. IDE의 디버깅 기능을 실행하면 코드를 1줄씩 실행하거나 다음 중단점까지 실행할 수 있으며, 이 과정에서 추적할 변숫값도 지정할 수 있다. (이 방법으로 변숫값이 자신이 의도한 대로 바뀌는지 파악함.)
3. 변숫값 이외에도 원하는 수식을 입력해 논리 오류를 파악할 수 있다.
*변숫값 추적은 PyCharm의 Variables 기능을 활용하면 된다.
디버깅 활용 사례 살펴보기.
오류 1. 변수 초기화 오류 찾아보기
변수 초기화 로직은 놓치기 쉽습니다. (코드가 복잡하면 더) 테스트를 통과하기 전 변수가 정상적으로 초기화 되고 있는지 디버깅 이용하기.
오류 2. 반복문에서 인데스 범위 지정 찾아보기
반복문 범위에서 0하나 빠트리기, 배열 인덱스 0부터 시작한다는 사실 간과하기, 반복문 N까지 인데 N-1까지 설정 등 꼼꼼하게 확인하기
오류 3. 잘못된 변수 사용 오류 찾아보기
t와 tastcase, n과 num 등 변수 혼동, 섞어서 사용하기.
오류 4. 파이썬 자동 형 변환 조심하기
/ 연산: 나눗셈을 한 결괏값을 float형으로 출력.
// 연산: 나눗셈을 한 결괏값을 int형으로 출력.
% 연산: 나눗셈을 한 후 나눈 나머지 값을 보여준다.
VScode 디버깅 (간단히)
F9 : break point
F5 : 디버깅 실행
ㄴ F10 : 인터프리터 한 줄 이동
ctrl + F5 : 그냥 실행. 디버깅 없이 실행
shift + F5 : 디버깅 모드 종료
'코딩 도구 > 백준' 카테고리의 다른 글
백준 11659 파이썬, 구간 합 알고리즘, sys.stdin.readline() (36) | 2024.01.30 |
---|---|
백준 1546 파이썬 (3) | 2024.01.28 |
백준 11720 파이썬 , 리스트 자료구조 (1) | 2024.01.26 |
백준 1377 파이썬 , 버블 소트 그리고 sys.stdin.readline() (2) | 2024.01.11 |
백준 2750 파이썬 (+시간 복잡도 활용) (0) | 2024.01.07 |