Adieu 2007 年

항상 한 해를 보낼때는 모두들 다사다난 했다고 이야기 한다. 30년을 살아오면서 어느 한해도 다사다난 하지 않았던 해가 없었고, 앞으로도 항상 그러할것이다. 2007년을 정리 해보면 나에게 있어 특별한 이벤트나 업적을 남기는 즐거운 일들 보다는 나에게 있어 부족한 것이 무엇인지, 또 내가 원하는 것이 무엇인지를 돌이켜 보는 한해가 아니었나 한다.

개발이라는 것에 대하여

내가 개발을 선택 했던 이유, 자동화 도구라는 것을 통하여 사용자가 좀 더 편리한 삶을 영유 할 수 있도록 도움을 주는 도구를 만드는 것. 그리고 그러한 도구는 생활 속 영감을 통해 만들어진다는 생각의 축이 무너지는 한해가 아니었나 한다.  어떻게 보면 내가 개발을 선택 했던 이유를 확실히 버리게 된 한해였다.  그 개발의 명분은 누가 봐도 그럴싸하지만 마치 언젠가는 반드시 만들어질 프라모델 키트를 좀 더 이쁘게 만들어내는 것에 지나지 않는다. 내가 개발에 발을 들여 놓은 동기를 무시하는 것이 아니라 좀 더 고급 개발자가 되고 메니져로서 발전 하기 위해서는 좀 더 다른 모습의 내가 필요하다는 생각을 하게 되었다.

올해는 단지 프로모델을 조립하는 개발이 아니라 좀 더 사용자에게 필요한 것을 창조하는 것을 탐하고 그러한 창조에 필요한 더 소중한것들을 느끼게 되는 기회였다. 단순히 개발자의 고유영역의 변화만 바라 본다면 나에게 있어 2007년은 그나마 Windows Device Driver라는 영역에 머물러 있던 나를 Embedded 영역까지 끌어 내려 버렸고 특정한 기능을 구현 하기 위한 기능 조립이나 OS의 뻔한 이슈들을 벗어 나서 Embedded 상에서 현재 우리가 사용하는 Device의 성능을 향상 해주기 위해서 Pipelining이나 Interleaving를 어떻게 디자인 해야 하는지에 대한 고민과 OS가 없는 환경에서 실제 OS가 해야 하는 뻔한 이슈들이 어떻게 구현 되는지를 좀 더 디테일하게 보았고 구현을 위해 알려진 알고리즘 보다는 ARM Family에 대한 이해와 우리가 사용해야 하는 Platform에 대한 이해도를 더욱 종요시 하게 되는 System Engineer영역으로 들어오게 된 시간이 되어버렸다.

pp002

새로운 영역에서는 기존 내가 즐겨 하던 일들을 할 수 없었다. Software Engineering에서 이야기 하는 Software의 특징을 잘 갖춘 throughput을 만들어내는 과정이 개발이라고 언제나 생각 해온 나에게 있어서 부족한 RAM과 오래된 Platform을 통해 속도 개선을 해야 하는 환경속에서 기존에 만들어진 솔루션은 한없이 떨어지는 Reusability와 Maintenance를 가진 것 뿐만 아니라 개발에 있어서 아무런 정책이 없는 Firmware처럼 보였다.  하지만 Software Engineering에 있어서 단지 Reusability와 Maintenance를 가진 Software를 만다는 것이 실제 개발이라고 볼 수 있을까 하는 부분을 생각하게 해본것도 2007년이다. 1%라도 Performance 향상을 위해서 좀 더 Platform을 제대로 이해하고 그 Context에 맞는 Software를 만드는 것이 얼마나 중요한 일인가를 생각 해볼 필요가 있다. 그러한 밑바닥 개발은 남들과 다른 눈을 가지고 있어야 하고 좀 더 패닉에 빠지지 않도록 배경 지식을 풍부하게 해야 한다.

내가 근무하는 곳은 다른 곳 보다 확실히 학술적 이슈들이 많고, 그러한 학술적 이슈가 실제 Product에 적용되는 예가 많기 때문에 그 동안 Software를 바라 봐 왔던 시각을 완전히 바꾸게 되었는지는 모르겠으나 Software Engineering의 궁극적인 목표가 Quality가 좋은 소프트웨어를 만드는 것이라면 단지 Reusability와 Maintenance를 향상 하기 위해 기존의 알려진 아키텍트를 고집하여 Firmware의 질을 낮출 필요는 없을 것이다.

2008년에는 내가 삼성에서만 겪을 수 있는 일들에 대해서만 접근을 해볼 생각이다. 언제나 그랬듯이 필요함을 느끼면 배울 수 있고, 배울 수 있으면 응용하여 뭔가 새로운것을 만들어 낼 수 있다.  문제는 얼마나 필요함을 느꼈는가인데, 나에게 있어서 2007년이 어느정도 필요함을 느끼게 해준 한해였기 때문에 2008년에는 좀 더 배울 수 있지 않을까 한다. 다만 아직까지도 Software Engineering에서 이야기하는 재미있는 Software만의 이슈들은 어릴적 가지고 놀던 레고 블럭들 처럼 머릿속에 산산히 흩어져 있어 미련을 버리지는 못하겠다. 언젠가 System Engineer로서 자리가 확고해지면 그때는 머릿속에 흩어진 레고 블럭들을 다시 조립할 기회가 오지 않을까 한다.

