개발자 오디세이아 1편
산다는 것은 서서히 태어나는 것이다. - 생텍쥐베리
‘개발자Developer’라는 말은 이 업계에 있는 사람들에게는 통상적인 단어지만, 보통의 사람들에게는 생소하게 다가올 수 있다. IT업계에서나, 이 책에서 언급되는 개발자는 보통 소프트웨어 개발자를 이야기하지만 사실 개발자라 함은 소프트웨어 개발자이거나 하드웨어 개발자, 혹은 이 둘을 아우 르는 시스템 개발자일 수도 있다. 개발자를 포괄할 수 있는 상위 개념의 명칭으로는 엔지니어Engineer가 있고, 그 위로 과거만 하더라도 신성치 못한 단어 취급을 받았던 공돌이라는 호칭도 있다. 이 모두가 소프트웨어를 개발 하고 있는 이들을 일컫는 이름들이다. 한평생을 함께 살아가는 이름이 자신의 의도와 상관없이 태어나면서 주어지듯이, 개발자를 규정하는 이름은 프로그래밍 언어와 최종 산출물에 의해 정해지게 된다. “저는 자바 개발자입 니다.”, “저는 안드로이드 개발자입니다.”, “저는 셋톱박스 펌웨어 개발자입니다.” - 이것이 개발자 세계에서 개발자들이 자신을 소개하는 방법이다. 지금 일하고 있는 바로 그것이 당신의 이름인 셈이다. 많은 경우 첫 번째 직장 또는 이전의 준비 단계, 즉 대학(원)이나 학원에서 그 이름이 정해지게 된다. 적지 않은 개발자들이 새로운 도전과 경험을 통해 또 다른 이름을 얻거나, 기존의 이름을 버리고 전혀 새로운 이름을 얻는다. 하지만 그보다 더 많은 이들이 처음 얻었던 이름과 프레임에 갇힌 채 천형과도 같은 개발자의 삶을 이어나간다.
<오디세이아>에서 오디세우스의 고난은 시칠리아 해변에서부터 시작된다. 오디세우스는 동료들과 함께 폴리페모스라는 외눈박이 거인(키클롭스Cyclops)에게 붙잡히게 된다. 폴리페모스는 양을 기르면서 사람을 잡아먹 는 괴물이었다. 그는 오디세우스와 동료들을 동굴에 가두어놓고 매일 두 사람씩 잡아 먹었다. 오디세우스는 꾀를 내어 폴리페모스에게 자신의 이름을 ‘아무도 아니(No one)’로 가르쳐주고, 포도주에 취하게 만든 다음 잠들어 있는 폴리페모스의 외눈을 나무창으로 찌른다. 장님이 된 폴리페모스가 소리를 지르자, 동료 키클롭스들이 도와주러 달려 왔고, 동료들은 폴리페모스에게 눈을 찌른 자가 누구인지 물었다. 폴리페모스는 자신을 이렇게 만든 이는 “아무도 아니(No one).”라고 대답했고, 동료 키클롭스들은 그냥 돌아가 버렸다.
오디세우스와 동료들은 아침이 되자, 폴리페모스가 키우는 커다란 양 들의 배 밑에 달라붙어 동굴을 빠져 나온다. 가까스로 배에 올라타서 섬을 떠나게 된 오디세우스는 큰소리치며 폴리페모스에게 약을 올렸다.
“누가 당신의 눈을 멀게 한 것인지 물어보면, 도시의 파괴자 오디세우 스라고 말하시오!”
분노에 휩싸인 폴리페모스는 오디세우스의 진짜 이름을 듣게 되자, 자신의 아버지인 바다의 신 포세이돈에게 오디세우스가 고향으로 돌아가지 못하게 만들어 달라고 간청한다. 포세이돈은 폴리페모스의 기도를 들어주었고, 비로소 오디세우스의 험난한 여정이 본격적으로 시작되게 된다. 이름이 없던 이가 하나의 이름을 얻게 되면서 고난의 여정이 시작된 것이다. 오디세우스는 포세이돈이 쏟아 붓는 10년간의 혹독한 시련을 견뎌내면서 원 래의 이름이었던 ‘도시의 파괴자’에서 ‘귀향하는 바다의 항해자’라는 새로운 이름을 얻게 된다.
결국 오디세우스가 자신의 진정한 이름이라고 생각했던 ‘도시의 파괴자’는 일시적인 이름에 지나지 않았다. 트로이 전쟁에서 오디세우스의 명성은 명장 아킬레우스나 트로이의 용장 헥토르에게도 미치지 못했다. 조연이었던 셈이다. 그러나 10년 간의 귀향을 통해 그는 주연으로 거듭나게 된다. ‘귀향하는 바다의 항해자’가 오디세우스의 진정한 이름이 되며, 그를 영웅의 반열에 올리게 되는 상징이 된다.
자바 개발자, 안드로이드 개발자는 개발자로서 궁극적인 당신의 이름이 될 수 없다. 안드로이드 프레임워크Framework 개발자라는 보다 전문적인 이름 역시 불충분하다. 개발자의 삶이 끝날 때까지 자바 개발자, 안드로이드 개발자로 남을 수 있다고 생각하는가? 태어나면서 이름은 주어지지만, 개발자로서 우리는 자신의 이름을 찾아야 한다. 그것은 지금의 이름이 임시적이며 일시적이라는 것을 인정하면서부터 시작될 수 있다. 언젠가는 ‘안드로이드Android’가 ‘안드로메다Andromeda’로 대체되고 ‘자바Java’가 ‘잠바Jamba’ 로 대체된다(안드로메다와 잠바는 필자가 멋대로 지은 허구의 용어이다). 핵심에 접근하는 것이 필요하다. 가령, 안드로이드는 리눅스Linux에 기반을 둔 플랫폼이므로 전문성과 원천기술로 승부하고자 한다면 리눅스부터 들여다 보는 것이 좋다(리눅스는 다시 유닉스Unix로 연결된다). 또한 자신의 성향 역시 잘 알고 있어야 한다. 오디세우스가 전쟁과 파괴에 자신의 장점이 있다고 으스댔지만, 결국 그의 영웅성은 항해와 모험에서 비롯된 것처럼, 개발자로서 의 성향은 개발을 하면서 겪는 여러 가지 경험을 통해 더 명확히 드러날 수 있다.
개발자로서 지금 필자가 가지고 있는 이름은 여러 가지다. 임베디드 소프트웨어 개발자부터 셋톱박스 펌웨어 개발자, 그리고 안드로이드 개발자까지 다양하다. 그 어떤 이름도 궁극적으로 내가 불리우고픈 이름들은 아니 다. 그 어떤 명칭에도 나를 대변하는 고유함은 들어 있지 않다.
개발자로서 내가 얻고자 하는 이름은 ‘소프트웨어개발문화전문가’다. 생소할 것이다. 이런 명함을 가졌거나 그렇게 불리는 사람을 여태 본 적이 없으니, 아직은 유일무이한 이름이다. 처음 개발자의 삶을 시작하면서부터 이 명함을 꿈꾸었던 것은 아니다. 그동안 개발자의 여정을 통해 내가 가고자 하는 지향점이 생긴 것이다. 인생은 진정한 자신의 이름을 찾는 과정이 다. 태어나면서부터 주어지는 이름은 단순한 호칭일 뿐 진정한 자신의 이름이 아니다.
자신만의 이름을 찾는 방향은 보다 전문성을 살리는 길이 될 수도 있 고, 경험과 개인적인 선호를 기반으로 전혀 다른 분야에 기존의 전문성을 결합시키는 형태도 될 수 있다. 풍부한 경험과 통찰력이 있다면, 서로 다른 두 분야를 접목시키는 크로스오버로 갈 수도 있다. 리눅스 커널의 메모리 관리 전문가가 되든지, 소프트웨어개발문화전문가가 되든지 어떤 경우든 자기만의 고유한 이름을 찾기 위한 노력이 필요하다. 또한 그 노력은 오랜 여정 동안 지속되어야 한다. 10년 후에 불렸으면 하는 이름이 명확히 있다 면 그것이 당신의 원래 이름이다. 지금 불리는 이름에 대한 의심과 성찰로 부터 진정한 개발자의 항해는 시작될 수 있다.
졸저 <개발자 오디세이아> 가 책으로 나왔습니다. 개발자들의 애환과 희망을 담으려 최선을 다했습니다. 많은 사랑 부탁드립니다^^