
오늘 새롭게 알게 된 것
Xcode
objectVersion와 CocoaPods 호환성: Xcode 프로젝트의objectVersion이 높으면 구버전 CocoaPods에서 파싱 에러가 발생할 수 있다.objectVersion을 낮춰서 호환성을 확보하는 방법으로 해결했다.Flutter 번들 ID 마이그레이션 범위: 번들 ID를 변경할 때, 단순히 iOS
Info.plist만이 아니라 Androidbuild.gradle.kts,MainActivity.kt, Firebase 설정 파일(google-services.json,GoogleService-Info.plist,firebase_options.dart), entitlements, macOS 설정까지 총 20개 이상 파일을 동시에 수정해야 한다.Firestore 복합 인덱스의 필요성:
arrayContains와 다른 필드를 조합한 쿼리는 자동 인덱스로 커버되지 않는다.firestore.indexes.json에 명시적으로 복합 인덱스를 추가해야 쿼리가 정상 동작한다.네이버지도 검색 API 정확도 향상법: 장소명만으로 검색하면 동명이인(?) 장소가 나올 수 있는데, 좌표 + 이름을 조합하면 훨씬 정확한 결과를 얻을 수 있다.
오늘 해결한 문제나 고민
최초 로그인 시
permission-denied레이스 컨디션: 사용자가 처음 로그인할 때 Firestore 문서가 아직 생성되지 않은 상태에서 읽기 요청이 먼저 도착하는 경쟁 조건이 있었다. 라우터 레벨에서 인증 상태 확인 로직을 보강하여 해결했다.콘텐츠 상세 장소 조회 실패:
userId필터 누락과 구(舊) 데이터 형식 호환 문제가 겹쳐 있었다.place_repository와content_repository를 함께 수정하여 하위 호환성을 유지하면서 해결했다.Apple 로그인 버튼 디자인 불일치: 명시적 배경색이 설정되어 있어 다크모드/라이트모드에서 일관되지 않은 모습이었다. 배경색 지정을 제거하고 시스템 기본 스타일을 따르도록 통일했다.
제휴마케팅 구현 계획 수립: 숙소 아필리에이트 프로그램 연동을 위한 구현 계획과 수익 모델을 문서화했다. 기술적 구현보다 비즈니스 로직을 먼저 정리하는 것이 중요하다는 걸 다시 느꼈다.
내일의 핵심 목표
번들 ID 마이그레이션 후 실제 디바이스에서 푸시 알림, Share Extension 등 전체 기능 검증 수행
Booking.com 제휴마케팅 문서 기반으로 API 연동 프로토타입 시작
Firestore 인덱스 추가 후 콘텐츠 상세 페이지 성능 모니터링 (쿼리 응답 시간 확인)
CocoaPods 호환성 픽스가 CI/CD 파이프라인에서도 정상 동작하는지 확인