개요
한 사람이 공유 장바구니를 열어 다른 사람들을 초대하면, 각자 자신의 항목을 추가합니다. 주문이 마감되면 각 참여자는 자신이 지불해야 할 정확한 금액을 확인할 수 있으며, 배달비는 추측이 아닌 공정한 방식으로 분배됩니다. 이 앱은 웹 앱으로 동작하며 동일한 코드베이스에서 Android와 iOS로도 배포됩니다.
아키텍처
React, TypeScript, Vite를 사용했으며, Android와 iOS를 위해 Capacitor로 패키징했습니다. Firebase Authentication이 인증을 담당하고, Cloud Firestore가 장바구니, 초대, 기여 내역을 저장합니다. 오프라인 지속성 덕분에 연결이 약한 환경에서도 항목 추가를 계속할 수 있고 이후 동기화됩니다.
엔지니어링
가장 까다로웠던 부분은 정확성과 공정성이었습니다: 역할별로 범위가 제한된 협업, 구성원별 개별 기여, 마감 시점에 변경되지 않는 주문 스냅샷, 그리고 최소 단위까지 정확해야 하는 영수증 및 비용 분배였습니다. RTL을 포함한 아랍어·영어 완전 지원은 처음부터 설계에 포함된 것으로, 나중에 추가된 것이 아니며, 관련 흐름은 크로스 브라우저 및 모바일 테스트로 검증되었습니다.