수학적인 사고에 대한 고찰

  본의 아니게 책장안에 덮어둔 John bentley가 쓴 Programing pearls을 다시 봤을때, 실무에서 느꼈던 산술적이거나 수학적인 사고에 대한 접근에 대해서 다시 한번 심각하게 생각해볼 수 밖에 없었다. Programing pearls에 보면 스트링을 처리 하기 위해 저글링에 대한 접근 문제가 있는데 이를 풀기 위해 단지 사실을 논리적으로 나열 하는 것만으로는 문제를 해결 하는것은 깨끗한 해결책을 제시 하지 못했다. 학부 시절, 알고리즘 수업 도중 ACM의 오래돈 고전 문제인 flip flop에 대한 레포트 프로그램을 작성 하여 자동화 툴에 넣고 프로그램의 결과를 확인 한적이 있는데 그 당시 내가 느꼈던 것은 주어진 문제의 정의를 휴리스틱하게 접근하는 것이 얼마나 위험한가를 느꼈던 것이었다. 모든 상태를 Tree에 넣고 단순히 뒤지는 작업을 논리적인 의사코드로만 만들어 낼 수 있어도 복잡해지지 않는 문제를 나는 너무 복잡하게 접근 한적이 있다.

이에 반하여 저글링에 대한 문제는 사건의 논리적 접근 보다는 수학적 사고에 대한 접근이 좀 더 명쾌한 해결책을 제시해준다는 영감을 준 문제였다. 이 문제의 해결책에서는 저글링을 통해 만들어낸 프로그램에서 소수(Prime)가 의미하는 바가 무엇인지를 설명하라는 내용이 있는데 이러한 문제에 대하여 수학에서는 이미 Coset으로 정의 하고 있다는 것을 넌지시 이야기 해준다. 그러한 Coset은 단지 Programing pears에서 간단한 프로그램 문제만을 해결 하는데 있어서 중요한 키가 되는 것이 아니다. Flash Software를 개발하면서 가장 많이 겪게 되는 것이 주소 기반의 입력인데 이러한 주소기반의 수열 속에서 점화식을 찾아낸다는 것은 어떻게 보면 단순한 사건 나열식의 개발 보다 훨씬 의미 있는 일이며 그런한 개발 방식을 통해서 좀 더 사용자에게 편리를 줄 수 있는 프로그램들을 만들 수 있을 것이다. 수학적 지식에 대한 목마름은 단순히 내가 잠시 실수를 했을때의 시간속에서 놓쳐버린 컴플렉스를 떠나 실제 개발에 있어 더 없이 필요함을 느끼기 때문이다. 또 그만큼 재미 있기 때문일 것이다.

pp001 

2008년, 아쉽게도 수학에 대한 흥미를 만족 시킬수 있도록 본격적인 시간 투자는 할 수는 없을 것 같다. 정확히 이야기 하면 수학에 대한 흥미를 해결 하는 것 보다 그 전에 해결 해야 하는 많은 미숙한 내 개인적 자질들이 많이 남아 있다. 올해는 더욱 더 기본이 되는 자질 문제를 해력하는데 선택과 집중의 시간을 보내야 하지 않을까 하는 생각이 든다. 하지만 2008년은 2009년을 위해서 준비하는 한해인 만큼 수학에서 느낀 흥미를 차후에 맘껏 배우고 그 즐거움을 누릴 수 있도록 그 밑거름이 되는 것들 부터 확실히 다져야 할 것이다.

개인 역량에 대한 갈증

  자신을 가장 많이 아는 것은 자신일 것이다. 나이가 들면 들 수록 자신에 대한 단점이 많이 보이는 것 같다. 언제나 후회 없이 사는 것이 내 가치관 중에 하나였고,어릴적 잠시 내 미래에 대하여 외도를 했을때, 그때도 그때만이 얻을 수 있는 값진 경험을 얻었다고 생각 하고 있다. 하지만 하고 싶은 것들이 많고, 또 해보고 싶은 새로운 일들에 대하여 뭔가 수행을 하려고 하면 언제나 걸리는 것들이 내가 가진 역량의 문제이다.

pp005

