프로그램 코딩을 파이썬으로 진행하면 꼭 만날 수 밖에 없는 것이 있습니다. 바로 코드의 오류에 관련된 내용입니다.
오류는 코딩에 있어 하나의 문제점, 숙제와도 같습니다. 이런 숙제, 미션을 해결하는 과정에서 새로운 지식을 얻고 경험을 쌓아가게 됩니다.
많은 오류를 만난 사람은 그렇지 않은 사람보다 월등히 실력이 높아질 수 밖에 없습니다. 흔히 놓치는 부분도 오류로 인해 다시금 점검을 하게 되니까 말이죠.
우리는 살아가면서 다양한 실수를 합니다. 이 실수를 통해 새로운 규칙을 익히고 삶을 살아가는 기준을 찾아가게 됩니다.
이렇게 알아간 경험적 지식은 자신을 한층 더 성장시키는 원동력이 되기도 합니다. 코딩에서도 이런 인간의 삶의 방식, 학습의 방식은 마찬가지로 적용되게 됩니다.
🔆 파이썬에서 만나게 되는 다양한 오류들.
어떤 프로그래밍 언어를 이용해도 오류는 피할 수 없습니다. ‘피하지 못하면 즐겨라’라는 인생의 명언이 있습니다.
이런 명언의 깊이 있는 내용보다는 조금 다르게 접근하는 것이 좋지 않을까 생각합니다. ‘피하지 말고 단계별로 맞서라’입니다.
파이썬이라는 프로그래밍 언어는 많은 인기를 누리고 있습니다. 너무나 다재다능하다는 측면과 직관적인 코딩 언어의 모습이 가장 대표적인 이유일 수 있습니다.
인간이 사용하는 문법과 유사하게 코드를 작성할 수 있으며, 다양한 외부 언어들과의 협업이 가능합니다. 또한, 많은 사람들의 정보 교류가 활발히 이루어지고 있습니다.
이렇게 다양한 정보를 얻을 수 있다면, 초기에 접근하는 것도 어려운 것은 아닐 수 있습니다. 다만, 다른 언어에 비해 한가지 단점이 부각되곤 합니다.
바로 속도에서 차이를 보인다는 것이죠. c언어와 많은 비교를 하게 되는데, c언어의 경우 코딩은 어렵지만 속도가 좋습니다.
최근에는 이런 부분도 해소할 수 있게 파이썬의 속도가 점점 좋아지고 있습니다. 보다 많은 곳에서 파이썬을 활용할 수 있지 않을까 생각해 봅니다.
코딩은 여러 코드들을 규칙에 맞게 잘 나열하고, 그룹짓는 것으로 진행합니다. 이렇게 진행된 코드들은 규칙에 맞게 활용되어야만 적절하게 기능을 구현할 수 있습니다.
하지만, 이런 구문들에서 규칙에 맞지 않는다면, 더이상의 코드는 진행되지 않고 멈추게 됩니다. 그리고, 우리가 흔히 볼 수 있는 오류 메시지를 반환하게 됩니다.
이렇게 콘솔에 반환된 오류 메시지를 확인하고, 오류를 수정해가는 것, 그것의 반복이 바로 코딩의 묘미이기도 합니다.
✔ 파이썬 코드 진행에서 발생되는 오류를 처리하는 방법.
앞에서도 언급했 듯, 코딩을 하는 것은 명령어를 규칙에 맞게 나열하고 그룹을 형성하는 것이라고 할 수 있습니다. 이렇게 그룹으로 나열된 코드들을 다시금 그룹으로 실행하게 됩니다.
파이썬 코딩에서 오류를 대처하는 대표적인 방법은 try, except를 이용하는 방법입니다.
try:
#자신의 코드 진행
except:
#오류 발생 시, 대처할 코드 진행
위 예시는 기본적으로 try문을 사용하는 방법입니다. try라는 그룹에 진행하려는 코드를 작성합니다.
그리고 오류가 발생했을 경우, 대처할 수 있는 코드를 except문에 작성하게 됩니다. 그럼 진행되는 코드에서 오류가 발생되면 except문에 작성한 코드가 진행되게 됩니다.
이는 단편적으로 살펴보면 이렇습니다. 오류 발생시 해당 오류를 무시하고 except를 진행해라. 라고 말입니다.
오류의 발생 확률이 높지않고, 단순히 무시하고 진행한 후, 새로운 코드의 진행 혹은 반복 진행을 한다면 단순히 위의 코드로 해결 할 수 있습니다.
하지만, 코드의 진행에 있어 치명적인 오류가 발생된다면, 또는 오류가 발생된 이후 대처할 수 있는 경우의 수가 다양하다면 try를 반복적으로 사용해야 하므로 전체적인 코드가 지저분해질 수 있습니다.
이런 경우에는 오류메시지를 특정지어 코드를 진행할 수 있습니다. try에서 반환되는 오류 메시지에 맞춰 except를 지정하면 해결 할 수 있습니다.
이 부분은 다음에 코드들에 대해서 살펴볼때 정리하도록 하겠습니다. 여기서는 초보의 입장에서 테스트를 진행하는 경우에 활용할 수 있는 방법을 살펴보겠습니다
✔ try, except Exception as e 이용방법.
위에서 언급한 try, except에 Exception as e라는 구분을 추가했습니다. 이렇게 추가하면 오류로 발생되는 메시지를 e라는 변수에 할당하게 됩니다.
이제 except Exception as e 구분에 e라는 변수를 print하면 발생되는 오류를 찾아 볼 수 있습니다.
오류 메시지를 확인했으니, 다시 try에 접근하여 문제가 발생된 구문을 수정하는 것으로 본래 코드들의 기능들을 구현해 갈 수 있습니다.
이는 디버깅의 한 방버이 될 수도 있습니다. 처음 코딩을 접하게 되면 코드의 진행이 직관적으로 머리에 들어오지 않는 경우가 많습니다.
가장 좋은 방법은 구문 하나하나를 실행하며 그 결과를 확인하는 것이지만, 그 또한 어느 순간부터 귀찮고 힘들어 집니다.
더불어, 모든 것을 깔끔하게 마무리 했다고 느껴지지만 오류가 발생될 수도 있습니다.
모든 명령어 구문에 print를 이용해 콘솔에 출력해 보는 것도 좋은 방법이지만 print가 많아질 수 있습니다.
이런 경우들에 try, except Exception as e를 활용한다면 많은 도움이 될 수 있을 것입니다.
사실, 코딩은 개발자의 취향이 뭍어나는 부분이라 생각됩니다. 정해진 규칙과 명령어들이 존재하지만, 그들을 규합하는 것은 개발자의 몫이기 때문입니다.
타인이 작성한 코드는 쉽게 파악이 안되는 경우가 많습니다. 전체 혹은 일부 코드를 인용할 때도 있습니다.
자신이 직접 작성한 코드라면 오류 구문을 쉽게 파악할 수 있을지 모릅니다. 하지만, 일부를 활용하는 경우라면 오류를 찾는게 어려울 수 있습니다.
이런 경우에도 “Exception as e”를 활용하면 도움이 될 수 있습니다.