보통 과제를 낼 때에는 git repository를 제출하라고 하는데, 마지막 과제를 제출면서 학생들이 저에게 이런 저런 얘기를 해 주네요. 다른 사람을 가르치는 것을 통해서 내가 또다시 배운다고 해야 할까요? 이런 얘기를 들을 때마다 내가 이런 얘기를 들을 수 있는 자격이 있나 하는 부끄러운 생각도 들구요, 앞으로 더 잘하라는 채찍질로 새겨 듣겠습니다. 학생들의 바램과 감사함을 잊지 않으며 초심을 잃지 않고 모든 일에 정진할 수 있도록 노력하겠습니다.

제 강의 따라 오느라 고생하신 모든 분들 정말 수고 많으셨습니다.

thank-you.jpg


이번 XXX 과제를 하면서 좀 변태같겠지만 결과물이 나오는것을 보고 약간의 희열?을 느꼈습니다. 네트워크 프로그래밍에대해 막연히 어렵다고 생각했었는데 생각보다 재밌었습니다.


이번 과제는 재밌었습니다. 인터넷 창에서 내가 설정한대로 글자가 바뀐것을 보니 신기했습니다. 친구 이름들로 장난쳐서 캡쳐 후 보내주기도 하고 그랬습니다ㅋㅋㅋ




기존에 썼던 코드가 함수 기능별로 뜯어놓기만 했었다면, 저번 시간 교수님의 조언을 되짚어보며 이번에는 기존 코드를 클래스 형식으로 보다 보기 쉽게 바꾸고자 노력하였습니다. 무엇보다도 모종의 이유로 실패했었던 과제를 다시 한번 시도해보고 끝낼 수 있었다는 점에서 즐거웠습니다. 간만에 코딩을 즐겁게 한 것 같습니다. 매번 좋은 수업 감사합니다!




제가 진짜 딱 기초적인 C언어 문법만 알고있고, 프로그래밍 경험이 없는데 그래도 열심히 만들어봤습니다. 과제 할 때마다 뭘 모르는지도 모르는 상태에서, 내가 모르는게 뭔지부터 구글 검색해가면서 찾는게 너무 힘들었고 매주 주말을 과제에 필요한 정보 찾는데에만 시간을 다 썼습니다.

매주 수업마다 패킷 캡쳐, 스푸핑등 과제에 대한 이론적인 흐름이나 논리는 이해가 되는데, 그걸 코딩하려니 library 추가하는 법도 모르고, 겨우 추가 했더니 뭔소린지도 모르는 오류가 뜨고, 함수 사용법도 모르겠고, 검색해보니 처음보는 용어들이 난무하고.... 진짜 맨땅에 헤딩하는 느낌이였는데, 그래도 어떻게 완성이 된걸 보니 뿌듯합니다.




실행하는 함수가 워낙 많고 생전 처음 보는 구조체가 많이 등장해서 갈피를 끝까지 못 잡았던 것 같습니다. 그래도 이번 과제를 하면서 신기하고 재미있었습니다. 기한은 지났어도 계속 해보려고 합니다.




한학기동안 여러 개발 기술들이나 정보들을 알려주셔서 정말 감사했습니다. 제가 얼마나 부족한지 정말 많이 깨달은 것 같네요. 대부분 알아듣지는 못했지만,, 말씀 열심히 타이핑은 해놓았습니다..
 
수업 동안 여러모로 충격을 많이 먹은 것 같네요. 이번 방학 동안 다시 과제를 하면서 제대로 된 코드를 완성시키고 싶다는 욕심이 생기네요.
 
한학기 동안 정말 감사했고 죄송했습니다. (_ _)




여태껏 7학기 동안 이 과목 만큼 열정적으로 푹 빠진 과목이 없는것 같습니다. 비록 미흡한 실력 탓에 완벽한 결과물을 못 만들어 내었지만 정말 배우는 것이 많은 과목 이었습니다. 항상 열정적인 강의에 대해 감사드립니다.




한 학기 동안 나온 과제들을 해결하느라 힘들었지만, 그래도 과제를 해결하는 데 쏟은 시간만큼 실력이 뭔가 크게 향상되는 것 같은 수기분을 느낄 수 있었고 과제를 하나하나 해결할 때마다 느끼는 쾌감에 코딩에 재미를 붙일 수 있었습니다. 한 학기동안 좋은 수업해주셔서 감사합니다!


 

이번 수업을 통해서 네트워크 자체에 대한 지혜(?)를 많이 배워갔습니다. 라이브러리를 설치하기 위해 시행착오를 겪거나 버그를 없애기 위해 Wireshark만 뚫어지게 본 기억은 평생 남을 것 같습니다.




