<b><strike>눈(머리)는 손보다 느리다</strike></b> <div><b>손은 눈보다 빠르다</b></div> <div><br></div> <div><br></div> <div><br></div> <div>뜬금포 결론 : 그래서 컴파일러를 찬양합시다</div> <div>(폰 노이만 : 뭐임마?)</div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div>프로그램을 짜기 시작해서 얼마 되지 않았을때 대부분 경험하겠지만</div> <div>왜 이게 안되지? 머리를 싸매면서 고민을 하게 됩니다. 물론 이런 고민이 무의미 하다는건 아니지만</div> <div><br></div> <div><b>어짜피 너님 머리에서 나온 거라 너님 머리로 고민해봤자</b></div> <div><b>껍질을 하나 벗기 전에는 답이 안나옵니다. </b>(그래서 디버깅과 테스트는 모르는 사람에게 투척)</div> <div>그러니 객관적이고 기계적으로 봐줄수 있는 녀석이 바로 <span style="font-size:9pt;line-height:1.5;">디버거와 컴파일러 입니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">실행조차 안되는 녀석들 printf()나 cout 혹은 System.out.println() 혹은 print 등등등(몇개 언어를 해야 하나.. -_-)</span></div> <div><span style="font-size:9pt;line-height:1.5;">한줄한줄 프린트 해서 찎어보는 것도 방법이지만 노가다라</span></div> <div><span style="font-size:9pt;line-height:1.5;">이걸 자동화 해줄수 있는 IDE 통합 디버거를 사용하는것이 이득입니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">프로그램이 어려운 것은 문법이나 알고리즘이 어렵기 때문이 아닙니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;">추상적인 논리를 머리속에서 추상적으로 그려내기 때문입니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;">(절대 비하는 아니지만) 전자회로 설계가 프로그램 보다 쉬워보이는건</span></div> <div><span style="font-size:9pt;line-height:1.5;">현실에서 보이고(visualize) 문제가 생기면 피드백이 쉬우며(교육이론) GUI 툴을 이용해서 물리적 공간을 차지하며 선으로 이어지기 때문입니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;">디버거를 사용하더라도 선으로 보이는게 아니지만 최소한 라인별로 변해가는 데이터를 추적할 수 있으며</span></div> <div><span style="font-size:9pt;line-height:1.5;">어떤 부분에서 어떤식으로 변하는지 알 수 있기 때문에 </span><span style="font-size:9pt;line-height:1.5;">가시화를 통해 이해를 도와주기 때문 입니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">또한, 컴파일러의 경고나 에러는 본인이 깨닫지 못하는 잠재적 에러에 대해서도 알려주기 때문에</span></div> <div><span style="font-size:9pt;line-height:1.5;">되도록이면 경로레벨을 최대로 설정하여 에러뿜뿜을 하나둘씩 잡아보시기 바라며</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>그래도 안되면 조금 쉬었다가 다른걸 하면서 작업중인걸 잊은 다음 다시 돌아와서</div> <div>새로운 관점으로 새롭게 시작해서 보면 문제를 해결 할 수 있을 겁니다.</div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div>에... 그러니까 결론은 고민 때릴 시간에 F8(비쥬얼 스튜디오 기준) 한번 더 때리고</div> <div>F10 눌러서 한줄한줄 따라가보는게 이득입니다.</div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div>+</div> <div>아직 저도 적용해보지 못한 분야이지만.. coding rule이나</div> <div>static analysis tool을 이용한 코드레벨에서의 잠재적 문제를 잡아보도록 학부과정에서 유도해주는것도 좋겠다고 생각이 들긴 합니다..</div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div>+ 이전글</div> <div><a target="_blank" href="http://todayhumor.com/?programmer_11379" target="_blank">개발의 길로 들어서려는 분들을 위한 오늘의 조언</a> 처음부터 쪼개지 마라. 하나로 못둘때 쪼개라</div> <div><a target="_blank" href="http://todayhumor.com/?programmer_11364" target="_blank">개발의 길로 들어서려는 분들을 위한 오늘의 조언</a> input - output 을 먼저 정해라</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.