배달의민족, 요기요, 쿠팡이츠 같은 배달 플랫폼을 보면서
나도 이런 걸 만들어볼 수 있을까?
라는 생각을 해봤다. 사이드 프로젝트로 배달 플랫폼을 개발해보는 것은 꽤 재미있는 도전일 것 같다.
배달 플랫폼들이 어떻게 돌아가는지, 어떤 기술이 필요한지 직접 알아보고, 개발 과정에서 만나는 기술경험이나 여러 가지 문제 해결 등을 정리해보자.
Intro
배달 플랫폼에는 어떤 기술들이 많이 쓰일까? 머리속에 바로 떠오르는건
이벤트? 큐?
아무래도 안정적인 주문과 결제, 빠르고 효율적인 라이더 배정 및 위치기록 등 실시간성이 많이 떠오르니까 자연스럽게 연결되는것 같고, 매장이나 메뉴정보 등은
캐시
를 사용하여 효율적으로 관리하고 있지 않을까 하는 생각이 든다.검색 부분에서는
ES, OpenSearch
같은 검색엔진을 활용하여 형태소 분석을 처리하고 검색성능과 품질을 높이지 않았을까 하는 생각도 든다.아키텍처 설계는 개발을 시작할때, 그리고 진행하면서 유연하게 바꿔보는걸로 하고
오늘은 프로젝트명을 결정과 개발해야하는 프론트, 백엔드 기능들을 정리해서 Mind Map 을 작성해보자.
Project Name
배달 플랫폼 3사 (배달의민족, 요기요, 쿠팡이츠) 의 창립기념일 순으로 첫글자를 따
배요쿠
로 결정(고민은 개발만 늦출뿐)
Mind Map
회사에서
Miro
를 여러 용도로 사용해봤는데, 그 중 Mind Map 템플릿이 작성도 간단하면서 프로젝트 초기에 생각을 정리하기에 참 좋았다.노션에 Miro Embed 기능도 있지만, 노션에 작성된 글을 블로그로 변환하는 과정에서 기능이 정상동작하지 않아서 이미지로 대체하지만,
생각이 날때마다 정제할 생각이므로 최신화된 정보는 여기 링크를 통해서 확인하면 좋을듯 하다.
사실 프론트, 백엔드 이외에도 인프라 구성 등 해야할것 많지만 조금씩 더 정리해보는걸로..
지금 작성된것만 가지고도 에픽 생성하고 타임라인을 산정하면 최소 3개월? 혹은 그 이상을 나올듯한데
이쯤되면 이게 사이드프로젝트가 맞는지가 의문이다.
Try❗️
사이드 프로젝트 진행하면서 꼭 시도해봤으면 하는것
- 인프라 구성
- Docker 를 통한 로컬 개발환경 구성 (MySQL, Redis, ES 등) ⚙️
- AWS 클라우드 기반 서비스 배포 구성 ☁️
- 프론트
- Next.js 를 사용하겠지만, 가능하다면 Flutter 도 Trying 📱
- 백엔드
- 프로젝트에 적합하고 유연한 백엔드 아키텍처 설계 💪🏻
- 클린코드 실천 🧹
Conclusion
이 프로젝트를 통해 배달 플랫폼이 어떻게 돌아가는지, 어떤 기술들이 쓰이는지 알아보게 될 것 같다. (혹은 내가 가지고 있는 지식선에서의 결정일지도 모르지만 😅)
하여튼 각 단계마다 기술적 문제를 해결하면서 실력을 쌓아나갈 수 있을 것이고, 이 과정을 통한 경험이 더 나은 개발자가 되는 밑거름이 될거라고 믿어의심치 않으면서 빨리 개발하러 가봅시다. 💪🏻