안녕하세요 교수님! 역시 마지막 과제라 쉽지가 않았습니다ㅠㅠ 저는 원래 코딩 경험도 매우 적고 코딩에 사실 그렇게 흥미가 있던 것도 아니었습니다. ... 사실 이번학기 처음 시작할 때, 어떤 식으로 수업이 진행될 지 알 수는 없었지만 대부분의 수업이 그렇듯 이론 위주의 수업과 필기시험이겠거니 생각했지만 처음 몇 주의 수업부터 사실 해본 적 없는 네트워크 코딩을 해서 내야 했었기 때문에 사실 많이 부담스러웠던 것 같습니다. 그런데 처음 몇주의 과제는 그래도 꾸역꾸역 시간들여 삽질하니 결국 완성할 수 있었고 저도 제 자신에 별 기대가 없었기에 나름대로의 성취감이 생기고 기분이 좋더라구여ㅋㅋ...

XXX 과제 때 부터 점점 과제가 빡세졌지만 그래도 처음처럼의 못할것 같다는 생각이나 그런 건 없었고 시간들여 삽질하면 할 수 있겠다는 조금의 자신감도 생겼던 것 같고 그대로 계속 물고늘어지니 결국 해결할 수 있었고 그 떄 부터 흥미가 더 붙었던 것 같습니다. ... 이번 과제는 마지막이라 그런지 유독 빡셌던 것 같고 마지막에 https 설정이 필요한 사이트가 연결되고 그 안에서의 data change 까지 됐을 때 성취감은 정말 거의 엄청 진짜 어마무시했던 것 같습니다ㅋㅋㅋㅋ

그래도 과제를 끝까지 제 시간에 누락없이 마무리 할 수 있었고 유종의 미를 거둔 것 같아 뿌듯하고, 매우 허접한 질문들임에도 한 학기동안 잘 받아주신 교수님께 정말 감사드립니다~~ 한 학기가 거의 끝난 시점에서 되돌아보면 대학들어와서 코딩 실력이 제일 많이 늘었던 학기가 아니었나 싶고, 이 과목을 수강하기 잘햇다는 생각이 듭니다~ 다음에도 또 교수님께 배울 수 있는 기회가 생겼으면 좋겠고, 다음 비오비 기수에 지원해서 붙는다면 꼭 다시 뵙고 싶습니다~~

한 학기 동안 정말 감사했고 건강히 지내세요!




전체적으로 수업이 너무 좋았습니다. 항상 수업은 필기나 이론 위주라 아무리 헤더를 달달 외워도 실질적인 역할 모르고 지나가는 경우가 몰랐고 이번에 패킷을 다루고 코딩을 하면서 이런 걸 더 생각해볼 수 있었습니다. 2학년 때까지 코딩이라 해봤자 알고리즘 과제를 위한 간단한 져지 정도의 코딩? 정도여서 코딩 실력도 많이 형편이 없었는데 이 역시 많이 늘었다고 느꼈습니다. 

코딩에 욕심이 생겨 python 에 의존하지 않고 과제가 나올 때마다 C 로 시도해보았고 이번 Proxy 도 C로 도전해보려고 했으나 CPU에 터지고 .. 여러 변수가 많이 생겨서 아직 부족하다는 것을 많이 느꼈습니다.  결국 시간 상 뒤늦게 파이썬으로 해서 D를 하지 못한 변명하지 못한 변명을 했습니다만, 오직 점수와 과제 점수를 추구하는 것보다 C로 지지고 볶고 하면서 많은 걸 배운 거 같습니다.예로 주소값은 리버싱할 때의 그 '주소값' 개념, 막상 코딩할 때는 어떻게 다룰지도 모르는 상태에 다루지 못하다가 패킷과 함수 짜면서 많이 익혔고 thread 하면서 deadlock 이 발생하게 코딩해서 deadlock 다루거나 없애게도 생각해보았습니다. 또 되도록 중복 코드 없게 함수화를 시키기도 해보고... CPU 때문에 thread 디버깅, CPU 디버깅 visual 로도 이리저리 해보았고... 뭐 다양한 일이 있었습니다ㅠㅠ... 네트워크 뿐만 아니라 코딩, 하드웨어 자원(RAM, CPU, CACHE)까지 모든 걸 배울 수 있는 비빔밥같은 수업!!!

코드 리뷰하면서 class , 객체 지향 프로그래밍 하는 것도 보고 제 코드가 형편이 없다는 것과 이러다 어떤 업무를 할 때 저 혼자만 이해할 수 밖에 없는 코드가 되겠구나... 라는 걸 느껴 이번 방학에는 이런 쪽에 혼자 공부해본 뒤 다시 C로 도전해보고 네트워크 뿐만 아니라 다른 보안 분야도 공부하고 싶어 신청하지 못하는 것이 아쉽습니다.  그러나 다음에 다른 기회가 되면 참가해보고 싶고  4학년 졸업 연구 때 가능하다면 많은 도움을 받고 페이스북으로도 소식을 계속 접하고 싶습니다. 감사합니다.


 

우선 한학기동안 좋은 가르침 주셔서 감사하다는 말씀드리고 싶습니다. 해킹에 그다지 관심이 없던 제가 어쩌다가 맨 앞자리에 앉게 되고, 자발적으로 그 자리에 계속 앉게 되고, 얕은 지식을 동원하여 혼자 끙끙대다가 결국 그것이 매듭지어졌을 때, 참 기뻤습니다.
 
