피드로 돌아가기
Dev.toBackend
원문 읽기
Supabase 기반 Ride History 추적 및 Cross-platform 이미지 업로드 설계
Building Ride History & Profile Customization in GusLift
AI 요약
Context
사용자별 전체 주행 이력 조회 및 프로필 이미지 커스텀 기능 구현 필요성 대두. 단순 매칭 데이터가 아닌 실제 주행 완료 상태 기반의 이력 관리와 웹/앱 환경을 모두 지원하는 파일 업로드 체계 구축이 요구됨.
Technical Solution
- Google ID 기반 Supabase 쿼리를 통한 전체 완료 주행 이력의 최신순 조회 구조 설계
- 데이터 무결성 유지를 위해 실제 삭제 대신 driver_hidden 및 rider_hidden Flag를 활용한 Soft Delete 방식 채택
- Ride Lifecycle 관리 로직을 도입하여 'accepted' 상태가 아닌 'completed' 상태의 데이터만 필터링하는 정교한 이력 추출
- Expo ImagePicker API를 활용한 1:1 비율 크롭 및 갤러리 권한 제어 로직 구현
- Web의 File 객체와 Native의 Descriptor({uri, name, type}) 차이를 해결하기 위한 FormData 기반의 Multipart 업로드 전략 수립
- Supabase Storage 업로드 후 생성된 Public URL을 사용자 프로필에 매핑하여 전역 식별자로 활용
실천 포인트
1. 데이터 삭제 시 복구 가능성과 분석 데이터 보존을 위해 Hard Delete 대신 Status Flag 기반의 Soft Delete 검토
2. React Native 환경에서 파일 업로드 구현 시 Web과 Native의 Blob 처리 방식 차이를 고려한 API 인터페이스 설계
3. 서비스 도메인의 생명주기(Lifecycle)를 정의하여 비즈니스 상태에 맞는 데이터 필터링 조건 설정