[개발人] 임수진 “개발에 익숙해지지 말자”

가 +
가 -

대학 4년 내내 배운 개발 지식을 어떻게 활용할까 두근거리는 마음으로 입사한 회사, 나도 오늘부터 개발자란 생각에 뿌듯해진다. 그러나 첫 출근이 마냥 설레기만 한 건 아니다. 잠시 뒤 ‘어떤 일을 해야 하지?’, ‘무슨 일을 시키려나?’, ‘시킨 일을 잘 할 수 있을까?’하는 걱정이 생긴다. 흥분과 설렘, 걱정이 뒤엉켜 가슴이 요동치기 시작한다. 지금으로부터 약 10년 전, 임수진 다날 개발본부 플랫폼 개발팀 팀장도 같은 일을 경험했다.

“저도 회사에 처음 입사했을 때 그런 생각을 했습니다. 내가 학교에서 배운 지식이 정말 현장에서 도움이 될까, 대체 어떤 일을 할 수 있을까 같은 고민 말이지요. 결론부터 말하자면, 시간이 다 해결해주더군요. 지나치게 긴장하지 말고 차근차근 배워나가면 됩니다.”

임수진 팀장은 국내 한 모바일 솔루션 회사에서 개발을 시작했다. 첫날은 간단한 교육, 둘쨋날부터 본격적인 업무가 시작됐다. 아직 경험도 없는 초짜 개발자가 남들보다 좀 더 일을 잘하기 위해 택한 방법은 뻔했다. 공부하고, 야근하면서 적응해 나갔다. 말 그대로 ‘시간’이 그를 단련시켰다.

“한 줄을 코딩한다고 할 때 1초라는 시간이 걸린다면, 100줄을 코딩할 땐 100초라는 시간이 걸리겠지요. 개발을 잘 하려면 더 많이 코딩을 해야 합니다. 더 많은 시간을 투자해야 한다는 소리지요.”

danal dev

# 개발 외 배움도 즐겨라

임수진 팀장은 현재 다날에서 휴대폰 결제 플랫폼 설계 업무를 맡고 있다. 휴대폰 결제 플랫폼은 계좌이체와 신용카드, 휴대폰 결제와 같은 결제 모듈 개발 로 끝나지 않는다. 이런 결제 모듈이 잘 작동하게 만드는 기반 환경 개발도 중요한 비중을 차지한다. 설계를 하려면 개발 지식 외에도 사업에 대한 관심도 있어야 한다. 서비스 정신을 키우거나, 사람들 습관을 정리해 도표화하고 표현하는 능력도 갖춰야 한다.

“지금이야 ‘다 그때 필요하다고 느꼈으니까, 내게 다른 것들도 공부하라고 했구나’라는 생각이 들지만, 한창 개발에 빠져 있을 당시엔 전혀 아니었습니다. ‘개발할 시간도 부족한데 왜 내게 자꾸 엉뚱한 일만 시키나’하고 짜증도 냈지요. 초반에 고민이 많았습니다.”

상사와 함께 하는 술자리가 늘었다. 키보드로 무언가 클래스를 짜고, 함수를 만들고, 기능을 구현하는 게 더 재미있는데, 자꾸 다른 일을 시키는 회사가 이해되지 않아서다. 기획자가 하는 일을 시키는 것 같아서 마음 속 갈등도 많이 겪었다. 하지만 어쩌랴. 직장 생활을 유지하려면 상사가 시키는 일을 할 수 밖에. 그러면서 자연스레 재미가 붙었다. 처음엔 개발 외 부분을 공부하느라 모자랐던 개발 시간이 점점 늘어나기 시작했다. 개발과 개발외 공부가 균형을 맞춰나갔다.

“이 균형이 맞춰지기까지 3년이 걸렸던 것 같아요. 사실 지금도 진행중이긴 하지만요. 제가 공부하면 공부할수록 다양한 과제를 해결할 수 있는 여러 방법이 있다는 걸 깨닫기 시작했습니다. 알고보니 제 상사도 이런 과정을 모두 경험했더군요.”

결제 플랫폼을 만들려면 결제 사업과 시스템 요구사항에 대한 이해가 선행되야 한다. 결제 플랫폼을 도입하는 나라의 이동통신사 정책, 사용자 관습, 이미 들어가 있는 결제 수단에 대한 공부가 필수다. 이는 개발만으로 깨우칠 수 있는 게 아니다.

