체카는 자동차 상품화 플랫폼 서비스를 제공하는 회사이다.
상품화 서비스가 주력이고 중고차 도/소매, 소화기 판매 등 온갖 사업을 다 한다.
엔카의 홈서비스를 신청하고 취소하면 상품화 비용이 청구되는데 그 비용을 들여 하는 작업이 여기에서 이루어진다 보면 될 것 같다.
스토리
체카 입사
자동차 관련 도메인 개발에 참여해보고 싶었다. 자가정비를 하기도 하는 나는 자동차 관련 일을 할 것에 기대가 컸다.
하드웨어에 종속적인(?) 일을 하는 이전 프린터 회사와는 다르게 상품화 과정을 이해하고 서비스화 하는 일에 참여하게 되어 좋았다.
가장 초기 멤버로 입사해서 레거시들을 새롭게 만들기도 하며 한 달 정도 앞선 기획에 맞춰 개발을 시작했다.
기존 서버는 그대로 둔 채로 새로운 프론트엔드만 접목해서 개발을 시작했다.
딜러용 앱 개발
딜러용 앱을 개발하게 되었다. 기간이 너무 짧았다.
거진 1달동안 말하자면 디자인 시스템을 수립하고 서비스를 신청하는 과정부터 조회, 사용자 관련 기능까지.
이 일정에 불가능한 걸 알지만 핵심 프로세스에 대해서는 꼼꼼하게 시간 들여 개발하고 투입되는 시간 대비 아웃풋이 떨어지는 작업들은 걸러내며 해야할 일에 우선순위를 정하고 개발을 했다.
4주차쯤 되었을 때는 무급이지만 야근도 조금 곁들여 가며 앱 개발을 어느 정도 마무리해가려 노력했다.
애초에 시작할 때부터 불가능한 걸 알지만 "일단 해보자"는 팀장의 말에 시작을 했다.
그렇지만 불가능한 것은 불가능한 것이었다.
시간과 아웃풋은 정해져 있었다.(이 때 프롬프트 엔지니어링을 통해 대부분의 UI를 뽑아냈다면 가능했을지도 모르겠다)
이 때 당시가 10월 중순쯤이었나... 1월까지 사내 구성원이 사용해야 하는 앱을 만들어야 했기 때문에
현재까지 개발한 것은 마무리를 해 두고 다음 앱을 개발하기로 했다.
사내용 앱 개발
사내용 앱 개발을 하기 전에 딜러용 앱 개발에서 맞닥뜨린 디자인 시스템의 문제를 개선 및 보완해보기로 했다.
앞으로 개발할 앱의 디자인적인 요소를 피그마를 보고 파악하고 공통 컴포넌트로 먼저 구성하기로 했다.
이전에 문제가 있었거나 기능추가가 필요한 컴포넌트는 개선하기로 했다.
거진 그 기간으로 1주일을 쓰고 새로운 앱 개발에 돌입했다. 이번에도 업무 방식은 같았다.
"기간이 짧긴 하지만 딜러앱의 경험을 바탕으로 요구사항을 빠르게 처리해나가자".
딜러앱보다 기능이 많지만 디자인 시스템이 조금 더 완성이 되어 있었고 컴포넌트와 디렉토리 컨벤션 등 파일과 코드를 작성하는 규칙은 어느 정도 수립되어 있었다.
2주쯤 지났을까... 양적인 부분에서 문제가 생겼다.
동료 개발자가 전반적인 메뉴를 개발하기로 하고 그 기간동안 나는 나머지 기능들을 구현하고 있었는데
동료 개발자가 메뉴를 완성하는 기간이 계속해서 늘어났다.
딜러앱에서 경험하지 못한 부분을 동료 개발자가 경험하고 성장하고 있다고 생각이 되었기 때문에
나는 동료 개발자에게 걱정 말고 하던 일을 하라고 했다.
그게 문제였다... 내가 해결해야 할 업무의 범위는 더 늘어나는 것 같았고 마감 일정은 다가와 있었다.
이제 채팅이라는 커다랗다면 커다란 기능이 남아 있는데 벌써 새해가 다가오고 있었다.
나는 기능들에 대해 핵심 기능이 작동하는지만 테스트하고 채팅 기능 구현에 돌입했다.
요구사항은 생각보다 복잡헀고 그 기능들을 버그 없이 작동할 수 있게 하기 위해 코드를 논리적으로 보기 좋게 만들기 위해 노력했다.
그렇게 1월이 거의 마무리 되어가고 설 연휴가 왔다. 설 연휴가 지나니 2월인데... 이제는 새로운 프로젝트를 하기 위해 팀과 업무를 분리하게 되었다.
새로운 스쿼드, 그리고 마지막 스쿼드
2월 1일자로 새로운 스쿼드로 이동하게 되고 약 6개월 동안 개발할 프로젝트에 대한 구상 및 프로젝트 세팅을 했다.
이전에 개발에 참여한 프로젝트는 2주 이내 완성되어 배포될 예정이었지만 진척이 더딘 게 눈에 보였다.
핵심 기능만을 구현한 두 프로젝트는 수많은 버그와 맞닥뜨리게 되었고 배포가 1주일 연기 되었다.
나도 스쿼드는 옮기게 되었지만 내새끼(?)나 다름 없는 프로젝트들을 돌보기 위해 약간의 야근이나 여유시간에 지라 티켓 해결에 참여했다.
그렇지만 앱 배포는 2월 24일까지 되지 못했고 CTO의 사임과 개발팀의 해체로 이어졌다. 그렇게 체카는 작별하게 되었다.
회고
잘 한 점
- 두 프로젝트를 시작하기 전 적합한 기술을 잘 선정했다.
- 컨벤션을 정하는 것 등에 너무 시간이 많이 소요될 것을 감안하여 시간과 방법을 적당히 조율해서 과다한 시간 소요를 방지했다.
- 디자인 시스템을 개선하는데 아이디어를 내고 개선하여 생산성을 높였다.
아쉬운 점 & 개선해야 할 점
- 프롬프트 엔지니어링을 적극 도입하여 UI 개발하지 못했다
: 최근 claude 3.7, gemini 등 LLM 을 활용한 프롬프트 엔지니어링이 핫하다. 이를 적극 활용하여 프로젝트 성공에 기여하는 것도 필요하겠다. - 일정에 대해 충분히 제안하지 못했다.
: 업무량과 일정에 대해 충분히 의견을 내지 못해서 부담되는 짐을 지고 무리한 것 같다. 효율적인 업무 및 일정 배분이 필요하다. - 아무리 바빠도 코드리뷰는 진행했어야 했다.
: 코드리뷰 없이 프로젝트를 진행하는 것은 프로젝트 실패에 대한 위험도를 높인다. 코드리뷰는 간단히라도 해야한다.
배운 점
협업 및 소통에 대해 보다 생각해보게 되었고 생산성을 높이는 방법에 대해서도 생각해보게 되었다.
AI의 영향이 커지는 가운데 단순히 웹 클라인언트 개발만 할 것인지, React Native 를 통한 앱 영역까지의 클라이언트 개발에 참여할지도 고민해보게 되었다.
실패의 경험이 새로운 도약의 발판이 되리라 믿는다.