최근 메신저 서비스를 만드는 회사의 개발자와 커피챗을 했다. 회사의 공식 면접이 아니라, 개발자와 내가 해 온 일과 앞으로의 고민을 나누는 자리였다.
대화는 이후 면접으로 이어지지는 않았다. 그 이유를 한 가지로 단정할 수는 없지만, 내가 해 온 개발과 앞으로 하고 싶은 개발을 다시 생각하는 계기가 됐다.
이직을 준비하면서 관심이 가는 곳은 OTT, 웹툰, 메신저처럼 앱 안에서의 경험이 서비스의 중심에 있는 회사들이다. 영상이 재생되고, 콘텐츠를 읽고, 메시지를 주고받는 과정에 더 깊이 관여해 보고 싶다.
그런데 그 서비스의 핵심 기능과 내 경험을 나란히 놓아 보면 빈틈이 보인다. 회사에서도 사이드 프로젝트에서도 플레이어나 라이브 영상, 웹툰 뷰어, 소켓과 푸시를 활용한 채팅을 실제 제품으로 만들어 본 적이 없다.
그래서 요즘은 이런 질문을 자주 한다. 원하는 분야의 네이티브 경험을 앞으로 어떻게 쌓고, 이미 해 온 일은 어떻게 설명해야 할까?
당장 답을 내릴 수는 없겠지만, 최근에 했던 생각과 들었던 조언을 정리해 보려고 한다. 첫 회사 선택에 대한 아쉬움도 있고, AI 덕분에 다시 시도해 보고 싶은 일도 있다.
그동안 여러 IT 동아리에 참여했다. 함께 프로젝트를 할 백엔드 개발자를 만나고 싶었고, 혼자서는 만들기 어려운 앱을 팀으로 만들어 보고 싶었다.
동아리 프로젝트에는 보통 정해진 출시 시점이 있다. 그 안에서 기획과 디자인을 정하고, 서버와 앱을 개발하고, 동작하는 제품을 내야 한다. 해보고 싶은 기능이 있어도 주어진 기간에 맞춰 범위를 정하게 된다.
그렇게 진행한 프로젝트는 데이터를 등록하고 조회하고 수정하는 기능이 중심인 경우가 많았다. 팀으로 앱을 출시하는 경험은 쌓였지만, 내가 관심 있는 플레이어와 뷰어, 실시간 채팅 같은 영역으로 들어가기는 어려웠다.
협업이나 API 연동, 화면 상태를 처리하는 경험도 계속 필요한 일이다. 다만 프로젝트를 여러 번 했다고 해서 원하는 분야의 깊이까지 자연스럽게 쌓이는 것은 아니었다.
함께 만들 사람을 찾으면 원하는 경험도 얻을 수 있을 거라고 생각했던 것 같다. 이제는 프로젝트를 시작할 때 무엇을 겪어 보고 싶은지, 그것을 알려면 어디까지 만들어야 하는지도 정해야겠다는 생각이 든다.
회사에서는 WebView 비중이 높은 하이브리드 앱을 다루고 있다. BLE 연동이나 건강 관련 기능처럼 네이티브 영역에서 처리해야 하는 작업도 해 왔다. 하지만 그 경험은 내가 관심 있는 서비스의 핵심 기능과는 결이 다르다.
그래서 회사에서 한 일을 설명할 때도 고민이 생긴다. WebView 중심이라고 짧게 말하면 실제로 했던 네이티브 작업이 잘 드러나지 않는다. 반대로 사용한 기술만 나열하면 어떤 문제를 해결했는지 전달하기 어렵다.
사이드 프로젝트에서는 네이티브 UI를 꽤 많이 만들었다. 그런데 이력서나 결과물을 함께 보지 않는 짧은 커피챗에서는 그 경험을 충분히 설명하기가 어려웠다. 한 일이 있다는 것과 상대에게 전달되는 것은 또 다른 문제였다.
그동안 회사 밖에서도 시간을 많이 썼는데, 그 노력이 대화 안에서 잘 전달되지 않으면 답답하다. 관심 있는 분야를 해보지 않았다는 설명이 내가 해 온 일보다 더 크게 남는 것 같기도 하다.
화면을 많이 만들었다는 설명에서 더 들어가야 할 것 같다. 어떤 흐름을 구현했고, 어디서 막혔고, 왜 그 방식을 선택했는지를 정리해야 한다. 결과 화면과 코드 사이에 있었던 판단도 함께 보여 주고 싶다.
새로운 분야를 해보지 않았다는 이유로 기존 경험까지 전부 부족하다고 묶어 버리고 싶지는 않다. 이미 한 일을 정확히 정리하면서, 앞으로 필요한 경험의 빈틈도 구체적으로 찾아보려고 한다.
지금 부족한 경험을 채우면 된다고 생각하면서도, 시간이 더 지나면 어떨까 하는 걱정이 있다. 앞으로도 회사에서 WebView 유지보수나 프론트엔드 업무를 돕는 일에 많은 시간을 쓰게 된다면, 내가 원하는 네이티브 개발의 깊이는 얼마나 쌓일까.
연차가 올라가면 회사에서 더 깊게 다룬 문제를 기대받을 것 같다. 그런데 내가 보여 줄 수 있는 경험은 그 기대와 다른 방향으로 쌓이면 어쩌지 싶다. 원하는 분야와의 거리가 지금보다 더 벌어질까 봐 불안하다.
사이드 프로젝트를 계속하면 된다는 생각도 한다. 실제로 그렇게 해 왔지만, 회사에서 대부분의 시간을 보내면서 그 밖의 시간으로 부족한 부분을 계속 채워야 한다는 부담은 남는다.
이것은 앞으로 반드시 그렇게 될 것이라는 판단은 아니다. 다만 경력을 쌓으면 이직도 쉬워질 거라고 생각했던 때와 달리, 지금은 시간이 흐르는 것 자체에도 조급함을 느낀다.
이런 생각을 하다 보면 첫 회사를 선택하던 때로 돌아가게 된다. 당시에는 빠르게 온 제안을 받아 경력을 쌓고, 이후에 원하는 곳으로 옮기면 된다고 생각했다. 일단 시작하면 다음 선택은 조금 더 쉬워질 거라고 기대했다.
지금은 그 선택에 아쉬움이 있다. 첫 회사에서 어떤 제품을 만들고 어떤 문제를 다루는지가 이후의 경력에 영향을 줄 수 있다는 점을 더 자세히 생각했으면 어땠을까 싶다.
그렇다고 회사에 책임을 돌리고 싶은 것은 아니다. 회사는 제품에 필요한 일을 하고, 나는 그 안에서 맡은 일을 해 왔다. 내가 원했던 방향과 실제로 쌓을 수 있는 경험을 당시의 나는 충분히 비교하지 못했던 것 같다.
이미 지나간 선택을 바꿀 수는 없다. 다른 곳에 갔다면 지금이 더 좋았을지도 알 수 없다. 후회만 반복한다고 다음 경험이 생기는 것도 아니다.
지금 할 수 있는 것은 다음 선택의 기준을 좀 더 분명히 만드는 일이다. 경력이 쌓인다는 사실에만 기대기보다, 내가 가고 싶은 곳에서 어떤 문제를 다루고 싶은지 계속 확인해야겠다.
당근 밋업에서 들었던 원격 Gradle 빌드 캐시 발표가 기억에 남는다. 모듈이 많은 프로젝트에서 여러 사람이 빌드할 때 반복되는 작업을 줄이는 이야기였다.
혼자 개발할 때는 빌드가 느려도 내가 조금 더 기다리는 문제로 생각했다. 하지만 팀원 수와 작업 횟수만큼 그 기다림이 반복되면 팀 전체가 함께 해결해야 할 문제가 된다. 발표를 들으며 빌드 시간을 줄이는 일이 여러 사람의 작업 환경을 바꾸는 일이 될 수 있다는 점이 인상적이었다.
발표에서는 Gradle 소스까지 살펴보며 동작을 이해하고, 원격에서 캐시를 공유하는 구성을 설명했다. 로컬 캐시도 함께 활용하는 방식이었고, 원격 캐시를 쓰기 어려운 경우의 대안도 고려한 구성으로 기억한다.
앱을 빌드할 필요가 있는 개발자 외의 사람들도 그 환경을 활용할 수 있다는 이야기도 흥미로웠다. 하나의 도구를 개선한 결과가 그 도구를 만든 사람의 작업 속도에만 머무르지 않는 것이다.
경력이 많은 개발자가 익숙한 도구의 내부까지 다시 파고드는 모습도 존경스러웠다. 나도 문제를 만났을 때 그 정도로 깊이 들어가 볼 수 있을까 생각했다.
솔직히 그런 일을 할 수 있는 환경이 부러웠다. 궁금한 문제를 소스까지 들어가 확인하고, 필요한 인프라를 만들어 팀의 반복 작업을 줄이는 일을 나도 해보고 싶었다.
밋업에서 본 AI 도구 활용의 자율성과 이를 뒷받침하는 인프라도 부러웠다. 필요한 도구를 만들어 팀에 적용해 볼 수 있는 환경이라면, 혼자서는 떠올리기 어려웠던 문제도 만나게 될 것 같았다.
AI로 내가 만들 수 있는 범위가 넓어진 지금, 이런 실험도 해볼 수 있을 것 같다. 동시에 혼자 실험하는 것과 여러 사람이 실제로 쓰는 환경에 적용하고 개선하는 것은 다른 경험이겠다는 생각이 들었다.
그 발표를 들으며 아, 이래서 큰 팀에서 일해야 하는구나 하는 생각이 들었다. 혼자 일할 때는 고민할 필요조차 없었던 문제를 팀에서는 만나고, 동료들과 함께 풀어 가며 성장할 수 있겠다는 걸 깨달았다. 특정 네이티브 기능을 구현해 본 경력뿐 아니라, 팀의 문제를 깊게 살펴보고 내가 만든 개선이 동료들의 일에도 영향을 주는 경험이 필요하다고 느꼈다.
예전에는 서버가 필요한 앱을 만들고 싶으면 백엔드를 함께 해 줄 사람을 먼저 구해야 한다고 생각했다. 그래서 IT 동아리에도 많이 참여했다. 내가 할 수 있는 범위 밖의 일을 팀으로 해결하고 싶었다.
이제는 AI의 도움을 받아 그런 실험을 혼자 시작해 볼 수 있겠다는 생각이 든다. Claude와 Codex도 구독하고 있으니 도구는 이미 있다. 백엔드 경험이 부족하다는 이유만으로 시도하지 못한다고 생각할 필요는 줄어들었다.
가령 채팅을 실험한다면 서버의 기본적인 구성을 AI와 함께 만들고, 앱에서 연결이 끊기거나 메시지 전달이 늦어지는 상황을 직접 다뤄 볼 수 있을 것이다. 플레이어나 뷰어도 궁금한 문제 하나부터 시작할 수 있다.
질문을 하고 답을 받는 방식에서 더 나아가 보고 싶다. 기획과 구현, 검토를 나눠 진행하면서 혼자서도 작은 팀을 운영하듯 일해 보고 싶다. 잘 굴러간다면 작은 스타트업처럼 일할 수 있을까 하는 기대도 있다.
물론 역할 이름을 여러 개 붙인다고 팀처럼 일하게 되는 것은 아닐 것이다. 필요한 조건을 정리하고, 각 작업의 결과를 연결하고, 무엇을 받아들일지 판단하는 일은 내가 맡아야 한다.
서버 코드가 만들어졌다고 해서 내가 그 영역을 이해하게 되는 것도 아니다. 기본 개념을 공부하고, 코드와 로그를 읽고, 문제가 생긴 이유를 확인해야 한다. 작동하는 결과물과 내가 설명할 수 있는 경험 사이의 거리를 줄이고 싶다.
AI의 속도를 보면 내 경험을 앞으로 무엇으로 설명해야 할지 불안해지기도 한다. 그래도 이미 익숙해진 편리함을 포기하는 것보다는, 설계와 테스트, 디버깅 과정에서 내 판단을 남기는 방법을 찾아보고 싶다.
시니어 개발자와 나눈 이야기에서 기억에 남은 것은 하나의 사이드 프로젝트라도 깊게 설명할 수 있어야 한다는 조언이었다. AI로 빠르게 만들었다는 사실만으로는 충분하지 않다는 취지였다.
AI 덕분에 확보한 시간을 더 완성도 높은 제품과 더 나은 UI와 UX에 쓸 수 있다는 이야기도 했다. 구현 속도를 보여 주는 데서 멈추지 않고, 사용자에게 어떤 가치를 주는지까지 봐야 한다는 말로 받아들였다.
이 조언을 듣고 나니 여러 분야를 경험해 보고 싶다는 생각과 한 제품을 깊게 만들어야 한다는 생각이 함께 남았다. 새로운 기능을 하나씩 만들어 보면 모르는 영역에 들어갈 수 있다. 하지만 계속 시작만 하면 설명할 이야기도 얕게 남을 수 있겠다.
지금 계속 만들고 있는 여행 앱 여비는 깊이를 쌓을 수 있는 대상이다. 무엇을 더 추가할지에 앞서, 지금의 사용 흐름에서 불편한 부분을 찾고 개선하는 작업을 해보고 싶다.
화면이 구현됐다는 기준에서 한 번 더 들어가 보고 싶다. 보기 좋은 화면이 사용하기에도 편한지, 사용자가 목적을 이루는 과정에서 막히는 부분은 없는지 확인해야 한다. 내가 익숙해서 지나치는 부분도 있을 수 있다.
제품을 성장시키는 일도 그 연장선에서 생각하고 있다. 더 많은 사람이 쓰게 된다면 어떤 문제가 생길지, 그때 무엇을 바꿔야 할지 고민해 보고 싶다. 현재의 규모나 앞으로의 성과를 크게 포장하려는 뜻은 아니다.
작게라도 개선 전후를 확인할 기준을 남겨 두려고 한다. 흐름을 비교하거나 실제 사용자에게 의견을 구하는 방법도 생각해 볼 수 있다. 예상과 달랐던 결과나 바꿨는데 나아지지 않은 부분도 기록할 만한 이야기다.
어떤 문제를 발견했고, 여러 방법 중 무엇을 골랐고, 바꾼 뒤에 무엇이 달라졌는지를 말할 수 있다면 좋겠다. 그런 설명을 할 수 있을 정도로 한 제품을 오래 살펴보고 싶다.
여비를 개선하는 것과 별개로, 관심 있는 네이티브 영역도 실험해 보고 싶다. 플레이어와 뷰어, 채팅을 한꺼번에 완성하려는 계획보다는 그중 하나를 골라 작은 범위로 들어가 보는 편이 현실적일 것 같다.
시작할 때 궁금했던 것, 구현 중에 막힌 부분, 검토했던 방식, 포기하거나 바꾼 선택을 기록하려고 한다. 나중에 결과 화면만 보여 주게 되지 않도록 작업하는 동안 판단을 남겨 두고 싶다.
커피챗에서는 여행 앱 여비를 어떻게 더 발전시킬지도 이야기했다. 게임 개발 경험이 있는 시니어 개발자는 비행 중 인터넷이 안 되는 상황에서 친구끼리 블루투스로 즐길 수 있는 게임을 예로 들었다.
나는 그런 아이디어까지는 생각하지 못했다. 여행 경비를 기록하고 정산하는 기능에서 더 나아가, 여행 중 함께 보내는 시간도 앱이 다룰 수 있는 경험이라는 생각이 들었다. 게임을 만들어 본 적이 없다는 이유로 아이디어의 범위도 좁혀 두고 있었던 것은 아닐까.
그 게임을 지금 만들겠다는 계획은 아니다. 실제로 필요한지, 어떤 제약이 있는지, 만들 가치가 있는지도 아직 모른다. 다만 플랫폼 기능이나 사용 환경에서 출발하면 다른 문제를 찾을 수 있겠다는 생각이 들었다.
여러 시도를 하더라도 각각을 작은 실험으로 끝낼지, 오래 개선할 제품으로 가져갈지는 구분해야겠다. 새로 만드는 재미 때문에 한 제품을 깊게 살펴볼 시간을 모두 써 버리지 않도록 하고 싶다.
마침 WindowInsets.info에서 당장 계획해 둔 작업을 마쳤고, 여비도 최근 진행하던 개선 작업을 마무리했다. 앞으로도 두 프로젝트를 계속 발전시켜 나가겠지만, 지금은 새로운 시도를 시작할 여유가 생겼다.
지원하고 싶은 공고에서 요구하는 경험과 내가 보여 줄 수 있는 결과물을 비교해 보고 싶다. 그다음 이미 한 일을 더 잘 정리할지, 여비에서 깊이를 쌓을지, 새로운 분야의 문제를 다룰지 정하면 좋겠다.
특정 분야의 실전 경험이 중요하다면 그 실험을 더 깊게 가져가야 할 수도 있다. 여비를 계속 개선하는 방향이 적합할 수도 있다. 아직 대표 프로젝트를 확정했다기보다, 무엇에 시간을 쓸지 기준을 세우는 단계다.
하나를 골랐다면 만들기 전에 궁금한 점과 확인할 방법부터 짧게 적어 두고 싶다. 기능 목록을 늘리기 전에 이번 작업으로 어떤 경험을 남길지 정해 보는 것이 다음 시작이 될 것 같다.
원하는 분야의 네이티브 경험을 어떻게 쌓고 설명할까. 지금 내 답은 기존에 한 일을 더 정확히 정리하고, 해보지 않은 문제를 작게 시작해 보고, 그중 하나는 오래 개선해 보자는 정도다.
이직에 대한 불안이 사라진 것은 아니다. 관심 있는 회사에서 필요한 경험과 지금의 경험 사이에 거리가 있다는 생각도 여전히 한다. 그래도 그 거리를 내가 직접 해볼 수 있는 일로 조금씩 바꿔 보고 싶다.
첫 회사 선택은 되돌릴 수 없지만 다음에 어떤 문제를 다룰지는 정할 수 있다. 우선 지원하고 싶은 분야와 지금 가진 결과물을 나란히 놓고, 다음에 집중할 문제 하나를 골라 보려고 한다.
다음에 내 경험을 이야기할 때는 무엇을 만들었다는 설명에 더해, 왜 그렇게 만들었고 무엇을 확인했는지까지 함께 말할 수 있으면 좋겠다.
여기까지 쓰고 보니 내 고민이 꽤 정돈돼 보인다. 하지만 실제 마음은 이것보다 덜 깔끔하다. 기술적으로 성장하고 싶다는 이유만으로 이직을 바라는 것은 아니다.
많은 사람이 사용하는 서비스를 만드는, 이름을 들으면 알 만한 회사에서 일하고 싶은 마음도 있다. 다른 개발자들도 알아보는 곳에서 일하면 나도 개발자로서 인정받았다는 기분이 들 것 같다. 내가 성공했다고 느끼고 싶은 마음도 있다.
지금의 환경을 벗어나고 싶은 마음도 분명히 있다. 다른 곳에 가면 내가 원하는 일을 더 많이 하고, 지금의 고민도 덜 할 수 있지 않을까 기대한다. 그 기대가 모두 맞을지는 나도 모른다.
스스로 이런 마음에 열등감이나 도피라는 이름을 붙이기도 했다. 시니어 개발자가 내 고민을 들으면 어떻게 볼까 걱정도 한다. 성장을 말하면서 결국 이름 있는 회사에 가고 싶은 것뿐이라고 생각할까 봐 신경이 쓰인다.
그렇다고 인정받고 싶은 마음이 없다고 쓰고 싶지는 않다. 더 깊게 개발하고 싶은 마음, 내가 해 온 일을 인정받고 싶은 마음, 현재의 환경을 벗어나고 싶은 마음이 함께 있다.
이 마음까지 다음 할 일 하나로 정리되지는 않는다. 아직 조급하고 부럽고 답답하다. 이번 글에는 그런 상태도 남겨 두고 싶었다.
개인 개발 경험과 커피챗, 당근 밋업에서 들은 이야기를 바탕으로 썼다. 시니어 개발자의 조언과 발표 내용은 직접 인용 대신 내가 이해한 취지로 정리했다.