“예를 들어 저희가 현재 서비스하고 있는 ‘바통’이란 애플리케이션을 설계하려면, 준비단계에서부터 결제수단으로 계좌이체, 신용카드, 휴대폰 결제와 같은 다양한 결제 수단이 붙을 수 있는 상황을 가정해야 합니다. 고객 요구사항을 어느정도 예측해야 하기에 개발외 다양한 경험치가 필요하지요.”

개발 외적 요소에 대한 공부는 결제 모듈을 만들고, 더 나아가 설계를 하려면 반드시 거쳐야 하는 과정이었던 셈이다. 임수진 팀장은 한 때 짜증스러운 시간을 지나 지금의 결제 플랫폼 설계자가 됐다.

# 개발 ‘과정’도 소중히 하라

물론 개발 본연의 공부도 소홀히 하면 안된다. 임수진 팀장은 인터뷰 내내 학창 시절 공부를 소홀히 하지 말라고 강조했다. 데이터 통신, 알고리즘, 네트워크, 운영체제론 등 당시엔 배우기 재미없고 지루해보이는 과목들이지만 실제 사회에 나오고 개발현장에 나오면 가장 도움되는 내용들이라고 말했다.

“저도 학창시절에 지금 배우는 과목들이 정작 개발 현장에서 도움이 될까 의구심을 가졌던 적이 한두번이 아닙니다. 근데, 신기하게도 다 도움이 돼요. 배웠던 과목들 지식이 필요한 업무들이 나온다고 할까요.”

기초 지식이 제대로 쌓여야 개발 과정에서 갈피를 제대로 잡고, 헤매는 시간을 줄일 수 있다는 얘기다. 그렇기에 가끔 구글링을 통해 너무 쉽게 개발 지식을 습득하는 후배 개발자들을 보면 걱정이 앞선다. 눈으로 보고, 마우스로 긁어 붙인 지식이 유지되는 시간이 짧다는 걸 임수진 팀장 자신이 경험해 봤기에.

“체득했으면 좋겠어요. 학교에서 배운 걸 손으로 치고, 머리로 이해하고, 실패도 하면서 이 모든 과정을 거친 후배 개발자들이 많아졌으면 좋겠습니다.”

결과물만 나온다고 해서 개발이 완성되는 건 아니다. 결과물이 나오기까지의 과정도 개발의 한 분야다. 예를들어 Http 통신 모듈을 짜라는 업무가 있을 때, 구글 검색을 통해 코드를 발견해서 Http 통신 모듈을 짜 제출하는 것만이 능사는 아니다. 눈으로 쌓는 지식과 손으로 쌓는 지식은 다르다는 얘기다.

게다가 구글링을 통해서 나온 내용이 반드시 맞다는 보장도 없다. 임수진 팀장은 이 점을 가장 경계했다. 아무것도 모르는 새내기들이 제대로 된 지식보다는 제대로 된 것처럼 보이는 지식을 쌓기 쉬운 수단 역시 구글링이라는 점에서다.

“구글링 해서 얻어온 결과물에 대해 질문을 하면, 가끔 ‘그냥 있어서 썼어요’라고 하는 후배도 있습니다. 코더 안에 쓰인 라인의 의미를 제대로 파악하지 않고 그냥 구현만 한 거지요. 개발자로 오래 있고 싶다면, 기반 기술에 대한 이해는 필수라고 생각합니다.”

제대로 배우는 과정이 있어야 또 다른 새로운 기술을 배울 수 있게 된다. 제대로 배우지 않으면 자신이 알고 있는 게 반드시 맞다는 자만이 생겨난다. 자신이 알고 있는 개발 기술이 가장 좋다는 착각에 빠지게 된다. 그 결과 별다른 고민 없이 남들은 잘못된 기술이라고 보는  알고 있는 기술로만 개발을 하게 된다. 개발자라면 가장 피해야 하는 길이다. 성취감과 자만심은 한끝 차이다.

“그래서 전 개발에 익숙하지 않은, 언제나 진행형인 개발자가 되고 싶습니다. 나만의 개발 경험도 쌓으면서 말이지요. 이런 시간을 갖는 게 개발자로서 가장 중요한 게 아닌가 싶습니다.”