꼬마선원의 개발일지 7주차

By ccoma | September 25, 2018

삽질일기 시작!

지난주에 드디어 여름휴가를 갔다왔다.
무려 홍콩 + 마카오!
3박 5일로 신나게 다녀온 것 까진 좋았는데, 고3 이후로 한번도 없었던 감기몸살 + 오랜 시간 자리비움으로 인한 업무 밀림이 날 덥쳤다.
감기몸살때문에 좀 일찍 자고 쉬고싶은데 쉬지를 모태…
빨리 개발일지 쓰고 집가서 자야지…




이번주는 기획했다 헤헿

지난주 개발일지 내용이 기억이 안나서 찾아봤다 ㅋㅋ
흠 북극성 지표 + 이것저것 부가적인 기획 내용을 적었더라.
그래서 지난주 ~ 이번주 까지는 본격적인 기획을 했다.본격적인 기획이 몇번째여…

일단 우리는 전달력에 초점을 맞추어 보았다.

그러다 좀 오래 전이긴 하지만 우리가 수능을 봤던 때로 돌아가 생각 해 보았다.

수능을 준비하기 위해 개념 설명을 먼저 듣고, 쉬운 문제에 대한 풀이를 듣고, 좀 난이도가 있는 문제인 모의고사를 푼 다음에 풀이 방법 강의를 듣는 과정으로 공부 했었던 것 같다.

그래서 과거로 돌아가 이 3단계 학습법을 적용 해 볼까? 라는 이야기가 나오게 되었다.


  1. 쉬운 개념 설명 듣기
  2. 쉬운 문제에 대한 풀이 듣기
  3. 좀 난이도가 있는 문제인 모의고사 문제 풀기


음… 괜찮은 것 같지 않나…?
히 사실 잘 모르겠다 ㅎㅎ

어쨌든, 역대 몇십, 아니 몇 백만명의 수험생들이 인증한 학습법이니 괜찮지 않을까 싶다.




그 이후에 각 단계별로 어떻게 전달 할 것이냐에 대한 이야기를 나누게 되었다.

먼저 쉬운 개념 설명 듣기 단계에 대해 이것저것 이야기 했는데, 그러다보니 수포자 얘기도 나왔다.(우린 다들 이과인데 수학을 정말 싫어한다.)그래서 수학 공부할 때, 그 중 몇 년정도 재밌게 공부했었던 시절(?)을 떠올려 봤다. 비단 수학 뿐만이 아니라 공부하기 정말 싫었던 과목을 어떤 식으로 공부하게 되었는지 뒤돌아 보았다.

그랬더니 공통적으로 선생님의 비유와 개인적인 경험에 빗댄 설명이었다.

예를 들면 이런거다.

원기둥과 원뿔의 부피가 있을 때, 원뿔의 부피는 원기둥의 부피의 1/3이다.  

뭐 흔히는 그냥 외웠을 지 모르겠다.

그런데, 나의 담임 선생님이었던 수학 선생님은 자신의 학창 시절 경험을 이야기 해 주며 설명 해 주셨다. 담임 선생님이 학생일 때, 똑같은 내용을 배웠다고 한다. 그때 담임 선생님의 수학 선생님은 높이와 원의 지름이 동일한 원기둥 1개와 원뿔 1개 모형을 만들어 오셨단다. 그런 뒤, 원뿔 모양 안에 카라멜 땅콩 과자를 가득 담아서 원기둥에 넣었더니 정확히 3번이 들어갔다고 한다.

그 모습을 보고 몇 십년이 지난 아직도 기억이 난다며 우리에게도 똑같이 설명 해 주셨다.

이걸 내가 중2때 배웠는데, 10년이 지난 지금 나는 아직도 원기둥과 원뿔의 부피 구하는 공식을 잊을수가 없다. 그래서 우리는 이걸 채택했다.

바로 실생활에 빗댄 비유를 통한 설명이다.

뭐… 고생은 좀 많을 것 같은데, 이것만큼 쉽게 설명할 수 있는 방법, 기억에 오래 남길 수 있는 방법이 없을 것 같다.

즉흥적으로 하나 만들어 봤는데, 대충 이런 느낌이다.




우리는 흔히 Buffer Overflow를 배울 때, buffer가 공간보다 넘치는 것 뭐 이런식으로 배웠던 것 같다.

