일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pandas
- 파이썬라이브러리
- 컴퓨터구조
- 중학수학
- C++
- 정수와유리수
- 데이터베이스
- numpy/pandas
- 머신러닝
- html/css
- 자바
- CSS
- 혼공머신
- 정보처리기사필기
- 운영체제
- 정보처리기사실기
- 파이썬
- 자바 실습
- SQL
- 코딩테스트
- 중학1-1
- 데이터입출력구현
- CNN
- 데이터분석
- 딥러닝
- 연습문제
- JSP/Servlet
- 컴퓨터비전
- 텍스트마이닝
- 영어공부
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
도전! 디버깅 입문 1 - 디버깅이 필요한 이유 학습 시작 본문
이제부터 디버깅 공부도 시작해보기로 했다. 어젯밤에 이 수업을 한번 듣기만 했는데 기록을 하면서 학습을 진행해볼 것이다. 오늘은 금요일이라 놀고 싶은 마음도 많지만 월요일까지 엘리스에서 32학점을 수강하려면 정말 바쁘다. 두 과목은 수료했으니 네 과목 정도 남아있다. 수업의 80%만 완료하면 수료할 수 있지만, 난 가능하면 100% 학습을 목표로 하고 있다.
중간에 한번 끊기면 다시 재학습을 하기까지 시간이 오래 걸리고 뭐든 한번에 쭉 이어서 해야 실력도 크게 느는 걸 느꼈다. 파이썬 기초를 학습하는데 3일이 걸렸고, 자바 1은 5일쯤 걸린 것 같다. 디버깅은 이틀만에 다 마치려고 한다. 가능하면 오늘 80%쯤 완료하고 내일 나머지 학습을 진행해볼 예정이다.
그럼 이제 디버깅 수업은 어떻게 진행되는지 살펴보기로 하자!
수업 미리보기
보통은 좋은 코드를 어떻게 짤 수 있을지 공부한다. 하지만 디버깅은 어떻게 하면 못한 나에서 변할 수 있을지, 불완전한 코드를 고칠 수 성장하는 과정을 다루게 된다.
언더바가 있어야 하는데 그 부분이 빠진 아주 간단한 디버깅 실수이다.
코딩을 할 때 가장 중요한 것은 멘탈 관리, 당황하지 않는 것이다. “난 왜 코딩을 못하는 걸까?” 하는 생각을 하지 않고, “실수할 수도 있지. 어떻게 버그를 고쳐볼까? 라고 생각하는 것이 좋다.
그리고 이 버그를 어떻게 해결할 수 있을지 공부하는 것이다. 그전에 처음부터 버그가 적은 코드를 어떻게 짤 수 있을지 고민해보는 것이 더 중요하다.
다른 사람에게 도움을 요청하기 전에 스스로 문제가 무엇인지 찾고 발견하는 것을 배우는 게 이 수업의 목표이다.
테스트 코드를 작성하면 안전한 프로그램을 짤 수 있고, 코드를 수정하더라도 원래의 동작을 잃어버리지 않게 된다.
맛보기 실습
원래 코드는 이렇게 되는데 이걸 고쳐야 한다. 어떻게 하면 구구단이 나올 수 있게 출력할 수 있을까?
아까 문제를 다 풀고 벨로그에 올렸었는데, 이번에도 같은 실수를 반복했다. 조금 전에 썼던 글이 2번이나 사라져서 다시 써야 할지 고민이 되었다. 그래도 간단하게라도 써보기로 했다.
벨로그를 쓸 때는 이런 것들에 주의해야 하는데, 가끔씩 잊어버리곤 한다.
여러 번 시도 끝에
이렇게 해서 다 풀었다. 한 문제를 푸는데 거의 한 시간 가까이 걸린 것 같다. 그래도 이 문제를 풀어야 파이썬의 기초를 이해하고 다음 단원으로 진행할 수 있을 것 같았다.
언뜻 보기에는 코드가 잘 실행이 된듯 보이지만 제출을 하면 0점 처리가 되었다. 이 문제가 무엇일까 살펴보며 다음날 새벽에 다시 풀어보는 중이다. 이제 보니 공백이 하나씩 추가되고 있었다.
헬퍼는 다음과 같은 오류가 있다고 도움을 주었다.
product를 빼주어도 될 것 같아 print에서 바로 곱해주었다. 하지만 그래도 오류가 나와서 다음의 문제들을 해결해보았다.
맞는 코드
여전히 원하는 답과는 다르지만 그래도 많은 것들을 배울 수 있었다. print에서는 +연산자가 사용된다는 것, 바로 변수를 쓰는 것보다는 str에 담아준다는 것도.
학습을 마치고
이제 주말 내일까지 디버깅 학습을 마쳐볼 예정이다. 오늘로써 인공지능 사관학교에 입교한지 8일이 되었다. 근데 한 몇 주 지난 것처럼 느껴졌다. 주말 동안에도 열심히 공부해볼 것이다. 그리고 수요일까지 완료하기로 했던 목표를 다 달성해서 내일은 주말 계획도 한번 세워봐야겠다.
다음날 디버깅 학습을 하다가 이 문제를 다시 한번 더 풀어보았다.
'웹 · 앱 개발 > 디버깅' 카테고리의 다른 글
에러 읽고 대처하기 4 - 미션 문제 풀기 (0) | 2024.07.30 |
---|---|
에러 읽고 대처하기 3 - 자주 접하는 에러 코드 및 에러 피하기 (0) | 2024.07.30 |
애러 읽고 대처하기 2 - 자주 접하는 에러코드 2가지 : Index, Import error (0) | 2024.07.30 |
애러 읽고 대처하기 1 - 애러 메시지 읽기 및 자주 접하는 애러코드 3가지 (0) | 2024.07.30 |
디버깅이 필요한 이유 1 - 버그와 예외 (0) | 2024.07.30 |