약 10년 전 경영학을 전공하던 대학교를 휴학하고 넥스트에서 프로그래밍을 처음 접했습니다. 직접 손으로 무언가를 만드는 것을 좋아했던 저는 곧바로 빠져들었습니다. 수업 과제로 개발했던 앱이 2015년부터 2017년까지 3년 연속 애플 앱스토어 ‘올해를 빛낸 앱’에 선정되는 경험을 통해 모바일 앱 개발자 커리어를 시작하게 됐습니다. 국내에서 라인, 네이버를 거쳐 스타트업, 그랩(싱가포르), 메타 등 다양한 환경에서 프로그래머로 일하며 산전수전 겪었습니다.
올해 <개발자 원칙>이란 책을 재밌게 읽었습니다. 저의 스승님, 함께 일했던 개발 리더님, 온라인 상에서 팔로우하고 있던 개발자분들 등 이미 친숙한 사람들의 들어보지 못한 비하인드 스토리 같이 느껴져서 더 흥미로웠습니다. 그러다가 얼마 전 제가 이 책에 저자로 참여했다면 어떤 글을 썼을까 상상해봤습니다.
자의반 타의반 롤러코스터 커리어
비전공자로 시작해 프로그래머로 걸어온 일은 삶과 커리어 여러 방면에서 롤러코스터와 같았습니다. 대학교 휴학을 하고 프로그래밍을 배우는데에 2년을 투자했지만 미래에 대한 확신은 없었습니다. 개발자 열풍이 불던 시기도 아니었기에 제 주변 집단과 확연히 다른 커리어로 전향할 자신과 근거가 부족했습니다. 프로그래밍을 본격적으로 배우기 전에 LG CNS에서 번역 알바를 할 때 개발자분들이랑 같은 사무실을 썼었는데, 개발 팀장님이 프로그래밍 배우는걸 말리기도 했습니다. 소위 3D 직종이라는 것이 이유였습니다.
개발자가 된 이후에도 평탄한 길을 걸은건 아니었습니다. 네이버랩스에 정말 가고 싶어서 경력이 1년 밖에 없음에도 경력 3년 이상을 뽑는 채용공고에 무턱대고 지원해서 5시간이 넘는 면접을 보고 입사했습니다. 그러나 꿈 같던 시간은 1년도 채 되지 않아 막을 내렸습니다. 개발 중이던 앱이 출시 전에 전면 중단되고 조직 전체가 와해되는 일을 겪고 네이버웹툰으로 옮겨야 했습니다. 몇 년 뒤 싱가포르로 첫 해외취업을 한 뒤에도 2년을 못 채우고 미국으로 이직을 했습니다. 그리고 다니던 회사가 하루 아침에 급여를 주지 못하는 상황에 닥치기도 했습니다. 첫 아이가 태어날 예정인데 일자리가 없는 상황도 있었습니다.
2년 미만으로 다닌 회사가 4개나 되고 여러 국가를 옮겨다니면서 자칫 산만하고 알맹이 없는 커리어가 됐을수도 있지만, 어떤 일이 벌어지든 어떤 회사에서 일하든, 변함 없이 추구해 온 나만의 원칙 덕분에 꾸준히 더 나은 개발자가 되어 한 단계씩 올라갈 수 있었습니다.
나만의 대원칙: 가능성 따져보지 말고 대담한 목표 세우기
비전공자로 시작해서 2년 뒤에 라인에 취업하고, 비교적 빠르게 해외 기업에서 시니어 개발자 타이틀을 달고, 꿈 꾸던 해외 취업에 성공해서 지금 원하는 곳에서 커리어와 가족을 꾸려나갈 수 있는건 크고 작은 길목에서 스스로 목표를 높게 세우고 그 목표를 달성하기 위해 꾸준히 노력했던 결과물이라고 생각합니다.
지인들의 고민 상담을 해주거나 온라인 커뮤니티의 여러 고민 글들을 보면 많은 사람들이 자신이 목표를 달성할 ‘가능성’을 미리 알고 싶어합니다. ‘나는 이러이러한 경력이나 스펙을 가지고 있고, 내가 희망하는 취업/진학/꿈을 달성할 가능성이 얼마나 되겠냐’ 남들에게 묻습니다. 나와 비슷한 사람 중에 내가 가고 싶은 길을 이미 가 본 롤모델이 있다는건 긍정적인 영향을 주기도 합니다. 하지만 사례가 없다거나, 남들이 평가했을때 가능성이 낮아 보인다고 해서 내가 정말 원하는걸 시도도 안해보고 포기하면 스스로 나의 한계를 설정해버리는 것입니다.
“나를 죽이지 못하는 것은 나를 더 강하게 만든다”는 니체의 명언이 있습니다. 커리어를 돌아보면 목표를 달성하기 직전에는 큰 성장통이 있었습니다. 달성할 수 있을지 확신이 없는 상태에서 덤볐다가 여러번 깨지고 그 실패 과정에서도 작은 성장을 이루고, 그게 모여 목표를 이루는 경험을 통해 성장해왔습니다. 제 커리어에서 대담한 목표를 설정함으로써 성장해 온 사례들을 소개합니다.
1. 앱 개발 배운 후 세운 대담한 목표
앱 개발을 배운 뒤 세웠던 가장 대담한 목표는 앱으로 돈을 벌어보자는 것이었습니다. 아직 앱스토어에 앱을 출시해 본 적도 없었고, 심지어 하나의 앱을 완성해 본 적도 없는 상태였습니다. 여러 단계를 건너뛴 무모한 목표 설정이었습니다. 어떻게 달성할 수 있을지 명확한 계획도 없었습니다. 그냥 그걸 마음 속에 진심으로 품었고 당장할 수 있는거부터 차근차근 해나갔습니다.
앱스토어에서 관심있는 카테고리 Top 20 앱을 전부 다운로드해서 써보면서 분석해보고, WWDC에서 발표된 신규 기능을 하나라도 놓치지 않기 위해 개발자 문서와 영상을 다 봤습니다. 최종적으로 서 너 가지 아이디어로 추렸고, 결국 제가 오래전부터 써왔던 시중 앱 중에 퀄리티가 가장 떨어지는 앱을 벤치마킹하기로 했습니다. 저는 오랜 애플 유저로서 애플스러운 디자인과 UX에 예민한 것이 저의 강점이라고 생각했고 이 강점을 활용할 수 있는 방향이라고 생각했습니다.
처음 시작은 단지 UI/UX만 살짝 업그레이드하는 수준이었습니다. 하지만 개발을 절반 정도 마쳤을 즈음 iOS8이 출시됐고, Today Extension 기능이 처음 출시됐습니다. 여기서 아이디어를 얻어 금융 카테고리 최초로 Today Extension을 활용해 앱의 편의성을 혁혁히 증대시켰습니다. 그 결과 출시 첫날 수 백 다운로드가 발생하여 앱스토어 순위에 올랐고, 1달이 지나기 전에 상위 Top 10에 들게 됐습니다. 첫 정산에 300만원 가까이 벌게 됐고, 수 년 동안 수익이 지속되어 대학생때부터 경제적으로 자립할 수 있었습니다. 또한 2015년부터 2017년까지 3년 연속 앱스토어 ‘올해를 빛낸 앱’에 선정되는 영광을 누렸고, 이를 계기로 앱 개발자의 길에 한발 더 가까워질 수 있었습니다.
2. 프로그래밍 할 때 추구하는 높은 기준
코드를 짤 때도 스스로 높은 기준을 세우고 이를 달성하려고 노력합니다. 이런 의도적인 수련 덕분에 짧은 시간 안에 코딩 실력을 키울 수 있었던거 같습니다. 어떤 기능을 맡게 됐을때 저는 그 도메인에서 나올 수 있는 최고의 설계가 무엇일지 고민했습니다. 최고의 설계를 찾기 위해서 최고의 코드들을 찾아봤습니다. 사람들이 많이 쓰고 인기많고 오래 살아남은 오픈소스, 애플의 프레임워크 등을 뜯어보며 분석했습니다. 오픈소스가 아니더라도 공개된 클래스, 함수, 변수 등을 통해 객체들의 역할을 파악하고 어떻게 객체들이 협력하는지 감을 잡을 수 있었습니다.
예를 들어 네이버 재직 당시 Clova 음성 인식 기능 모듈을 맡게 됐을때 아마존 Alexa 모듈을 깊이 분석했습니다. VoIP 기능을 개발하게 되면 애플의 CallKit이나 WebRTC 라이브러리들을 분석해봅니다.
설계를 하기도 전에 내가 지금 당장 할 수 있는게 뭔지를 기준으로만 코딩을 하면 현재의 실력을 뛰어넘는 도약을 하기가 쉽지 않습니다. 월드클래스 코드를 보면서 최고의 설계도를 먼저 그리고 나서야 어떻게 구현할지 고민하기 시작했습니다. 가장 이상적인 설계를 나침반 삼아 내가 부족한 점을 찾아 공부했습니다. 이런 식으로 프로그래밍을 하면서 Swift에 대한 이해도를 무진장 높였고 type erasure 등 고급 개념을 익힐 수 있었습니다.
3. 무턱대고 도전했던 미국 취업
2017년 말에 첫 해외취업에 도전했습니다. 대학교 졸업을 앞두고 휴학중 쌓았던 1년의 경력을 토대로 레퍼럴을 받아 구글과 페이스북 인턴에 지원했고, 면접 기회를 얻었습니다. 하지만 준비가 너무 부족했고, 지금은 쉽게 풀 수 있는 이진트리의 높이 구하는 문제를 풀지 못해 탈락했습니다.
1년 뒤, 다시 경력 개발자로 도전을 했습니다. 미국 비자도 잘 모르는 상태에서 무턱대고 온라인으로 지원부터 했습니다. 당연히 결과는 처참했습니다. 단 한번의 면접 기회도 얻지 못했습니다. 하지만 이때 여러 회사들을 검색해보고 지원하면서, 그곳에서 일하는 상상만으로도 들뜨고 신나는 감정을 느꼈습니다. 이때도 실패했지만 더욱 해외취업에 대한 열망을 키우는 계기가 됐던거 같습니다. 여러 도전 끝에 2020년 초 싱가포르로 첫 해외취업을 성공했고, 2021년 말에는 미국으로 이직을 했습니다.
오랜 시간이 걸렸지만 대담하게 목표를 삼았기 때문에 언젠가 이룰 수 있었습니다. 목표를 품으면서 열망을 더 키웠고, 몇 년에 걸쳐 목표에 조금씩 가까워지고 있었습니다.
대담한 목표를 세워야 언젠가 이룰 수 있다.
돌아보면 제가 이룬 성취보다 더 값진 것은, 불가능해 보이는 목표에 도전하는 과정에서 매번 한층 더 단단해졌다는 사실입니다. 결국 중요한 건 내가 지금 당장 달성할 ‘가능성’이 아니라, 그 가능성을 스스로 만들어가는 의지와 과정이었습니다. 지금도 여전히 도전의 길 위에 있지만, 확실히 알게 된 것은 대담한 목표를 세우고 한 걸음씩 나아가면 언젠가 도달할 수 있다는 사실입니다. 혹시 망설이고 있다면, 지금 마음속에만 간직한 그 목표를 밖으로 꺼내 보시길 권합니다. 목표에 1cm라도 가까워질 수 있는게 있다면 지금 당장 행동해보시길 바랍니다.
제가 커리어의 여러 굴곡 속에서도 흔들리지 않을 수 있었던 건 이 원칙 덕분이었습니다. 바로 ‘가능성을 따지지 말고 대담한 목표를 세운다’는 것. 앞으로도 저를 성장시킬 나침반이고, 다른 분들에게도 적용 가능한 개발자 원칙이라고 생각합니다.