2009년 04월 03일
리버싱과 기록의 단편
업무 특성 상 리버싱을 많이 하게 된다. 리버싱 한 정보를 토대로 유용한 정보를 얻고 그것을 이용하여 어둠의 작업(?)을 하는 것이다. 리버싱이 다 그렇듯 정공학의 바탕이 깔리지 않으면 상당히 삽질을 많이 하게 되는데 나 같은 경우가 이에 속하다 보니 매일 삽질의 연속이다. 어떤 대상을 만나든 쉽게 되는 법이 없으니 나 스스로도 문제라 느껴진다. 뭐 어째튼 리버싱 자체가 결코 쉬운 것은 아니니 그런 점에서 위안을 삼는게 고작이다.
어셈블리 코드의 바다를 헤매다 보면 때때로 내가 어디쯤 흘러가고 있는지 모를 때가 많다. 어디서 시작했고 지금 어디로 흘러가고 있는지... 처음부터 지도를 그리며 오지 않아서 마치 바다 위를 표류하는 조각배가 된 마냥 코드 위를 두둥실 되다가 결국은 모든 것을 리셋(reset)해버리고 만다. 머리가 좋은 고수들은 따로 자취를 남기지 않더라도 머리 속에 기억하고 있을지 모른다. 한눈에 자기가 가야할 방향을 떠올리며 신들린 듯한 손놀림으로 단번에 원하는 정보를 빼내지 않을까? 휴... 그런 생각만 하면 내 자신이 점점 초라해져간다는 생각을 떨칠수가 없다. 아마도 그 "내공"이란게 나에겐 많이 부족한가 보다.
그래서 리버싱을 하면서 기록이 필요하다고들 한다. 나도 그렇게 생각한다. 내가 지나온 코드들에서 유용한 정보를 기록하고 이를 연결하는 과정, 마치 곰이 쑥과 마늘을 먹고 웅녀가 되는 태고의 아픔을 겪어야지만 하나의 완성된 코드의 지도를 얻을 수 있을 것이다. 하지만 그것이 어째 그리 말처럼 쉬운일이랴? 지도를 그리는 시간이 2시간 3시간 하루.. 이틀 흐르다 잘못된 길이란 것을 깨닫거나 그것도 알지 못할 때에는 명치 근처에서 뭔가 뜨거운 것이 올라와 내 머리속을 흐틀어놓는다. 속이 매스꺼워짐을 느낄때도 있다. 바로 스트레스다.
그래도 기록은 계속 되어야 한다. 코드는 유한하며 언젠가 끝은 있다. 다만 방법의 효율성만이 그 유한함의 끝을 잡아챌 시기를 결정하는 요인이다. 끊임없는 스트레스와의 싸움 속에서 그래도 내가 믿을 것은 기록이며 기록을 증명하는 테스트코드들이다. 기록 속에는 내가 코드와 싸움을 한 상처가 있고 좌절의 몸부림이 있으며 기쁨의 환희가 있다. 이어지지 않은 기록들은 이렇게 나의 흔적들을 함께 담고 있다. 그리곤 최후에는 완성된 하나의 기록으로 탄생해서 내 앞에 나타날 것이다.
어째튼, 이런게 두서없이 읍조리는 것도 결국 내 기록의 단편을 만듬이요 스트레스의 배출구가 되도록 한다.
# by | 2009/04/03 18:23 | 잡생각 | 트랙백 | 덧글(4)






이 구절 정말 리버싱 세상의 심오함을 느끼게 해줍니다!
힘내셔요! ^^
가슴이 뭉클하네요. 저는 노트패드를 띄워서 끝없는 Inside function 을 기록하며
"언젠가 함수의 끝은 있다" 를 외칩니다. 좋은 글 잘 보았습니다 : )