서비스를 개발할 때 어느 정도의 기간이 필요할까요? 이 질문에 대한 답은 사람마다, 프로젝트마다 참 다를 수밖에 없습니다. 개인의 역량이나 개발에 투입할 수 있는 시간, 목표의 크기와 난이도, 그리고 프로젝트에 참여하는 인원의 수에 따라 천차만별이기 때문이죠.
그래서 이번 글에서는 저의 경우를 예로 들어, 실제로 어떤 과정을 거쳤고 얼마나 시간이 소요되었는지를 공유해보려고 합니다. 특히 전체 일정에 초점을 맞춰 설명해보려 해요.
저는 어느 정도 경력이 있는 미들레벨(중니어..) 개발자이고, 이번 서비스를 혼자서 만들었습니다.
혼자서 개발하는 프로젝트였기 때문에 진행 속도는 전적으로 제 스케줄과 컨디션에 달려 있었죠.
서비스 자체는 난이도가 높은 편은 아니었다고 생각합니다.
기능적인 측면에서도 복잡한 연산이나 대규모 트래픽 처리를 요구하지 않았고,
설계적으로도 아주 심오한 비즈니스 로직이 들어간 건 아니었어요.
회사를 다니는 중에는 실제로 손을 대기 어려워, 머릿속으로 구상만 했습니다.
그 기간이 대략 3개월 정도였는데요, 사실 구상보다는 그냥 회사일에만 집중했어요.
하나에 몰입하면 다른 걸 잘 못하는 성격이라서요...
본격적으로 개발을 시작해서 어느 정도 완성된 버전이 나오기까지는 총 두 달이 걸렸습니다.
초기에는 한 달 정도면 되지 않을까 예상했지만, 생각보다 작업량이 많았고 예상보다 오래 걸렸습니다.
그만큼 초기 기획과 디자인도 마지막에는 꽤 많이 바뀌게 되었죠.
개발 초반, 프로젝트 세팅에 2주 정도를 사용했습니다. 작업은 크게 백엔드, 프론트엔드, 인프라 세 부분으로 나눠서 진행했습니다.
이 중에서 가장 시간이 많이 걸린 건 프론트엔드였습니다. 프론트엔드 경험이 없진 않았지만, 그 경험이 꽤 오래된 것이었고 최근 트렌드와는 많이 달라져 있었거든요. 설문 기능에 사용할 적절한 라이브러리를 찾기 위해 리서치에만 2일 소요되었고, React로 기본 프로젝트를 생성하고 Router, Axios, State 같은 기본 기능을 간략히 구현하는 것에 3일, Component 구조와 CSS 구조를 잡고 Webpack 설정까지 마무리하는 것에 2일이 걸려 총 일주일이 걸렸습니다.
백엔드와 인프라는 익숙한 영역이라 상대적으로 빠르게 진행할 수 있었어요. Spring 프로젝트를 생성하고, Gradle 설정 및 프로퍼티 파일을 Local, Dev, Prod 환경별로 나누어 세팅했습니다. DB는 일단 아주 기본적인 테이블 하나로 시작했고, H2를 사용한 테스트 DB, Docker와 MySQL로 구성한 개발용 DB, 그리고 AWS MySQL로 구성한 운영용 DB를 각각 설정했습니다. 배포는 백엔드는 AWS Elastic Beanstalk에, 프론트엔드는 S3를 사용했습니다. 이 시점에는 아직 도메인을 구매하진 않았고, AWS 상에서 테스트만 해보는 수준으로 마무리했습니다.
본격적으로 서비스를 구성하고 다듬는 단계였습니다. 기술적인 부분보다는 기획적인 고민이 많았던 시기였어요. 설문 항목을 어떻게 만들고, 사용자 선택지를 어떻게 구성하며, 그 데이터를 어떻게 분석할지에 대한 고민이 많았습니다.
백엔드 작업이 중심이었고, 프론트엔드는 설문 라이브러리 적용 및 테스트가 주된 작업이었습니다.
백엔드에서는 유연하고 확장 가능한 구조를 만들기 위해 많은 고민을 했습니다.
비슷하지만 다른 로직들을 어떻게 공통화할지, 코드가 복잡해지지 않도록 하려면 어떤 방식으로 구성해야 할지 등등.
처음부터 완벽한 틀을 만들기보다는, 우선 동작하는 코드를 만들고
틈틈이 리팩토링해 나가는 방식을 택했습니다.
앞으로 어떤 항목들이 추가될지 저도 짐작하기 어려웠기 때문입니다.
코드 리팩토링 뿐만 아니라 디자인 변경 작업도 소소하게 진행했습니다.
그렇게 초기의 아주 러프한 버전이 나오기까지 약 한 달이 걸렸습니다.
지인들에게 보여주니 반응은 "오 신기하다!"와 "아직 너무 테스트 버전 같은데?" 사이 어딘가였어요.
하지만 그건 단지 시작에 불과했고, 진짜 작업은 그 다음부터였습니다.
이후 한 달간은 일주일 단위로 피드백을 받고 수정해 나가는 과정을 반복했습니다. 주말쯤 지인들에게 보여주고 의견을 듣고, 평일에는 그 피드백을 반영해서 고치는 식이었어요.
주된 작업은 디자인 변경, 분석 결과 기능 추가 및 수정, 설문 양식 보완, 그리고 비밀번호 기능 추가 같은 사용성 개선이었습니다. 공지, 소개, 이용약관, 문의하기 같은 부가적인 메뉴도 이 시점에 추가했어요.
매주 눈에 띄게 개선되는 모습을 보며 지인들도 흥미로워했고, 저 역시 꽤 큰 성취감을 느낄 수 있었던 시기였습니다.
설문 항목과 분석 결과, 디자인 등은 꾸준히 개선해 나갈 계획입니다. 리뷰 기능은 사용자가 일정 수 이상 확보되면 시도해 볼 예정이고, 광고도 한번 도전해보고 싶지만 현실적으로 쉽지 않을 것 같아 고민 중입니다.
이런 꾸준한 개선은 제 의지로 충분히 해낼 수 있는 일이라 자신이 있지만, 리뷰 기능이나 광고 같은 외부 반응에 따른 기능은 의지만으로는 어려워 걱정이 앞서기도 합니다. 그리고 과연 이 작업에 또 얼마나 시간이 들지, 아직 감이 잘 안 잡히기도 하고요.
결론적으로 말하면, 이번 프로젝트에는 총 두 달이 소요되었습니다. 어떤 분에게는 생각보다 오래 걸렸다고 느껴질 수 있고, 어떤 분에게는 생각보다 빠르다고 느껴질 수도 있을 것 같아요. 각자의 상황과 목표, 그리고 리소스를 고려해서 계획을 세우고, 이 글이 일정 계획에 조금이라도 참고가 되셨다면 좋겠습니다.