흔히 말하는 소프트웨어 엔지니어들은 어느 업무를 하고 있을까? 그리고 13년이라는 긴 시간동안 한 길만을 걸으려면 힘들지 않을까? 시니어 소프트웨어 엔지니어 백영곤님의 이야기를 한 번 들어보자
처음 소프트웨어 엔지니어를 하게 된 동기가 무엇인가요?
대학시절 우연히 기술 서적 사이에 섬 이름 같기도 하고 상큼한 커피 이름 같기도 한 자바라는 이름이, C 밖에 몰랐던 제 머리 속에 들어왔어요. 무엇인지 꼭 한번 맛을 해봐야겠구나 하는 생각이 들었습니다(웃음). 문양도 커피잔에 김이 모락모락 나는 그 맛있는(?) 자바와의 그 긴 인연에 시작일 줄은 꿈에도 생각 못했지만…. 그게 시작이었습니다
준비하면서 특별한 기억이 있으시다면…?
준비했다고 하기보다는 회사가 저를 준비시켜주셨죠(웃음). 그때 시작한 언어가 자바였는데 개발에 문외한 저에게 들어가자마자 서블릿, 분산환경을 위한 코바, 애플릿 그리고 아파치 JServ 설치에 서버환경 잡기, UML 등을 다루게 되었어요. 비주얼 베이직이나 델파이 같은 소위 4GL(4th-Generation Propramming Language)로 주로 개발하던 그 시기였어요. 그 당시에 이 분야의 동기 부여를 해준 자바를 하게 되었다는 것과 분산환경, 그리고 태동기의 모델링 언어인 UML을 만나는 행운을 얻었죠. 신기한 건 자바라는 그녀와 운명적인 재회였다고나 할까요? (웃음)
오랫동안 한 분야에서 일을 하셨는데요?
회사 선배가 한 말 중에 제 인생의 화두가 된 말이 있어요. “너는 뭘 잘하는데?” 지금까지도 계속 이 말을 곱씹어 봐요. 과연 나는 엔지니어로서 뭘 잘할 수 있을까? 하고요. 옛말에 ‘아는 것은 좋아하는 것만 못하고 좋아하는 것은 즐기는 것만 못하다’ 라는 말이 있죠. 어떤 때는 즐기고 있는 제 자신을 보면 너무 기쁘다고 할까요? 물론 항상 즐기는 것은 아니지만 뭔가 이루어내고 창조해 낸다는 즐거움이 저를 잡고 안 놔주는 것 같아요.
과거로 돌아가셔도 이 일을 선택하시겠어요?
좀 다른 말이긴 하지만 지금 이 기술력과 경험치를 그대로 가지고 처음으로 돌아가서 시간이 흐른 후 스티브 워즈니악 같은 대단한 사람이 되어 있지 않을까 하는 상상을 해봐요. 그런 상상을 한다는 건 당연히 또 이 일을 선택한다는 것이겠죠?
앞으로의 목표나 꿈이 있다면?
10년 만에, 이제야 제 나름의 방식이나 생각을 가지고 소프트웨어 개발을 할 수 있겠구나 하는 확신이 들더라고요. 오랫동안 살아남아서 사랑 받는 소프트웨어를 만들어 보는 일을 하는 것이 제 꿈이에요. 예를 들면 우리나라 사람이 자기 딸의 이름을 따서 만든 MINA라는 아파치 오픈 소스 프로젝트가 있는데 아파치가 자랑하는 유명한 프로젝트 되었거든요. 이와 같은 소프트웨어를 개발하고 싶어요.
담당하시는 업무에 대해서 설명 부탁 드리겠습니다.
네비게이션과 같은 제품개발도 해보았지만 주로 해왔던 일은 공공 SI 프로젝트 개발이에요. 공공SI프로젝트란 공공사업에서 발주되는 프로젝트를 제안단계부터 참여해서 수주하고, 프로젝트를 수행하는 업무인데, 그 안에서 주된 업무는 GIS/ITS/LBS 관련 프로젝트 제안하고 개발하는 일을 했어요.
이 업무를 하기 위해서 필요한 능력이나 스펙이 있다면 어떤 것이 있을까요?
개발을 잘해야 하겠지만, SI에서 소프트웨어 개발이라는 것은 개발 그 자체만을 가지고 따질 수는 없습니다. 프로젝트의 성격을 파악하고, 사용자가 이 프로젝트에서 무엇을 하고 싶어하는지 읽어내는 능력도 있어야 하고, 해당 프로젝트에서 개발할 내용을 파악하고 어떤 식의 개발 구성(아키텍처)으로 가져가야 할까 따져보기도 해야 하고, 고객에게 우리가 만들어야 하는 구체적인 시스템의 모습을 이해시켜야 하는 분야이죠. 이 모든 일을 혼자서 다 처리하지는 못하겠지만, 때에 따라서는 소프트웨어 개발자, 소프트웨어 분석가, 프로젝트매니저, 소프트웨어 아키텍트 및 소프트웨어 컨설턴트가 되어야 할 상황들이 있습니다. 다 하지는 못해도 두루 알고는 있어야 하겠죠. 그래서 초/중/고급 개발자로 나뉘어지는 것이기도 하구요. 만약 '처음 시작하기 위해서는 어떻게 해야 하나요?' 라고 누가 묻는다면 일단 경험해 보라고 얘기하고 싶어요. 두껍고 딱딱한 책에서 나온 내용을 암기한다고 자기 것이 된다고는 생각하지 않습니다. 부딪쳐 봐야 하겠죠 단, 부딪칠 기회를 얻고 싶다면 당연히 개발은 해봐야겠지요.
기억에 남는 업적이 있다면?
제주 텔레매틱스 시범도시라는 사업을 했었어요. 제안부터 개발 운영까지 한 프로젝트인데, 제 주관적인 생각으로 텔레매틱스라는 것의 핵심은 차량과의 정보공유라고 생각하는데 그러기 위해서는 프로토콜이 필요하다는 것이 프로젝트의 핵심이었죠. 차량용 프로토콜 설계, 서버 시스템 설계 및 구현 거기에 서버관리도 했었어요. 2005년 당시 텔레매틱스라는 용어가 신조어였고, 유럽에서 표준도 구조용 프로토콜 밖에 없어서 이 시범 프로젝트를 계기로 세계 텔레매틱스 시장에 표준이 되는 프로토콜을 설계하자는 것이 주된 목표였어요. 그리고 그 인연으로 소방 방재청 AVL이라는 시스템도 하게 되었고요 그러면서 자연적으로 내비게이션 분야를 접하게 되는 기회가 되어 관련 소프트웨어도 개발하게 되었는데 인생에서 조그만 전환점이었다고 할 수 있겠네요.
어려웠던 경험이 있으시다면 어떤 것이 있을까요?
사실 힘든 일이 많았지만 그걸 일일이 말하기는 그렇고 논리적인 말씀을 드리면 SI 프로젝트 개발에서의 논리는 단순합니다. 프로젝트가 시작되면 사용자가 정해놓은 기간 안에 사용자가 원하는 시스템을 잘 만들어서 인도할 수 있느냐의 문제이죠. 서로가 같은 눈높이를 가져야 한다는 것과 만들어야 하는 시스템과 만들고 싶은 시스템의 차이를 이해시켜야 하는 것이 정말 어려운 부분이에요. 특히 막무가내의 고객이라면 이런 부분이 더 힘들어지는 것 같아요.
엔지니어의 매력이 있다면 어떤 것이 있을까요?
아이가 첫 걸음마를 뗄 때 잘 걸을 수 있을까 걱정하듯이 소프트웨어 개발 프로세스에도 그런 순간이 있어요. 과연 잘될까 하는 걱정이 되죠. 그런 걱정이 있어도 잘 구동이 되어 누군가가 내가 만든 것을 잘 쓰고 있을 때 ‘내가 만든 건데…’ 하고 말 못할 비밀을 가지면서 자기만족으로 웃을 수 있는 것이 아닐까 생각해요. AVL이라는 시스템을 하고 난 후에는 소방차나 구급차가 지나갈 때 한번씩 고개를 쭉 빼서 보게 되요. 우리 팀이 그때 만든 시스템을 가지고 다니나 싶어서요. 내비게이션 개발 때는 주로 경로탐색과 안내 쪽을 했었는데 택시기사님들이 경로가 별로라고 다른 내비게이션보다 못하다는 소리를 듣고 속으로 ‘잘만 돌아가네 뭐’ 하기도 했어요. (웃음)
업무를 하실 때 중점을 두는 부분은 어떤 것인가요?
내가 이 프로젝트에서 어떤 역할을 맡아야 하는가가 중요한 것 같아요. 사실 저도 오랫동안 이 일을 한 경험자니까 제가 어떤 부분을 맡아야 하는지, 그리고 그 부분이 내가 가장 잘 할 수 있는 부분인지를 파악하죠. 아까 말씀 드렸듯이 개발자, PM, 아키텍트, 소프트웨어컨설턴트, 개발 PL 중에 어떤 임무를 더하고 덜해야 하는 것에 대한 판단을 세우는 것이죠. 이런 판단을 하려면 가장 선행이 되어야 하는 것이 창의성이라고 생각합니다. 스스로가 창의적인 생각을 가지고 유연하게 대처를 해야 한다고 할까요? 그리고 소프트웨어 개발을 하기 위해서 가장 강조되어야 할 부분이 아닐까 합니다.
그렇다면 창의력을 가지기 위한 노하우가 있다면 어떤 것이 있을까요?
앞으로 기술 동향이 어떻게 될 것인가를 체크하고 외국 기술 서적이나 인터넷 기술지 같은 것들 것 보긴 하는데 헤드라인만 자주 봐요. 안에 내용은 머리 아프니까 정말 필요하지 않으면 안보고요. (웃음)
지금은 좀 덜하지만 예전에는 교양서적이나 수필 같은 서적을 많이 읽었어요 저는 많은 도움이 되었거든요
앞서의 조언을 이어서 추천해주시고 싶은 책이 있다면?
내 인생이 따뜻했던 날들, 좀머씨이야기, 안도현의 시를 추천해주고 싶어요. 기술서적은 넘치기 때문에 자신에게 가장 맞는 책 한 권 혹은 기사들 정도로 접하면 좋을 것 같아요. 제가 읽어본 책 중에 젤 인상이 깊었던 책은 “The C programming language” 입니다. 모든 개발자가 감명받는 책들 중 하나라고 누가 추천해 주시더군요
후배들을 위한 조언을 부탁 드리겠습니다.
너무나 절실히 느끼는 것이 있어요. 기초가 부족하면 안 된다는 것입니다 소프트웨어의 기초라고 생각되는 것들, 예를 들면 데이터구조론, 개발방법론, 알고리즘 등 그런 것이겠죠. 경험이 쌓일수록 기술력의 깊이가 깊어질 수 있으려면 꼭 필요한 부분이에요. 그리고 내가 만약 최고가 되었다면 그 때 나는 무엇이 필요할까를 한번 진지하게 고민했으면 좋겠어요. 이 정도면 됐어 라고 생각 한 그 순간에 그 다음은? 이라는 물음표에 답을 할 수 있게 지금부터 생각을 해봤으면 좋겠네요.
소프트웨어 개발은 OOO이다.
창의성이라고 생각해요. 생각과 느낌을 말랑말랑하게 가져갈 수 있도록 자기자신에게 자유를 주고 즐거움을 느끼게 해 줄 수 있는 무언가를 끊임없이 주는 것이 아닐까 하고 생각해요. 저는 자유로움이 창의를 만든다고 생각하고 창의는 말랑말랑한 사고 방식에서 나온다고 생각합니다.
Side Story 리포터 후기
콘텐츠 기획팀 리포터 신영모
구매관리
담당부서:인터뷰
취재:한충호,신영모
INTERVIEW
신영모
abc@saramin.co.kr
EDITOR
신영모
abc@saramin.co.kr
위 내용은 사람인에서 직접 취재한 내용을 재구성한 콘텐츠입니다. Copyright @ (주)사람인HR. all right reserved.