260303 TIL

Eungae's avatar
Mar 02, 2026
260303 TIL

오늘 새롭게 알게 된 것

  • Xcode objectVersion 와 CocoaPods 호환성: Xcode 프로젝트의 objectVersion이 높으면 구버전 CocoaPods에서 파싱 에러가 발생할 수 있다. objectVersion을 낮춰서 호환성을 확보하는 방법으로 해결했다.

  • Flutter 번들 ID 마이그레이션 범위: 번들 ID를 변경할 때, 단순히 iOS Info.plist만이 아니라 Android build.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_repositorycontent_repository를 함께 수정하여 하위 호환성을 유지하면서 해결했다.

  • Apple 로그인 버튼 디자인 불일치: 명시적 배경색이 설정되어 있어 다크모드/라이트모드에서 일관되지 않은 모습이었다. 배경색 지정을 제거하고 시스템 기본 스타일을 따르도록 통일했다.

  • 제휴마케팅 구현 계획 수립: 숙소 아필리에이트 프로그램 연동을 위한 구현 계획과 수익 모델을 문서화했다. 기술적 구현보다 비즈니스 로직을 먼저 정리하는 것이 중요하다는 걸 다시 느꼈다.

내일의 핵심 목표

  • 번들 ID 마이그레이션 후 실제 디바이스에서 푸시 알림, Share Extension 등 전체 기능 검증 수행

  • Booking.com 제휴마케팅 문서 기반으로 API 연동 프로토타입 시작

  • Firestore 인덱스 추가 후 콘텐츠 상세 페이지 성능 모니터링 (쿼리 응답 시간 확인)

  • CocoaPods 호환성 픽스가 CI/CD 파이프라인에서도 정상 동작하는지 확인

Share article

나새끼메이커