관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

도전! 디버깅 입문 1 - 디버깅이 필요한 이유 학습 시작 본문

웹 · 앱 개발/디버깅

도전! 디버깅 입문 1 - 디버깅이 필요한 이유 학습 시작

huenuri 2024. 7. 30. 10:33

이제부터 디버깅 공부도 시작해보기로 했다. 어젯밤에 이 수업을 한번 듣기만 했는데 기록을 하면서 학습을 진행해볼 것이다. 오늘은 금요일이라 놀고 싶은 마음도 많지만 월요일까지 엘리스에서 32학점을 수강하려면 정말 바쁘다. 두 과목은 수료했으니 네 과목 정도 남아있다. 수업의 80%만 완료하면 수료할 수 있지만, 난 가능하면 100% 학습을 목표로 하고 있다.

 

중간에 한번 끊기면 다시 재학습을 하기까지 시간이 오래 걸리고 뭐든 한번에 쭉 이어서 해야 실력도 크게 느는 걸 느꼈다. 파이썬 기초를 학습하는데 3일이 걸렸고, 자바 1은 5일쯤 걸린 것 같다. 디버깅은 이틀만에 다 마치려고 한다. 가능하면 오늘 80%쯤 완료하고 내일 나머지 학습을 진행해볼 예정이다.

그럼 이제 디버깅 수업은 어떻게 진행되는지 살펴보기로 하자!


 

 

 

수업 미리보기

 

 

 

 

보통은 좋은 코드를 어떻게 짤 수 있을지 공부한다. 하지만 디버깅은 어떻게 하면 못한 나에서 변할 수 있을지, 불완전한 코드를 고칠 수 성장하는 과정을 다루게 된다.

 

 

 

 

 

 

 

 

 

 

 

언더바가 있어야 하는데 그 부분이 빠진 아주 간단한 디버깅 실수이다.

 

 

코딩을 할 때 가장 중요한 것은 멘탈 관리, 당황하지 않는 것이다. “난 왜 코딩을 못하는 걸까?” 하는 생각을 하지 않고, “실수할 수도 있지. 어떻게 버그를 고쳐볼까? 라고 생각하는 것이 좋다.

그리고 이 버그를 어떻게 해결할 수 있을지 공부하는 것이다. 그전에 처음부터 버그가 적은 코드를 어떻게 짤 수 있을지 고민해보는 것이 더 중요하다.

 

 

다른 사람에게 도움을 요청하기 전에 스스로 문제가 무엇인지 찾고 발견하는 것을 배우는 게 이 수업의 목표이다.

 

 

테스트 코드를 작성하면 안전한 프로그램을 짤 수 있고, 코드를 수정하더라도 원래의 동작을 잃어버리지 않게 된다.


 

 

맛보기 실습

 

원래 코드는 이렇게 되는데 이걸 고쳐야 한다. 어떻게 하면 구구단이 나올 수 있게 출력할 수 있을까?

아까 문제를 다 풀고 벨로그에 올렸었는데, 이번에도 같은 실수를 반복했다. 조금 전에 썼던 글이 2번이나 사라져서 다시 써야 할지 고민이 되었다. 그래도 간단하게라도 써보기로 했다.
벨로그를 쓸 때는 이런 것들에 주의해야 하는데, 가끔씩 잊어버리곤 한다.

 


 

여러 번 시도 끝에

 

 

 

이렇게 해서 다 풀었다. 한 문제를 푸는데 거의 한 시간 가까이 걸린 것 같다. 그래도 이 문제를 풀어야 파이썬의 기초를 이해하고 다음 단원으로 진행할 수 있을 것 같았다.

언뜻 보기에는 코드가 잘 실행이 된듯 보이지만 제출을 하면 0점 처리가 되었다. 이 문제가 무엇일까 살펴보며 다음날 새벽에 다시 풀어보는 중이다. 이제 보니 공백이 하나씩 추가되고 있었다.
헬퍼는 다음과 같은 오류가 있다고 도움을 주었다.

 

 

 

 

product를 빼주어도 될 것 같아 print에서 바로 곱해주었다. 하지만 그래도 오류가 나와서 다음의 문제들을 해결해보았다.

 

 

 

맞는 코드

 

여전히 원하는 답과는 다르지만 그래도 많은 것들을 배울 수 있었다. print에서는 +연산자가 사용된다는 것, 바로 변수를 쓰는 것보다는 str에 담아준다는 것도.


 

 

 

학습을 마치고

이제 주말 내일까지 디버깅 학습을 마쳐볼 예정이다. 오늘로써 인공지능 사관학교에 입교한지 8일이 되었다. 근데 한 몇 주 지난 것처럼 느껴졌다. 주말 동안에도 열심히 공부해볼 것이다. 그리고 수요일까지 완료하기로 했던 목표를 다 달성해서 내일은 주말 계획도 한번 세워봐야겠다.

다음날 디버깅 학습을 하다가 이 문제를 다시 한번 더 풀어보았다.