그런데 만약에 이 때, 아래의 그림과 함께 설명하면 어떨까?




봐바, 양동이가 있는데 물을 계~속 틀었더니 물이 넘쳤네?
이게 바로 Overflow야!
만약에 16 byte의 메모리 영역에 20 byte 만큼 문자를 넣으면?
저 양동이의 물처럼 넘쳐 흐르지 않을까?


뭐 이런 느낌이다.

그래서 이걸 쉬운 개념 설명의 학습 단계에 적용하기로 했다. 그림과 실생활과 밀접한 예시를 적절히 섞어서 설명하는 것!




그럼 이제 쉬운 문제에 대한 풀이 듣기 단계에 대한 고민이었다.
ㅎ 여기서 우리 회사의 인력을 최대한 활용하기로 했다.
바로바로 Youtube 인기스타님인 KERBEROS!
물론 본인과 합의 된 내용은 없다 ㅎㅎ

나중에 결정되면 말해드려야지 ㅎㅎ

우리가 문제를 만들어서 드리면 KERBEROS 님이 중저음의 목소리와 확실한 전달력으로 깔끔한 풀이 동영상을 찍어 홈페이지에 업로드 해 주시는 계획이다.

그럼 학생들은 동영상을 보며 차근차근 문제를 풀 수 있다.




마지막은 좀 난이도가 있는 문제인 모의고사 문제 풀기 이었다. 이건 정말 모의고사처럼 할 예정이다. 문제에 대한 접속 정보만 주고, 알아서 문제를 풀어야 한다.

다만, 문제를 해결 한 이후에는 출제자의 Write-up을 확인할 수 있다.

일단 여기까지 해서 학습 방법에 대한 고민은 끝났다.

이제 가장 큰 산은 교육 커리큘럼이었다.


연대기 그리기, 취약점 별로 나누기, 시나리오(스토리) 기반으로 나누기, 실제로 있었던 해킹 사고를 바탕으로 시나리오 구성, 전통 방식(Web hacking, Reversing 등)으로 문제를 분류하는데 대신 각 분야를 효율적으로 공부할 수 있는 방안을 제시하기…


뭐 이런 아이디어들이 나왔었다.
최종 선택 된 것은 연대기 그리기이다.
조선시대 소론, 노론 뭐 이런거 들어본 적 있을 것이다.
근데 이 붕당정치를 가지고 탕수육으로 본 조선붕당의 이해 뭐 이런 짤도 나온다.




그래서 여기서 좀 따왔다 ㅎㅎ의식의 흐름 오짐 ㅎㅎ

이걸 어떻게 보안에 적용하냐면 이런식이다.


태초에 bof가 있었다. 이게 뭐냐면! ~~ 하는 취약점이야. 근데 이게 문제가 되니까 사람들이 ##과 %%라는 보호기법을 만들었어. 그랬더니 ROP 라는게 나타났네?


뭔가 전래동화 같지 않은가? 물론 커리큘럼이기 때문에 아마도 홈페이지에서 보이기에는 조금 딱딱하게 보일 것도 같다. 근데 이런 흐름이라면, 약간 컴퓨터 보안계의 역사를 훑어보며 기초부터 차근차근 공부할 수 있을 것 같다.

이런 식으로 연대기를 여러 개 그릴 예정이다.

대신 학습의 시작 점은 여러 곳이 될 수 있으며, 동시에 여러 곳에서 시작할 수 있도록 할 것이다.

그렇지만 앞의 과정을 이수하지 못했다면, 뒤의 과정으로 점프는 할 수 없으며, 진행하며 게임에서 스킬트리를 찍듯이 여러 갈래로 학습 과정이 갈릴 수 있다.




ㅎ 여기까지만 하니까 너무 공부만 하는 것 같다.
그래서 좀 재미 요소를 생각 해 첨가 해 보았다.

던파라던가? 난 이 게임을 안해서 모르는데 여기에 피로도 시스템이 있다고 한다.

모바일 게임에서의 목숨 혹은 하트와 비슷한 역할을 하는 것 같은데, 은근히 이걸 다 소모하고 싶은 욕구를 자극해서 아 오늘 이만큼은 꼭 해야지! 이런 생각을 하게 된다.

