프로젝트 상세위맵 (WeMap)✕
위맵 (WeMap)
친구와 함께한 순간을 사진과 채팅으로 남기는 지도 기반 추억 앨범
2024. 04 – 2024. 06 · 8주 | 1인 (개인 프로젝트)
담당 역할
Firebase 연동
지도 기반 위치 선택 및 앨범 생성
친구 관리 (추가, 즐겨찾기, 알림)
실시간 채팅 및 사진 공유
기술 스택
SwiftUIKitFirebaseNaver Maps SDKCore Location
주요 기능
친구 목록 및 마이페이지
- 유저 검색 및 친구 요청/취소
- 친구 요청과 앨범 초대 수락/거절
- 프로필 수정
지도 및 추억 앨범 생성
- 지도 클릭 시 해당 좌표의 주소 노출
- 원하는 장소에 추억 앨범 생성
- 함께할 친구, 날짜, 앨범 이름 지정
사진 추가 및 목록
- 사진 다중 업로드 기능
채팅
- 추억 앨범 구성원간 실시간 채팅
트러블슈팅
01
탭 전환 시 지도 상태가 초기화되는 문제 해결
문제 상황
탭 전환 시 지도 인스턴스가 재생성되는 문제
4개의 탭에서 공통으로 지도를 사용하는 구조에서, 탭을 전환할 때마다 지도 인스턴스가 새로 생성되어 위치·줌 레벨 등의 상태가 유지되지 않는 문제 발생
초기 해결 시도의 한계
TabBarUI를 커스텀하여 지도 화면을 유지한 채 일부 탭만 전환되는 구조로 변경했으나, 탭바 본래의 화면 전환 역할이 모호해지고 UI 구조가 복잡해짐
해결 및 결과
지도 인스턴스 관리 방식 변경
- 탭바 본래의 화면 전환 역할을 유지하기 위해 기본 TabBarController로 유지
- 싱글턴 패턴을 적용해 지도 인스턴스를 전역에서 단일 참조로 관리하도록 변경
탭 전환과 무관하게 지도 상태 유지
탭 이동 시에도 위치, 줌 레벨 등이 일관되게 유지
탭바 본래의 화면 전환 역할을 유지하면서 상태 공유 가능
탭바 본래의 화면 전환 역할을 유지하면서 상태 공유 가능
02
동일 위치 터치 시 좌표 편차로 인한 중복 앨범 생성 문제 해결
문제 상황
터치 위치에 따라 좌표가 미묘하게 달라지는 문제
지도 클릭 시 해당 좌표로 추억 앨범을 생성하는 구조에서, 동일한 장소를 의도했더라도 터치 위치에 따라 좌표가 미묘하게 달라져 같은 주소에 앨범이 중복 생성되는 문제 발생
해결 및 결과
좌표 정규화 로직 추가
- 지도 클릭 시 Naver Reverse Geocoding API로 해당 좌표의 주소를 조회
- 조회된 주소를 Naver Geocoding API에 재요청하여 정규화된 대표 좌표로 변환
- 변환된 좌표를 마커 표시 및 DB 저장에 사용
동일 주소에 대한 일관된 좌표 보장
같은 주소는 항상 동일한 좌표를 참조하여 중복 앨범 생성 문제 해결