블로그에 글을 남기는 게 참 오랜만이다. 그동안 기록하고 싶었던 순간은 많았지만, 늘 눈앞의 문제를 해결하고 프로덕트를 완성하는 일이 먼저였다.
지난 시간들을 돌이켜보니 나는 단순히 코드를 작성하는 사람에 머물지 않으려 애써 왔던 것 같다. 기획의 빈틈을 메우기 위해 현장으로 뛰어들기도 하고, 팀의 공백을 채우기 위해 내 직무 밖의 영역을 넘나들기도 했다.
나중에는 서비스의 안정적인 궤도 진입을 위해 주 100시간에 가까운 몰입을 이어갔고, 비용 최적화를 위해 홀로 마이그레이션을 완수해야 한다는 책임감 하나로 부단히 노력했다. 성장에 대한 갈증과 프로덕트를 향한 애정으로 달렸다.
그 시간들은 쉽지 않았지만, 내가 어떤 문제에 끌리고 어떤 방식으로 일하는 사람인지 분명히 알려준 경험이었다.
이제야 조금 여유를 찾아, 그간의 일들을 하나씩 정리해 보려 한다.
의료 영상 분석 소프트웨어를 만드는 스타트업에 프론트엔드 개발자로 합류했다. 당시 팀은 기획이 완전히 정리되기 전에 개발이 함께 진행되어야 하는 상황이었고, 화면을 구현하는 일만큼이나 제품의 밑그림을 함께 구체화하는 과정이 중요했다.
생소한 의료 도메인을 다루면서 가장 경계했던 것은 추측에 기대어 개발하는 일이었다. 초기 기획안은 실제 의료 현장의 흐름과 다소 거리가 있어 보였고, 기능 구현에 앞서 그 간극을 줄이는 일이 우선이라고 판단했다.
회사에 요청해 대학병원 전문의와 직접 만나는 교육 세션을 진행했고, 그 자리에서 확인한 실제 진료 환경은 예상과 다른 부분이 많았다. 이를 바탕으로 MVP에 꼭 필요한 기능을 다시 정리했다.
또한 개발팀뿐 아니라 유관 부서 모두가 제품과 도메인을 더 잘 이해할 수 있도록 의료 도메인 가이드 문서를 작성해 공유했다. 모호했던 개념들이 문서로 정리되자 협업의 기준이 생겼고, 이는 이후 제품 인허가를 준비하는 과정에서도 유의미한 자료가 되었다.
단순한 UI 구현을 넘어, 의료 영상 라이브러리인 Cornerstone3D를 프로젝트 환경에 맞게 최적화하는 데 집중했다.
프로젝트 중반에는 내부 사정으로 백엔드 개발 공백이 생기면서 외주 개발사와의 협업을 직접 핸들링하게 되었다.
외주 개발자가 의료 도메인의 특수성을 빠르게 이해할 수 있도록 미리 정리해둔 도메인 가이드를 공유해 싱크를 맞췄고, 서비스 전반의 데이터 스키마와 API 명세도 직접 정의해 전달했다. 덕분에 커뮤니케이션 비용을 줄이고 시행착오를 줄일 수 있었다
필요한 경우에는 작은 범위의 백엔드 로직도 직접 다루며 기획 변경에 빠르게 대응했다. 그 시간 동안 내게 중요한 기준은 “이 일이 내 업무인가”보다 “지금 제품에 필요한 일인가”에 더 가까웠다.
2025년 3월, 투자 및 내부 사정으로 사내 개발팀이 해체되었다. 회사에서는 그간의 기획 및 설계 역량을 높게 평가해 PM 포지션 전환을 제안해주었다.
감사한 제안이었지만, 고민 끝에 거절했다. 여러 역할을 병행하며 분명히 깨달은 것은, 문제를 정의하는 일만큼이나 기술을 통해 그 문제를 직접 해결해나가는 과정에서 가장 큰 동기부여를 얻는다는 점이었다.
나는 결국 기술로 문제를 풀어가는 사람으로 더 깊어지고 싶었다. 이후에는 새로 합류한 PM에게 WBS와 인수인계 문서를 정리해 전달하며 프로젝트를 마무리했다.
이러한 경험을 겪으며 개발자의 역할에 대해 다시 생각하게 됐다. 예전에는 주어진 기획을 얼마나 잘 구현할 수 있는지가 가장 중요한 기준이었다면, 이제는 제품이 왜 앞으로 나아가지 못하고 있는지 그 병목을 찾는 일에 더 관심을 갖게 되었다.
내게 기술은 단순히 기능을 만드는 수단이 아니라, 비즈니스의 문제를 풀기 위한 실마리에 가깝다. 그리고 그 실마리를 발견하고 실제로 구현까지 연결해내는 과정에서 가장 큰 즐거움을 느낀다는 사실을 알게 된 시간이었다.
첫 번째 회사에서 문제 정의의 중요성을 배웠다면, 다음 회사에서는 성장과 실행의 밀도를 더 깊이 경험하고 싶었다. 내가 선택한 곳은 식품 재고 판매를 전문으로 하는 커머스 스타트업이었다.
이직을 고민하던 당시, 내 눈을 사로잡은 키워드는 '높은 업무 강도와 빠른 성장'이었다. 평소에도 회사 일에 깊게 몰두하며 그 안에서 배움을 찾는 편이었기에, 밀도 높은 환경은 오히려 나를 더 성장시킬 수 있는 기회처럼 느껴졌다.
또한, 노코드 기반의 서비스를 코드 베이스로 전면 마이그레이션해야 한다는 과제도 흥미로웠다. 초기 세팅부터 배포, 유지보수까지 전체 파이프라인을 내 손으로 직접 구축하며 서비스의 A to Z를 경험할 수 있는 드문 기회라고 판단했다. 불안정한 구조를 다시 세우고 더 단단한 시스템으로 바꾸는 과정은 분명 큰 배움이 될 것이라 믿었다.
입사 당시 마이그레이션 기한은 5개월이었지만, 급격한 유저 유입으로 기존 시스템은 기존 시스템의 한계가 빨리 드러나고 있었다. 결제 오류와 데이터 유실이 잦아지며 더 빠른 전환이 필요한 상황이 되었고, 팀장님과 내부 논의를 거쳐 일정을 3개월로 단축해 진행하게 되었다.
짧은 시간 안에 안정적인 전환을 이뤄야 했기 때문에, 개발뿐 아니라 운영을 고려한 기반 정리에도 많은 시간을 썼다. 단독 개발 환경이었지만 언젠가 합류할 팀원들을 상상하며 ESLint와 Husky 등의 규칙을 도입하고 플랫폼과 환경별 빌드 스크립트를 분리하는 등 미래의 협업을 위한 토대도 함께 마련했다.
서비스를 배포한 이후에는 운영 효율을 높이려는 비즈니스 요구와 시스템 안정성 사이의 균형을 맞추는 일이 또 다른 과제가 되었다.
기획이 충분히 구체화되지 않은 경우도 많았고, 정책의 세부 로직을 개발 단계에서 함께 설계하고 다듬어야 하는 상황이 자주 있었다. 개발뿐 아니라 기술 CS 대응과 정책 정리까지 폭넓게 관여하며 서비스가 매끄럽게 운영될 수 있도록 빈틈을 메우는 역할을 했다.
특히 운영상의 병목을 더 근본적으로 해결하고 싶어 영업팀과 CS 팀의 의견을 듣고 판매자 측 플로우 개선안을 정리하기도 했다. 현장의 목소리를 바탕으로 흐름을 다시 설계하며 문제를 구조적으로 풀어보려 했지만, 당시의 의사결정 구조상 실제 실행까지 이어지지는 못 아쉬움으로 남았다.
이후 팀을 이끌던 리더가 떠나고 외부 CTO가 합류하며 업무 방식에도 변화가 생겼다. AI를 적극적으로 활용하여 효율을 높이는 방향이었고, 나는 이를 활용하며 더 넓은 역량을 갖출 수 있을 것이라 기대했다.
하지만 시간이 갈수록 도구 자체보다 더 중요한 것은 명확한 우선순위와 의사결정 구조라는 점을 실감하게 되었다. 준비해둔 설계와 기능이 실제 실행으로 이어지기까지의 리드타임이 길어지면서, 엔지니어로서 내가 가장 잘 기여할 수 있는 방식에 대해 다시 생각하게 되었다.
나는 불확실성 속에서 대응하는 경험도 중요하지만, 그보다 명확한 방향성 아래에서 기술적 전문성을 더 깊게 쌓고 싶었다. 그렇게 긴 고민 끝에 퇴사를 결정했다.
지금은 카페24 기반의 쇼핑몰을 리뉴얼하는 외주 프로젝트를 진행하며 새로운 여정을 준비하고 있다.
극한의 밀도 속에서 홀로 시스템을 구축하고 책임졌던 경험은, 이제 내가 어떤 기준으로 일하고 어떤 팀과 협업하고 싶은지 더 분명하게 알려주는 자산이 되었다.
문제를 정의하고, 구조를 세우고, 끝까지 구현해내는 사람으로 계속 성장하고 싶다. 이제 그 경험들을 차근차근 정리하며, 다시 다음을 시작하려고 한다.