어제 ( 12월 3일 ) 명지대 컴퓨터공학과(현 컴퓨터소프트웨어과) 객체지향 연구실을 중심으로 최성운 교수님과 함께 OB/YB가 모두 모인 자리를 가졌습니다. 가격 만큼이나 상당히 고급스러운 자리였습니다.
오랜만에 뵌 선배님들과 동창들 그리고 후배. 얼굴 잘 모르는 YB 분들도 함께 한 자리였습니다.
예전같으면 서슴없이 카메라 들고 이곳 저곳을 찍으며 기록을 남겼을텐데, 애석하게도 이번 자리에서는 그러지는 않았습니다. 분위기가 어렵거나 힘든게 아니였고, 단지 그런 기록 남기는 짓거리를 하며 귀중하고 멋진 시간을 놓치기가 너무 싫은 그런 자리였습니다. 역시. 교수님. 재치 뿐만 아니라, 그 놀라운 이론적 배경에 더 불어 더욱 막강해진 경험들, 그리고 생각은 시간이 지난 지금에 와서도 또하나 깨닫고 가는 자리가 되어 개인적으로 너무 행복했습니다.
최소한 컴퓨터 관련 일을 몸담기 시작한 그 때부터 지금까지 계속 제 꿈은 Architect입니다.지금은 개인적인 능력과 시간 투자, 그리고 여러가지 주변 여건에 일그러져 있지만, 그래도 역시 마음 속 깊이 새겨진 꿈은 바로 그 Architect입니다.어제 그 말씀이 있으셨습니다. 단순히 Opinion Leader들 및 Lead Developer들이 말하는 비판 가득한 Architect들의 불만이 아닌 그 Architect를 위한 중요한 단계별 메시지를 남겨 주셨습니다. 새삼스럽게 다시 뒤돌아보는 계기가 되었습니다. 그저 막연히 Architect 자질만을 생각하고 비판하던 것을 명퀘하게 해주셨다랄까요.교수님께서 말씀해주신 Architect의 기본적인 배경에는 3가지가 있다고 합니다. 그 부분을 나름 정리해보았습니다.
- 1. 기술, 지식의 Fundamental (배경)
모두의 앞에 서서 설계를 하고, 진행하며, 이야기를 할 중요한 위치에 있는게 바로 이 architect의 위치 입니다. 최소한 뒤쳐지지 않아야 하는 위치인 것입니다. 즉 회사의 임원 처럼 점잔 빼며 뒤에 서서 권위와 위엄을 내세우는 자리가 아니라는 것이죠. 그것을 위한 것은 끊임 없는 학습과 연구라는 것이죠. 기술적 유행에 휩쓸리지 않는 그 기초적인 기술/지식 뿐만 아니라, 새롭게 연구 대두된 기술/지식들 역시 흡수하고 비교하면서 뒤쳐지지 않는 것이죠.
사실 이 부분이 가장 어렵고 힘든일입니다. 그래서 IT 업무는 머리 백발을 해도 계속 공부해야 한다고 하는 것 같습니다.교수님께서도 이 부분을 무척 강조합니다. Achitect가 코딩을 안한다는 것은 어불성설이라고 합니다. 물론 시간적인 여건 상 메인 개발은 무리가 있다는 점은 인정합니다. 하지만 실제 개발하는 감을 잃어 버린 Achitect는 그 설계도 공상속의 설계, 이론적인 설계에 머문다는 것이죠. 어느정도의 감을 익히며 나름 자신있는 언어 하나 즈음으로 그것을 그려보는 것이 좋다는 것입니다. 하지만, 그렇다고 유행에 쫒는 쫒기는 기술에 종속인 기술/지식이 아닌 Fundamental이 중요하다고 하셨습니다.
이 부분에 대한 좋은 예를 백성수 선배님께서 언급해주셨습니다.
윈도우 모바일용 주사위 게임을 하나 만듭니다. 그 개발에 3개월이 걸렸다고 보죠.
개발 과정은 단순히 윈도우 모바일 기술들을 대략 적으로 익히고, 다른 이들이 만든 주사위 게임을 Copy & Pasted로 구성한 뒤, 컴파일 합니다. 그리고 그 속에서 오류가 나는 부분만 대충 수정하고 또 수정한 뒤, Release를 하는 것이죠.
그리고 난 뒤, 이번엔 아이폰용으로 똑같은것을 만든다고 하죠. 그러면 이번엔 다시 아이폰을 공부하고, 다시 그에 관련된 소스들을 무조건 받아와서 컴파일을 하는 것입니다. 그러니 이전에 만드는데 3개월이 걸렸으니, 이번에도 결국 3개월이 또 걸린다는 것이죠. 아이폰 기술을 배우고 똑같이 구현해야 하니 이전 제품과 같이 구현하는데 최소 3개월을 쓸 수 밖에 없다는 것이죠.(심하면 그 이상이 걸린다는 것이죠). 기능적으로, 논리적으로 아무리 똑같아도 마찬가지라는 것이죠.
여기서 의문을 품어야 될 부분이 무엇일까요?
바로 기술에 종속되지 않는 기본 기술/지식에 대한 Fundamental 없이 그냥 단순히 조립/구현에만 신경을 쓴다는 점입니다. 그러니 기능이나 논리가 아무리 똑같아도 플랫폼이나, 도구가 조금만 틀려져도 결국 새로 다시 구현하는 불상사를 일으킨다는 것입니다. 최소한 주사위에 대한 기본적인 동작이나, 의미들에 대한 중심 생각이나 기초적인 기술들에 대한 판단 이 있었다면, 앞서 예 처럼 플랫폼이 바뀌었다고 그와 동일한 또는 그 이상의 시간이나 노력이 들 필요가 없다는 것입니다. 단지 바뀐 플랫폼이나 기술, 도구들에 대한 작은 차이점만 새로 추가로 익혀서 그대로 반영하면 되는 것입니다.이 부분을 고려하지 않으니 매번 완전히 새 판을 다시 짤 수 밖에 없다는 것이죠.
뱅글 뱅글 도는 팽이 판위에 설때, 가장자리에 서게 되면 그 팽이 속도에 맞추기 위해서는 온힘을 다해 미친듯이 뛰지 않으면 계속 뒤로 처지게 됩니다. 만일 그 팽이의 중심에 선다면? 그 속도는 가만히 있어도 맞춰지거나 조금만 도움을 주기만 해도 (남들이 보기에)간단하게 전환이 되는 원리랄까요?
이런 확고한 중심에 서기위해서는 그에 걸맞는 Fundamental을 갖추는게 무척 중요합니다.
- 경험적 배경.
지금 제 나이와 경력을 기준으로 보면, 제가 이 단계인 것 같습니다.
보다 더 다양한 플랫폼, 사이트, 업무들을 접해 새로운 문제들을 접하고, 그에 대응하면서 쌓는 부분입니다. 크게 보면 다른 Achitect들이 그린 그림들을 보고 그 그림대로 구현도 해보며, 저 스스로 그림을 그리고 이야기하며 Process를 접하고 만들고 부수고 해보는 것이겠죠. 작게는 요즘 유행하는 새로운 기술들을 적용해보고 기존 기술들과의 비교도 해보는 것이겠죠. 어려운우면 왜 어려운지, 쉬우면 왜 쉬운지 더 많은 이야기를 나누고 직접 체험하는 것이죠. 그 사이에서 쌓이는 내공은 책이나 강의에서 얻는 그 이상의 것을 얻는 중요한 계기들이 된다는 것이죠. 연구실에서 작은 벤처안에서 했던 경험들이 지금까지 업무를 하는데 중요한 밑천이 된 것만 봐도 경험이라는 것은 중요하다고 봅니다. 또 그렇게 수행한 경험들이 다시 새로운 밑천이 되었다는 것은 다시 언급할 필요도 없이 당연한 것이구요.
앞서 이야기한 팽이 예제가 있지만, 그 팽이의 중심으로 이동하는 계기는 바로 이런 경험이라고 봅니다. 탄탄한 이론적인 Fundamental도 경험이 없다면, 단순히 책을 읽어 주는 레벨로 떨어지거나, 사상누각과 같은 처지라고 봅니다. 더욱이 자신은 팽이의 중심이라고 고집을 부리지만, 실제로는 팽이의 회전에 지쳐 팽이 도는 속도에 맞추어 뒤떨어지고 있는 것입니다. 그 중심으로 향한 노력 부분은 바로 이 경험으로써 채우는 것입니다. 이제 남은 인생동안 제가 갈 수 있는 시간이 얼마나 있는지는 모르겠지만, 더욱 더 노력해야 할 부분이라고 바라봅니다.
더 많은 경험을 오늘 부터라도 더욱 적극적으로 수행하도록 노력해야 겠습니다.
- 정치적 배경.
어렴풋이 저 역시 느끼기는 했지만, 스스로 애써 무시했던 배경입니다. 개인적인 성향상 쉽게 이루기 힘든 부분이기도 합니다. 물론 정치적 배경이라고 해서 국가단위 정치, 정당 단위 정치, 사내 정치의 라인 문제로 결부 시킬 수도 있지만, 그렇게 치부하기 보다 자신을 중심으로 한 세력으로 바라보는 것이라 생각됩니다.
아직 스스로 뛰어들거나 (뛰어 들기보다 회피하는 경우가 많습니다만) 적극적으로 대처하지 않고, 또는 기회가 있더라도 미처 놓치는 경우도 많기 때문에 스스로 경험을 많이 하지 않았습니다. 그래서 오로지 경험으로 느낀 점만 가지고 상상 할 수 밖에 없군요.
하지만 최소한 Achitect가 힘을 내며 업무를 진행하려면 혼자만의 힘으로는 어렵다는 것입니다. 즉 자신을 지지하는 세력이 있고, 그 세력을 기반으로 이야기를 하고, 비전을 제시해야 된다는 것입니다.
설계도를 아무리 아름다고 합리적으로 그려줘도 결국 그에 대한 지지가 없다면 설계도는 휴지조각이 되고, 개발자들의 술안주거리로 밖에는 안될 것입니다. 이를 위해서는 어느정도의 명성도 필요하다는 것이죠.
말을 잘하지도 못하고, 세력을 잘 만들거나 관리하지 못하는 저로써는 벽일 수 밖에 없다는 생각입니다.
하지만 교수님께서는 살짝 희망적인 표현을 해주셨습니다. “시간을 가지고 기술/지식의 Fundamental을 충분히 갖추고 경험을 어느정도 하기 시작하면 하나 둘 자신의 세력을 갖추기 싫어도 갖추게 된다” 하시더군요. 그래서도 갖추지 못했다면 아마도 기술/지식이 부족하거나, 경험 미숙이겠죠?
– 아니면 사회에 아예 적응 불가 정신병을 갖고 있던가.. (笑) -
나이 50먹고도 계속 프로그래밍질이 과연 가능할지는 모르겠습니다. 다행인지 불행인지, 요즘은 확실히 S/W 개발에 대해 회의적으로 생각하는 젊은 친구들을 의외로 많이 봅니다. 아마도 밥그릇은 제가 나이 50될때 까지 있을 것 같다는 생각은 듭니다. 뭐 50먹고도 프로그래밍은 일단 그렇게 하겠지만, 그 뒤도 생각해야겠죠?
그를 위해 Achitect가 되도록 노력해야 될거 같습니다.위의 3가지를 갖추는게 가능할지는 모르겠지만, 갖출 수 있도록 오늘 부터라도 더욱 노력하는 나날을 보내려합니다.
그리고 하나 더.
"컨설팅은 상대방을 설득하는 것이 아니라, 상대방이 잘 할 수 있는 부분을 부각해주고 현재보다 더 잘 할 수 있도록 조언 하는 것이다." 라는 말씀. 마음 깊이 새기도록 하겠습니다.
이건 IT 뿐만 아니라, 생활 그 자체에서 쓰일만한 중요한 한마디셨습니다.
여튼 다양한 공간에서 다양하게 인정받고 활동하시는 교수님, 선배님, 동기님, 후배님들을 오랜만에 뵙는것은 좋았습니다. 다음에는 저 스스로도 더욱 나아진 모습으로 나서도록 노력해야겠습니다.
PS. 그나저나 저는 성수형 차 타고 편하게 왔는데요, 다른 분들은 어찌하셨는지 모르겠습니다. 날도 무쟈게 추웠는데요. 설마 3차 가셨나요?
PS2. 교수님, 저의 결혼 1달 전 및 1주 전에 제가 다시 연락드리도록 하겠습니다.(笑)
PS3. 성수형 감사합니다. 성수형 말씀 듣고 옴니아2를 고집하는 용기(?) 가질 수 있었습니다! 그 버그성 Qwerty 키보드 띄울 수 있으면 꼭 연락주세요! (笑)