loading

[스크랩] 코딩 과제 처음 할때 도움되는 글

코딩 과제 처음 할때 도움되는 글

출처 : 도탁스


코딩 과제 하시는 탁서들이 종종 질문을 올리는데


오류 잡아주세요 안돼요 등등요


그 중에 디버깅 조금만 해보면 바로 답 나오는 것들이 있어서 카페에 글 안 올리고 충분히 해결이 가능 한 내용들이라 


개미눈꼽만큼 더 코딩해본 제가 조언을 좀 드리고자 해요




그럼 귀엽게 봐주세요 




1. 흔한 인터넷에 있는 배열의 동적할당 소스를 가져왔습니다. 내용은 신경안쓰셔도 되요 







2. 맨 위에 #include <iostream> 을 주석 처리 해보았습니다. 

  그리고  F7 빌드를 해보면 아래 C2065라는 에러 이름이 나오고 그 다음에 변수 cout 그리고 해당 내용이 나와요  cout 가 선언되지 않았다네요 

 cout 명령어는 iostream 에 선언되어 있어서 컴파일러는 cout 가 뭔지 모르는거에요 

 이런식으로 빌드 오류가 발생하면 아래 출력창만 가지고도 무슨 문제인지 확인 할 수 있어요 





3. 그럼 이걸 어떻게 알아보냐 하면 잠시 다른 예제좀 볼께요 

일하던 소스를 가져와봤는데 이건 집에서 빌드가 안되요 환경이 달라서 ...지금 빌드하면 vs 버전이 낮아서 에러가 날거에요

이걸 빌드 해봤더니 이런 오류가 나네요 MSB8020 이게 무슨 내용인지 어디서 알아보져?




우리는 믿음직한 구글이 있으니 한번 찾아봐요




우리의 앞선 선배 형들이 많은 시행착오를 구글에 올려주었습니다. 


발생하는 거의 대부분의 에러메시지들은 구글에서 해결 할 수있어요 특정 환경에서 빌드 오류 나는 그런 몇몇 문제 빼고는요


하지만 과제하면서 발생하지는 않을테니 


항상 염두해두세요 


구글갓 == 갓구글 두번 세번 구글 띄워서 보세요 



4. 이번에는 브레이크포인트를 찍어서 소스를 천천히 살펴 보는 법이에요


브레이크 포인트가 뭐져? <






저기 저 앞에 빨갛게 점이 보이져? 

소스 코드 앞줄에 마우스로 클릭하면 저렇게 점이 생깁니다 빨간색으로요 

그리고 빌드를 실행하면 !

소스가 실행되다가 저 부분에서 딱 !! 멈추는 일이 발생합니다. 노란 화살표가 지금 위치에 멈춰있다는 말입니다. 


이게 어쩌라고요? <


그냥 실행해서 오류가 나면 오류창 내 뱉고 죽어버리잖아요 그걸 어디서 문제가 발생하는지 찾아보는 방법입니다.


어떻게? <





F10 누르면서요 

F10 누르면 한줄 한줄씩 천천히 진행이 됩니다. 문제가 발생하지 않으면 그냥 진행 될 것이고 아니면 오류가 나면서 중단되겠지요


실행중에 발생하는 대부분의 오류는


배열의 할당문제 


Null Pointer 참조 문제가 되겠습니다. 



5. 조사식 활용 하기 




아래 창에 조사식이라고 보이시져?


여기다가 변수들을 마우스로  끌어다 놓으면 메모리 주소와 값을 실시간으로 확인 할 수 있어요 dotax 배열 주소와 1,2,3,4,5 가 들어가 있는걸 볼 수 있습니다. 


위에 브레이크 포인트 찍은건 배열을 일부러 넘겨서 for 문을 돌려봤는데요


보시면 i 가 5가 되자 dotax 의 배열 갯수를 넘어서 val 값에 쓰레기값이 할당 되는걸 볼 수 있습니다. 


실제로 저렇게 되면 문제가 발생하겠죠?




이렇게 기본적으로 브레이크 포인트찍는 것 부터 디버깅 시작하시면 됩니다. 

조사식이나 에러 메시지를 잘 확 인해보시면  혼자서도 문제 해결 하실 수 있어요 


혼자서 어려우시면 브레이크 포인트 찍어가면서 

코드에서 이 부분에서 문제가 발생한다고 질문을 올려주시면 답변해주는 사람이 빠르게 원인 파악을 할 수 있습니다.


감사합니다 여러분


즐코딩하세요 : )