쓰면서 내용을 만드는 글이니 경어를 피하겠습니다
내가 무엇인가를 학습할 때는 항상 역공학을 쓴다. 처음 메신저와 관련된 로봇을 만들고 싶어서 ICQ 프로토콜을 공부할때도 문서보다는 표본을 채집하고 그것으로 부터 근원지를 쫓아갔다. ICQ가 너무 하드코어여서 하다가 말고 MSN으로 넘어갔다.
MSN은 쉬웠다. 역공학에 대해 친근감이 없거나 경험이 없는 사람들은 뭔가 대단하게 보는 경우도 종종 있던데, 이거 진짜 쉬운 작업이다. 아니.. 내가 그렇게 길들여져 있어서 그런지도 모르겠다.
네이트온은 MSNP4 와 비슷한 스타일이였어서 쉽게 쫓아갔다. 패킷을 보면 '아니 이게 뭘까~? ' 할만한 게 거의 없었다. 암호화 부분만 빼면.
버디버디는 초기 프로토콜 설계자들에게는 미안하지만 무슨 초딩-_-이 만든 것 같아서 (훌륭하신 초딩 여러분들을 비하할 생각은 없습니다) 분석의 가치도 없을 정도였다.
그 외에 EAP, EAPOL도 문서를 보고 공부하는 것보다는 역공학으로 들어갔을때 훨씬 더 본질을 이해하기 쉬웠고 개발속도도 빨랐다. 게다가 역공학 특성상 버그가 생길 확률도 훨씬 줄어든다. 채집된 표본에 대해서는 막강 무적이다. Test 코드 만들기도 훨씬 쉽다.
HTTP, FTP, POP3, IMAP 등을 역공학으로 접근하다보면, 온몸에 전율이 흐를정도로.. 심플하다; 뚜껑도 열어보기 전에 도전할 의욕을 꺾어버리는 RFC나 Draft 문서를 볼 필요도 없다. 일단 역공학으로 (디스어셈블 수준을 말하는 게 아니지 말입니다 -_-) 전체 흐름을 파악하고 난 뒤 표본 채집을 하기 부담스러운 부분만 표준 문서를 보고 학습하면 엄청나게 시간을 절약할 수 있다.
일단 따라해서 분위기 파악하고 자신감과 흥미를 가진 후, 공부하자는 거다.
나의 역공학적 사고는 초등학교때부터 시작되었다. 수학 시험을 볼 때 사지선다 객관식이라면, 이미 표본 4개를 채집한 것이다. 훈련할 때는 그러면 안되겠지만 (역공학 훈련도 해둘 필요는 있다) 목적이 정답을 찾아 높은 점수를 얻는 것이라면 재빠르게 역공학으로 해치우는 게 편하다. 머리를 안쓰고 노가다만 하면 되니까.
머리 안쓰고 계속 노가다만 하는 것은 대용량(?)이 되면 금방 한계가 드러난다고들 한다. 하지만 노가다 스타일의 역공학을 정말 좋아할 경우, 노가다를 해야 한다는 패러다임은 그대로 두고 노가다를 '빨리' 하는 방법을 연구하면 된다. 노가다를 돕는 도구를 만들고 노가다를 돕는 알고리즘을 만들고 노가다를 돕는 철학과 명언들을 구하여 자신감과 정체성을 형성하고 필요할 경우 노가다를 행하는 주체인 나 자신을 개량하고.
이렇게 살아가면 많은 경험들을 축적할 수 있다. 노가다를 최적화하기 위해 타이핑도 빨라졌고 시간을 단축할 수 있는 것은 모든지 찾아내려 한다. 만약 한계에 부딪혀서 "이건 의지력의 문제야" 로 귀결된다면 의지력을 개선하기 위해 자기개발서를 읽고 그것을 읽어도 해결이 안된다면 좀 더 근원지를 찾아 들어간다. 심리학, 철학 이 과정 자체가 또 역공학이다.
최근 몇년 동안에는 무의식을 제어하려는 버릇 없는(?) 시도까지 했다. 아직 만족스러울 정도까지는 안됐지만, 그동안 투자한 노력이 억울하지 않을만큼 무의식을 제어하는 방법도 얻었다.
주객전도
최근에는 프로그램을 만들기 전에 메뉴얼을 먼저 만든다. 마치 다 완성된 프로그램의 메뉴얼을 쓰듯이 진짜 막 될 기능 안될 기능 넣고 최대한 메뉴얼을 봤을 때 '아 멋있네-!' 정도로 쓴다. 소설 쓰듯이, 내키는대로 멋지게 막무가네로.
그리고 그대로 만든다. 이대로 만들었을 경우 '아 멋있네-!' 가 된다는 것을 알기 때문에 여기서 만들어진 열정은 쉽게 없어지지 않는다. 참 좋은 것은 나중에 프로그램 다 만들고나서 짱-나게 문서 작업 할 필요가 없다는 것! ㅎㅎ
최근 미투데이. 피로가 쌓이고 생활패턴이 완전히 망가져서 M.P. 가 떨어져 미투에 쓸 글이 없다. 그럼 미투에 쓸만한 거리를 찾아본다. 아 찾았다. 그럼 그 행동을 하자. 했다. 좋아 미투에 글 올리자.
생각이 나서 미투데이에 글을 올리는 것이 아니라, 미투데이에 글을 올리기 위해 생각을 한다. 좋은 점은.. 애니웨이- 항상 여러가지 분야에 대해 생각을 하게 되고, 기회에 예민해지는 점이다. 가끔은 '이런거 만들었다' 를 올리고 싶어진다. 포스팅을 하기 위해 프로그램을 만든다. 중학교때부터 이런식으로 살아왔다. 순간순간 정말 재미있게 살아온 거 같다.
요새는.. 내가 미투데이를 하는 게 아니고 미투데이가 날 한다. 미치겠네..--;
철학서에서는 이런 내 삶을 비웃듯이
"입증하면서 사는 것은 더이상 삶을 사는 것이 아니다.** 삶은 순수하고 강인한 아니무스처럼 사는 것이다."**
라고 말하더라.
하지만, 이 포스팅도 내 무의식을 조종하기 위한 하나의 수단이다. 훗-
Comments
10 thoughts shared
xhoto
나도 즐기면서 해야 되는데, 일정이 즐기도록 내버려두지 않네, 아직 안봤다면, 데드라인 한번 읽어보3
역시 고수는 다르군요 ㅎㅎㅎ 형님이 처음 프로그래밍을 접햇을때 어떻게 학습하셧는지 상당히 궁금하군요 역시나 일반적인 방법대로 하진 않으셧을꺼같은데.. ㅋㅋㅋ 그리고 주변지식이 전혀 없는 무엇인가를 학습해야 될 때 좀 더 신나게 학습하는 방법이 없을까요?
일단 따라해서 분위기 파악하고 자신감과 흥미를 가진 후, 공부하자는 거다. 미국 최고의 교수들은 어떻게 가르키는가에도 나온 말과 비슷해연~ 모든 잼있어야 즐거운거죠 ㅋㅋ
Continue Reading
Discover more thoughts and insights
Null Safety 마이그레이션 열반기
Dart 2.12 null safety 마이그레이션하다가 열반에 오를 지경이다. Null safety 아직도 지원 안 하는 의존성 패키지들이 적지 않고, --no-sound-null-safety 옵션 쓰기는 싫어서
문제점 자가분석
스스로 진단한 가장 큰 문제 2개는 불면증과 일중독 일중독이 불면증을 유발시켰다. 일중독이 가장 나쁜것 같다. 일중독에 대해 검색한 몇가지 정의. "몸 속에 있는 에너지가 한 곳으로 집중되면서 자율성을 침해,
인간적인 너무나 인간적인 - 니체
어제 포스팅에 잠깐 등장했던 니체 전집의 7번째 책인 '인간적인 너무나 인간적인'에서 몇몇 문구를 인용해보려 합니다. 호의적인 위장 사람들과 교제할 때에는 흔히 우리가 마치 그들의 행위의 동기를 간파하지 못한