벌써 3년전이라는 시간이 되어 버리고 있지만, 학교를 졸업할때만 해도 우수한 성적이었고, 컴퓨터 자체에 대한 관심은 아니었지만 생활적인 이유에서 꼬박 꼬박 장학금을 받고 다니던 시절의 나를 아는 사람들은 현재의 생활 사에 대해서도 칭찬을 아끼지 않는다. 하지만 그 사람들 보다는 내가 나를 더 잘 알지 않겠는가? 아직 까지도 미뤄 놓고 있는 것들, 언제 쯤 정말 해볼려고 미루고 있는지도 모르는 무지의 덩어리들이 부끄러울 뿐이다. 단순히 경제적인 이익을 얻어서 무언가 다를 것을 할것이 아니라 개발을 계속 하려고 한다면 적어도 고급 개발자로서 다시 태어날 수 있는 역량 변화가 있어야 하며 2008년은 그에 대한 준비를 다지고 이제까지 미루어 놓고 있는 무지의 덩이의 청산을 시작해야 한다.

2007년은 이러한 나의 역량 부족을 절실히 느끼게 해주었다. 학문이나 학술적으로도 내가 부족한 부분이 어떠한 문제를 가지고 있는지에 대하여 확고하게 해주는 해였으며 자신의 의견을 피력하기 위해 산술적인 데이터와 논리적 흐름을 갖추는 것 이외에 어학에 대한 기본적인 갈증까지, 2007년은 계속 나에게 있어서 부족한 부분을 지적해주었다. 주기적으로 나에게 갈증을 느끼게 해주는 해가 있는데 올해는 좀 더 성숙하고 차분하게 나의 역량에 대한 갈증을 심하게 느끼게 해준 한해가 아니었나 싶다. 2008년은 새로운것을 만들어내가나 획기적으로 변화할 일은 없을 것이다. 왜냐하면 단지 갈증을 느꼈던 부분에 대해서 갈증을 풀어주기 위해 준비를 하는 단계일테니 말이다. 내가 올해 느꼈던 갈증은 생각 보다 오랬동안 내 속에 숨겨 놓았던 것들이라 올해를 넘어 당분간 몇년동안은 계속 갈증을 풀어주기 위해 투자해야 할지도 모르겠다.

 

서른의 전후가 되는 2008 年

서른이란 단어가 그렇게 생소하지는 않다. 노래 제목에 서른이란 단어가 흔하게 나오 듯이 인생에 있어서 어떻게 보면 큰 전환점이며 누구나 생각 해볼 수 있는 나이기 때문이다. 하지만 그렇게 여러번 생각 해보았지만 서른이란 단어는 생각 보다 임팩트가 크다. 서른이라는 단어에 있어서 내 20대를 돌이켜 보면 군대를 마치고 나온 20대 초반에는 그 보다 어릴적에 잘 못 했던 일들을 바로 잡고 후에 학교를 다닐 수 있는 준비를 한다고 바뻤고, 20대 중반에는 20대 초반에 할 수 있는 자유로운 개발이나 대회를 쫓아 다니기 바빴고, 20대 후반에는 20대 중반에 고민할 법한 여러가지 갈증들을 느끼기에만 급급했다.

최근에는 머릿 속으로 생각만 하고 있던 많은 갈증과 갈등들을 본의든 타의든 간에 실제 내 내면에서 끌어내는 일이 있었다.  자칫 머릿속에서 삭아 잘 못하면 사라 질 뻔 했던 갈등과 갈증들은 이제는 내가 해결 해야할 주된 일중에 하나로 자리를 잡았다. 어지럽혀진 머릿 속을 정리하러 부산에 내려가서 이런 저런 조언을 들어봤지만, 다들 걱정의 눈 빛을 감출 수 없었다. 마치  스펜서 존슨이 쓴 글로벌 베스트 셀러인 "누가 내 치즈를 옮겼을까?" 의 새로운 길을 나서는 미로 앞에 서 있는 허를 바라 보는 햄의 눈 빛들이지만 유한한 치즈를 마냥 먹으면서 현재에 안주 할 수는 없는 것이 아니겠는가. 치즈 덩어리가 있는 방을 찾고서 새로운 치즈를 상상 하게 되는 것이 나의 20대였다면 30대의 시작은 실제 미로 속으로 들어가야 하는 것이 내가 해야 하는 첫걸음임은 확실 하다.

 pp003

그런 의미에서 2008년 올해 한 해는 미로에 첫걸음을 움직 일 수 있도록 내가 가진 운동화를 손질 하고 내 머릿 속에 목표를 확실히 하는 준비의 한해가 되어야 할 것이다. 변화를 가질 수 있다는 것과 그 변화를 느끼고 대처 할 수 있다는 것에 대하여 나는 항상 감사함을 느낀다. 서른을 맞이 하면서 여러가지 생각들과 고민들을 통해 바로본 나선의 본질은 결국 풀릴 것이다.

'Personal > Diary' 카테고리의 다른 글

Dreams  (0) 2008/04/09
바람이 불어 오는 곳, 그 곳으로 간다.  (0) 2008/03/24
개발자로서 살아남기 위한 2008년  (0) 2008/01/01
현실과 꿈의 사이에서..  (0) 2007/10/13
SUN  (0) 2007/10/03
창조적 고통을 즐긴다.  (2) 2007/09/17