프로그래밍/기타

개발 도중 - 완전 생초짜를 위한 문제 해결 방법 소개

Dibrary 2022. 1. 21. 10:00
반응형

안녕하세요 Dibrary 입니다.

완전 생 초보일 때, 프로그램언어를 사용해서 개발을 하다가 원하는 결과는 안 나오고 에러가 날 경우에 대처 방안을 알려드리겠습니다. 

'누구나 다 할 수 있는거 아니야?' 라고 생각할 수 있으나... 현실은 그렇지 않죠.
저도 처음에 책보고 따라하다 막힐 때 접었던 이유가 이거였거든요.

혹시나마 작은 실마리가 될까 싶어 기록해 둡니다.

 

1. 에러가 발생하면 해당 문구를 '읽고 해석하자'

반드시 필요한 과정이죠. 문제는 해당 문구가 '영어'로 나옵니다. 

영어 공부도 평소에 좀 해둬야겠쬬?

예를 들어보겠습니다. 위 코드를 실행하고 값을 입력했더니 에러가 났습니다.

우선 잘 보시면 line 8이라는 단어가 보이실 겁니다. 이렇게 위치를 알려주면 먼저 '해당 줄에서 에러가 났겠구나' 하는 추측을 가지고 계셔야 합니다.

그리고 그 밑에 TypeError라는 문구가 중요합니다. 이 말은 type이 안맞다는 것이죠.

더 자세한 설명은 옆에 나와있습니다. can't multiply sequence by non-int of type 'str'
즉, 'str타입에 정수가 아닌 것을 곱셈할 수 없다'는 말이죠. 

단순하게 생각해도 str 타입에 str곱셈이 안되겠죠? 

원인은 파악했습니다. 그러면 생각을 해 봐야 합니다. '왜 str에 str을 곱한다고 에러가 났을까?'

곱셈이 있는 부분은 a와 b입니다. 즉, a와 b의 자료형 중에 하나가 int여야 곱셈이 가능하거나 둘 다 int여야 곱셈이 가능할텐데... ... 분명 코드상에는 int로 바꾸는 것 같죠?

따른 연습장에서 확인 해 보니 a와 b는 str이 맞습니다. 그러면 계산 부분이 잘못되었네요.

int로 바꾼 tmp1과 tmp2를 곱했어야 맞네요.

이렇게 '문제 해결 방법'을 찾아 나가셔야 합니다.

 

아 그리고 하나 알려드리면.. 생각보다 '간단'하고 '자잘'한 에러가 빈번합니다. 이런 것을 줄여 나갈 수록 프로에 가까워 지는 것이죠 .

 

 

 

2. 에러를 해석할 수 없다면 구글링을 하자.

구글링은 개발자에게 필수라고 할 수 있죠? 많이들 들어보셨을 겁니다.

우선 구글 외에도 검색해서 도움을 받을 수 있는 사이트 2곳을 알려드리겠습니다.

 

Stack Overflow - Where Developers Learn, Share, & Build Careers

Stack Overflow | The World’s Largest Online Community for Developers

stackoverflow.com

 

 

개발자를 위한 QA 서비스 | Hashcode

Hashcode는 프로그래밍 문제해결을 위한 Q&A서비스입니다. 프로그래밍과 관련해서 개발자들끼리 궁금한건 물어보고 아는건 함께 나눠요. C, Java, Python, Ruby등의 코드를 웹에서 직접 실행해 볼 수

hashcode.co.kr

저는 stack overflow를 더 많이 찾아보는데, 그나마 hashcode라는 것도 있다~고 알려드립니다.

위에서는 파이썬으로 설명해 드렸으니 이번엔 자바로 구글링 하는 방법을 소개해 보죠.

휘유 복잡하죠? 아주 경고의 빨간색이 넘쳐납니다.

지금 이 코드에러의 핵심은 맨 윗줄 입니다. Connection timed out: connect

해석을 먼저 해보면, '연결 시간이 지났다' 라는 것이죠. 네 이 코드는 A-B를 연결하는 부분에서 고장이 났다는 것입니다. 즉 통신 코드에 문제가 있는 것이죠.

 

우선 해결 방법을 모르고, 해당 문장이 뭘 의미하는지도 모른다고 가정하고 구글에 입력해보겠습니다.

와우 검색 결과가 2천만개나 있다네요? 뭐 아무튼 그 중에 한글로 된 것이든, 아래 보시면 URL이 https://stackoverflow.com으로 로 된 것이든 원하는 것을 확인해보세요.

저는 OKKY라는 사이트에 누군가 올린 질문을 들어가 보겠습니다.

네 아주 간단하게 해답을 들을 수 있네요!

사실 위 코드는 제가 2번째 서버를 실행하지 않았기 때문에 발생한 에러 입니다. 위의 답변과 아주 유사하죠?
(실행하지 않았다는 것은 곧 방화벽을 막아놓은 것과 같이 서버가 접속이 불가능하기 때문에 timed out이 나옵니다.)

 

 

이렇게 직접 에러 문구를 확인하거나 구글링을 통해 확인하는 2가지 방법을 소개해 보았습니다.

작게나마 도움이 되셨길 바랍니다.

728x90
반응형