주입식 교육이 아닌 실전에서 쓸수있는 교육방식, 그 과정에서 혼자 관련 내용을 찾아보고, 구현해보고, 실패해보고, 극복해 보면서 익숙친 않았지만 제 대학생활 중에 가장 기억에 남는 수업중 하나가 될 것 같다는 생각이 듭니다.

교수님께선 밖에서 안된다고 하셨지만, XXX에 가서 친구가 화장실 간사이에 친구 ip를 확인하고 arpspoofing하고 릴레이 안해줘서 친구 네트워크만 먹통으로 만들었을 때, 친구가 어리둥절해하면서 와이파이 잘 되냐고 물었을 때, 그 때가 아마 해킹이 더 재밌어진 기점이 아닐까 싶습니다.
 
또한 교수님께서 지난시간에 에러처리, 옵션, 유니테스트에 대해 한번 고민해보라고 하셨을 때, 이를 적용하기위해서 찾는 과정속에서 분명 제가 성장하는 계기가 됐으리라 생각합니다.
 
감사합니다 교수님. 덕분에 해킹이 생각보다 재미있습니다. test.gilgil.net에 나온대로 hacking for fun. 공감합니다:)



마지막으로 하고 싶은 말

제 수업을 들어 본 사람들은 알 것입니다. 외우는 거 없구요, 시험도 없구요, 이론 공부도 별로 안하구요, 수업 시간에는 학생들에게 이런 저런 뻘짓 거리만 보여 주면서 "이거 직접 코딩으로 구현해 와라" 라는 것을 계속해서 반복할 뿐입니다.

가르치는 사람 입장에서는 시키기만 하기 때문에 그리 어렵지는 않은데 그게 참 쉽지만은 않습니다. 학생들의 실력 차이가 많아서 수준을 어떻게 맞추어야 할 지, 내 수업에 적응을 하지 못하는 학생(이런 수업 방식이 처음인 친구들도 많은 듯 하고)들은 어떻게 가이드해야 할 지, ...

그런데 그 중에 가장 힘든 것 중의 하나는 바로 요행(과제 베껴 내기)을 일삼는 친구들을 어떻게 제대로 된 길로 인도할 수 있을까 하는 것입니다.

코드 과제가 나갑니다.

A라는 학생은 밤새어 가면서 스스로 노력하여 과제를 제출합니다. 많이 봤자 코딩 경력 몇년 되지 않는 20대 연령 남짓 되는 학생이 만든 코드는 (당연하게도) 그리 깔끔할 수가 없습니다.

반면에 B라는 학생은 기존에 잘 만들어 져 있는 코드를 그대로(혹은 베껴 내는 것을 들키지 않기 위해 코드 일부를 수정) 제출합니다.

결과는 어떻게 될까요? 제출된 코드를 과제의 점수라는 숫자로 매겨야 하는 평가자의 입장에서는 B라는 학생의 코드에 더 높은 점수를 주게 됩니다.


스스로 고생해서 코드를 만들고 지식을 얻어 가는 것보다, 남들이 이미 만들어 놓은 코드를 조금만 다듬어서(베껴 낸 것을 감추기 위해서) 제출하는 경우를 수도 없이 봐 왔습니다. 그 결과 열심히 한 친구들 보다 쉬운 길을 선택한 친구들이 더 높은 학점을 받아 가는 경우가 간혹 있죠. 제가 학교를 다닐 때도 그러하였고, 지금도 그러하고, 앞으로도 계속해서 그럴 겁니다. 왜 이런 현상이 사라지지 않을까요? 이는 과정보다는 결론을 더 중요시하는 목표 지상 주의에 기인한 교육 시스템에 그 문제가 있다고 봅니다. 고치려고 해도 이러한 병폐는 하루 이틀 사이에 바뀔 수는 없겠죠.

'학생들에게 어떻게 하면 제대로 된 교육을 할 수 있을까?' 하는 의문은 가르치는 사람의 입장에서는 항상 고민이 될 수 밖에 없습니다. 저는 '지금 얼마나 잘 하느냐' 하는 것보다 '얼마나 많은 것을 배워 갔느냐'에 대한 기준으로 평가를 하고 싶습니다. 하지만 저 또한 기존의 교육 시스템에 기인하여 여러분의 점수를 매길 수  밖에 없다는 것이 안타깝기만 합니다.

목표만을 중요시하는 기존의 관행이 철폐되기 위해서는 스스로의 "양심"에 기인하는 행동이 제대로 평가받을 수 있는 건전한 사회가 조성이 되어야 할 것입니다. 스펙에 따라, 성적에 따라 취업의 당락이 결정되는 첨예한 현실 속에서 이런 말을 하는 것이 다소 비현실적일 수 있으나, 감독관이 없어도 부정 행위가 발생하지 않는 시험, 양심에 따라 과제 베껴 내기를 하지 않는 공정한 평가가 이루어 질 수 있는 그런 날이 왔으면 하는 바램입니다.


결과만 중요시한 A보다 양심에 따르는 F가 더 자랑스럽습니다