프로그래밍하다 보면 가끔씩 코드가 내가 원하는 대로 안 돌아갈 때 있잖아? 그럴 때 문제를 찾는 과정을 디버깅이라고 해. 간단하게 말하자면, ‘코드가 왜 이렇게 행동하는지 조사하는 과정’인 거야. 맨 아래 참고 영상에서도 말하듯이, 코딩을 잘하려면 디버깅을 잘 하는 것이 정말 중요해. 디버깅을 잘 하기 위해서 삽질도 기꺼이 해보자구.
디버깅의 기본, '로그 확인하기'
디버깅의 가장 기본적인 방법은 로그를 확인하는 거야. 로그라는 건, 코드가 실행될 때 '여기까지 왔어요!', '이 변수 값은 이거예요!' 하고 기록을 남기는 거야. 너 블로그(blog)나 브이로그(vlog) 들어봤지? 그런 '기록한다'는 뜻의 '로그'야.
예를 들어 파이썬에서는 print() 함수를 써서 로그를 남길 수 있어. 이렇게:
print("프로그램이 여기까지 실행됨!")
print("현재 변수 값: ", my_variable)
예시로 설명할게
가령, 너가 친구 이름을 출력하는 프로그램을 만들었다고 해. 근데 이름이 안 나오는 거야. 코드를 이렇게 썼다고 하자:
name = "철수"
print(nam) # 오타!
이 코드를 실행하면 NameError: name 'nam' is not defined라는 에러가 나와. 이럴 땐 로그를 찍으면서 문제가 뭔지 파악할 수 있어.
1. 코드를 읽으면서 의심스러운 곳에 로그를 추가해:
name = "철수"
print("name 변수에 값이 들어갔나? -> ", name)
print(nam) # 여전히 오타!
2. 실행해 보면 위 로그는 문제없이 출력되지만, 아래에서 또 에러가 나지. 로그를 보면 "nam이 아니라 name이구나!" 하고 알수 있어.
+ 개발 환경에 따라 디버그 모드라는 걸 사용할 수도 있어. 이 모드는 프로그램을 한 줄 한 줄 실행하면서 변수 상태를 확인할 수 있게 도와줘. 예를 들어, 파이썬에서는 디버거 툴(예: PyCharm이나 VSCode)을 쓰면, 코드 중간중간 멈춰서 변수 상태를 실시간으로 볼 수 있어. 자바스크립트에서도 크롬 개발자 도구로 디버그 모드를 사용할 수 있고. 결론은, 디버깅의 기본은 ‘어디가 문제인지 찾기 위해 로그를 찍어보는 것’이야. 로그만 잘 활용해도 너가 겪는 99.9%의 문제는 해결될 거야!
[참고 영상] 디버깅 프로그래밍의 절반
'Computer Science' 카테고리의 다른 글
[Algorithm] O(logN) == O(log₂N) (0) | 2024.08.27 |
---|---|
[Network] 비동기(Async)는 기다리지 않는다 (4) | 2024.04.16 |