1학년때 c언어 교수를 잘못만나서 좀 병맛같이 배우는 바람에 2학년 올라와서 c공부 다시하는데, 이번 학기 배우는 과목에 기초프로그래밍이 있거든요;;
그래도 c언어를 아예 모르는게 아니라 코드 짜는건 어느정도 하고, 과제도 잘 해나가고 있는데......
코드 짜다가 문제가 생겼는데, 교수님께 질문하니 디버깅? 을 하라네요.. 근데..... 제가 디버그에 대해 제대로 배운적이 없어요ㅠㅠ
실은 디버그 인지 디버깅인지 아예 용어도 헷갈리고, 이게 내가 배운건지 안배운건지도 모르겠어요....
그냥 1학년때 식별자, printf, 조건문, 반복문, 배열, 포인트, 구조체 이런것만 배운듯;;;;;
그래서 항상 에러가 나면 코드 아래에 에러부분 찾아주는거? 그거 눌러서 보고, 코드만 줄기차게 바라보며 머릿속으로 막 과정을 생각해서 문제를 찾곤 했거든요.. 아니면 아예 함수 자체를 통으로 지우고 다시 짜던가;;
근데 교수님께서 코드만 보고있으면 암것도 안된다고 하시네요........ 디버그 어떻게 하는건지도 모르고, 볼 줄도 모르는데ㅠㅠㅠ
그래서 말인데, 디버그 하는법 같은거 어떻게 배울 수 있나요?? 1학년때 교재로 산 c언어 책이 병맛이라 그때 교수님도 책을 안쓸 정도라, 열혈강의 사서 보고있는데, 구조체 다음은 아직 못봤거든요.. 근데 그 뒷부분에 디버그 하는법 같은거 자세하게 나와있나요?? 아니면.. 어떤걸 봐야 될까요??
이건 그냥 한탄............ 안봐도 됨요ㅠ
비싼돈 주고 대학공부 하는데 괜히 교수님 말하는것만 그대로 따라가느라고 이런 망트리를 타다니ㅠㅠ 안될것 같으면 그냥 혼자서라도 책 보는건데ㅠ
c언어 팀 프로젝트하는데 다같은 1학년 사이에서 유유히 공굴리기? 게임 만들어 발표한 놈도 괜히 밉다, 진짜.... 학기중에 배우지도 않은거 막 써가며 혼자만 학원에서 배운걸로 잘 해놓으면 딴 조는 다 뭐 되라는거야.... 혼자 a+받고.. 걔랑 같은 조 했던 애들 이제와서 생각하니 엄청 부럽다... 재수강 안해도 되고... 나도 재수강 안했으면 학점 남아서 웹프로그래밍도 들을 수 있었을텐데ㅠㅠ 선배한테 싸바싸바해서 코드 받아와놓고 뭐가 뭔지도 모르면서 가져와서는 그걸로 발표하자고 해서 내가 짠 것도 아닌데 주석 달게 만든 놈도 짜증나고, 팀 프로젝트 하는데 참여도 안해서 여자 둘이서 낑낑거리게 만든 남자 두놈도 짜증나고..... 으아아악!!!!............ 진짜 팀 과제는 친한사람끼리 해야 잘되도 좋고, 망해도 맘편하네...ㅠㅠ
Fuck! NL&CR!!!
공지사항에 디버깅하는법 있을껄?
어, 아까도 공지사항에 있던글을 봤는데, 조금도 이해를 못했었거든요;; 근데 리플중에 진짜 초보를 위한 간단한 방법을 올려놓으신 분이 있었네요..... 이제봤네;; 디버깅 한 걸 보는건, 그냥 c언어 배웠던걸 이용해서 코드짰을때 처럼 대입하면서 보는건가요? 특별히 뭔갈 더 알아야 볼 수 있는건 아니죠??
난 printf 존나 박아놓고서 나중에 한 줄 한 줄 정성스럽게 지움은 페이크고 #ifdef
디버깅하는 방법은 사용하는 개발툴에 따라 다 다릅니다. 대부분 어느정도 비슷하지만, 다른부분도 많습니다. C 언어 기초를 배우는 동안에는 이러한 개발툴에 대한 지식을 습득한다고 시간을 소모해서는 안됩니다. 나중에 어느정도 익숙해진 다음 개발툴도 적극적으로 익히고 디버깅 방법도 익히는게 좋습니다. 어차피 지금 배우는 동안에는 전문적인 디버깅 툴이 사실 필요없습니다. 따라서, 코딩하시다가 잘 안되실때에는 최고의 디버깅 툴인 printf 를 쓰세요. 의심가는 부분에 printf 로 변수값을 출력해보는 겁니다. 지금은 개발툴에 대한 지식보다는 현재 가진 지식으로 디버깅하시는게 공부에도 도움이 되고 배우는 속도도 빠릅니다.
이제 기초를 배우는 커리큘럼에서 디버깅기술을 배우라니.. 잘이해가 안가네요. 그교수님.
기초플 수업이 공학인증 과정이라 2학년 1/3? 정도에 나머지는 죄다 3,4학년이거든요.... 아마 3,4학년을 주로 가르치시는 분이라 그런것 같아요ㅠ 그나저나 printf가 그렇게도 쓰이는군요.... 다음에 문제생기면 꼭 그렇게 해봐야겠어요! 감사합니다ㅎㅎ
형이 프로처럼 디버깅 하는 법 가르쳐 주마. 먼저 버전 컨트롤이 필요하다. 돌아가는 것이 확인되면 바로 커밋 할것. 에러 메시지 주시 - 메시지의 의미와 어디서 문제가 발생하는지 파악해라. 파악이 안되면 이전 버전과 비교, 바뀐 부분에서 실수를 찾아라. 못찾으면 바뀐 부분 근처에서 디버거나 print 등을 이용, \"최초\"로 문제가 되는 부분을 찾아라. 중요한 점: 니가 이미 아는 것과 모르는 것을 잘 구분할 것. 즉, \"이미 알고 있는 아는 것\", \"이미 알고 있는 모르는 것\", \"알고 있는데 미처 빠뜨리고 모르는 것\", \"모르고 있는 모르는 것\". 이중 마지막 것에 대한 디버깅이 가장 빡치고 나머진 모르는 것을 알아서 익히면 고칠 수 있다. 이래도 모르면 포기하고 전업해라. 고생해라.