그래서 이 피로도 시스템을 도입 해보면 어떨까 싶다. 매일매일 피로도가 충전되고, 한 단계의 학습을 진행할 때마다 피로도를 소비하게 된다. 오늘의 피로도를 모두 소진하면 더 이상 학습할 수 없다. 이렇게만 보면 단점인데, 은근히 피로도 끝까지 써야지~ 이런 마음이 들어서 평균 학습량보다 좀 더 높일 수 있을 것 같았다.

거기에 또 더해서 일일 퀘스트와 뱃지(업적) 시스템을 도입할까 한다. 얘도 뭔가 수집욕을 자극하게 되는 것이다.

또 우리 솔루션에는 그룹이라는 요소가 들어갈 수 밖에 없기 때문에 그룹(길드) 경쟁전도 넣을 것 같다.

지난주에 말했듯, 학습자들끼리 공부 방법이나 풀이 방법을 공유할 수 있는 커뮤니티를 추가하고, 자신이 얼마나 성장했는지 알 수 있도록 이벤트성 CTF를 개최하려 한다.


우리 회사 새우잡이 원양어선이다.
그동안 운영 한 CTF만 몇 개고, 만든 문제가 몇 개인지 모르겠다.
검증된 운영진에 의한 이벤트성 CTF!


뭔가 재밌어 보이지 않음? 아님 말고..

각 학습 단계에는 이 부분을 공부 할 때에는 자료구조 과목의 Stack 지식을 알면 도움이 됩니다! 이런 내용과 학습할 때 도움이 되는 관련 자료도 첨부하려 한다.




아, 그러고보니 제일 중요한 랭크를 이야기 안했다.

지난주 개발일지에도 있는데, 학습자에게 등급을 부여하고 단원평가 처럼 평가 문제를 주기적으로 풀게 해 자신의 등급을 올릴 수 있도록 할 것이다. 물론 이벤트성 CTF와는 다른 것이다. 이벤트성 CTF는 정말 CTF처럼 순위가 정해 질 것이다.

하지만 단원평가는 푼 문제의 수에 따라, 혹은 또 다른 기준에 따라 절대평가로 부여받는 등급이 된다.

아휴…

이 기획안 통과되면 할 일이 태산이다.
일단 커리큘럼부터가 문제다.

우린 기껏해야 보안 시작한지 얼마 안된 꼬꼬마들인데, 과거를 거슬러 방대한 양을 조사해야 해서 쉽지 않을 것 같다. 거기다 다들 게임을 많이 한 사람들이라 그런지 게임에서나 나올법한 아이디어들을 마구마구 넣어 준 덕분에 개발할 내용이 산더미다.

개발일지 풍성해 지는 소리가 들린다 ㅎㅎㅎㅎㅎㅎ




개발일지 회의록을 마치며

뭔가 이번주 개발일지가 신난 것 같다.

어제 감기몸살 때문에 일 한개도 못하고 일찍 퇴근해서 병원 갔다가 2시간? 잤는데, 그러고 밤에 한숨도 못잤다 ㅎㅎ 약에 수면제가 없는지 잠이 너무 안와서 그냥 밤을 꼴딱 새버리고 말았다. 그래서 지금 계속 오르락내리락 하는 열 + 잠 못잠 + 기침 + 추움 + 목아픔 때문에 약간 멘탈이 날아가려고 한다. 빨리 개발일지 끝내고 집가서 자야될 것 같다.

아 이번 기획안이 통과되면 이제 개발을 다시 시작할 텐데, 개발을 다시 시작해도 걱정이고 기획이 통과 안되도 걱정이다 ㅠㅠ

그래 차라리 기획 통과되고 개발을 좀 하면 뭔가 만들어지는게 보이니까 좀 더 나으려나 싶기도 하다.

매 주, 이 프로젝트에 대해서 엄청난 고민을 하는데, 아직도, 여전히, 안개가 자욱하다. 안개를 걷어내고 싶은데 어떻게 걷어내야 할지 방향도 잘 안잡히고 나 조차도 헤매고 있으니까 같이 일하는 팀원들도 함께 휘청거린다. 매 주 회의 끝나고 나름 잘 정리해서 보고한다고 하는데, 기획이 터질때 마다 팀원들한테 너무 미안하다 ㅠㅠ 좀 정신좀 차리고 Hacking on Lucy 프로젝트가 어느 정도 자리가 잡히면 거하게 회식하러 가야지!

아자!

comments powered by Disqus