실패는 성공의 어머니이다, 라는 격언이 있듯이 프로그래밍에 있어서 버그란 자주 마주하게 될 존재이다.
그러나 버그의 종류나 버그명을 해석할 수 없다면 무용지물.
오늘은 버그의 타입, 버그를 검색하는 방법 등을 알아보겠다.
1.버그의 타입
버그에는 크게 세 가지 종류가 있다. Syntax error, Runtime error, Semantic error.
Syntax error 부터 알아보자면, 문자 그대로 문법 오류이다. 스크립트 내에 프로그램이 알아먹지 못하는 문단이 있다는 뜻.
스크립트를 눈빠지게 들여다보자...
Runtime error는 스크립트가 실행될 때 이상이 생기는 버그이다. 속어로 '튕긴다', '죽는다' 등이 이런 런타임 에러에 속한다.
방법은 스크립트를 점검하거나, 스레드를 손봐줘야 한다.
Semantic error 는 프로그램이 잘 구동되는데, 의도치 않은 방향으로 실행되는 것.
대부분의 오류는 오류 발생 메세지에 이런 타입과 설명이 출력되는데, 이게 용어도 어렵고 영어라서 이해하기 힘든 경우가 많다.
물론 우리뿐만 그런 것이 아니라 지구 대다수의 사람이 그럴 걸? 그래서 집단지성을 활용하기 위해 만들어진 커뮤니티가 있다.
Stack Overflow - Where Developers Learn, Share, & Build Careers
Stack Overflow | The World’s Largest Online Community for Developers
stackoverflow.com
들어봤을 사람은 들어봤을 스택오버플로우. 해외 사이트지만, 유서 깊은 사이트이기 때문에 많은 자료가 쌓여있고,
질문이 생기면 자유롭게 물어보고 다른 이들이 대답하는 형식을 가진 사이트이다. 개인적으로 정말 큰 도움을 받았다.
영어가 불편하다면 크롬의 번역을 이용하면 한결 편하다.
2. 뜬금없는 버그
파이썬에는 좀 엥?스러운 버그들이 있다.
예를 들어
print(0.1+0.2)
이런 코드. 이 코드의 실행값은 0.30000004였나 0이 더 많나 그렇다.
왜 이러느냐, 파이썬의 정보 저장 방식 때문이다.
파이썬은 이진수로 정보를 저장한다. 예를 들어 0.125는 8분의 1이고, 이를 이진법으로 표현하면
0.001(0/2 + 0/4 + 1/8)이다.
이런 식이다보니 2진수로 딱 떨어지지 않는 수는 값이 약간씩 달라질 수 있다.
딱히 해결법은 없는 걸로 아는데, 알게되면 업데이트 하겠다.
이렇게 직관적으로 문제가 없지만 버그가 나온다면, 한 번 검색해보자. 프로그램의 한계? 일 수 있다.
개발자들의 유튜브 영상도 정말 많이 봐왔고, 글도 많이 읽어봤지만 하나같이 이야기하는 것은 구글링도 프로그래밍의 일부라는 것.
유명한 말이 있다. "Don't reinvent the wheel.". 이미 만들어진 것을 시간과 열정을 쏟아 가며 만드는 것도 기량 향상에 도움은 되겠지만,
우리보다 뛰어난 개발자들이 이미 대부분의 기능 코드를 만들어왔고 공개했기 때문에 그것을 이용하는 것도 좋은 방법이다.
세상에는 너무 많은 코드가 있고 우리가 그것을 다 숙지하는 것은 말도 안되는 일이기 때문에, 검색을 적극 활용하며 차차 진도를 나가자.
포기하지 말고 정진하자!
'Programming > Python' 카테고리의 다른 글
고목 파이썬 스터디 1주차! (0) | 2021.10.11 |
---|---|
[파이썬] 문자열과 숫자열 (0) | 2021.09.17 |
[Python] 파이썬, Vscode 설치 + pip란? (0) | 2021.09.11 |
댓글