Skip to content

feat: 탐색 상세 기능 완성 및 컴파일 오류 수정 #15#16

Merged
Roy-wonji merged 35 commits intodevelopfrom
feature/exploreDetail
Mar 29, 2026
Merged

feat: 탐색 상세 기능 완성 및 컴파일 오류 수정 #15#16
Roy-wonji merged 35 commits intodevelopfrom
feature/exploreDetail

Conversation

@Roy-wonji
Copy link
Copy Markdown
Contributor

🎯 Summary

탐색 상세 기능을 완성하고 발견된 컴파일 오류들을 수정했습니다.

📝 주요 변경사항

✨ 새로운 기능

  • 탐색 상세 화면 완성: ExploreDetail 기능 구현
  • 장소 도메인 강화: Place API 및 데이터 레이어 완성
  • Web 모듈 추가: WebView 기능 및 프로젝트 구성

🔧 컴파일 오류 수정

  • TCA Coordinator Hashable 오류 해결
    • ProfileCoordinator, AuthCoordinator Screen.State enum hash 구현
  • WebRepresentableView 의존성 문제 해결
    • AnimatedImage → ProgressView 교체 (SDWebImageSwiftUI 제거)
  • AuthCoordinatorView web case 누락 수정

🚀 UX/성능 개선

  • 무한 스크롤 최적화: 카테고리 필터링과 동시 지원
  • 시간 선택 로직 개선: 23시→24시 다음날 처리
  • 로딩 UX 개선: 2초 로딩 시간으로 사용자 경험 향상

🏗️ 아키텍처 개선

  • Clean Architecture 유지: 도메인-데이터-프레젠테이션 레이어 분리
  • TCA 패턴 적용: 상태 관리 및 side effect 처리 최적화
  • 앱 아이콘 업데이트: fastlane 배포 환경 구축

🧪 Test Plan

  • 앱 빌드 및 컴파일 성공 확인
  • 탐색 기능 전체 플로우 테스트
  • ExploreList 카테고리 필터링 및 무한 스크롤
  • 시간 선택 경계 케이스 (23시→24시)
  • WebView 로딩 및 표시 확인
  • Auth 플로우 정상 동작 확인

💡 Breaking Changes

없음

📊 성능 영향

  • 이미지 캐싱 최적화로 메모리 사용량 개선
  • API 호출 최적화로 네트워크 효율성 향상

#14 , #15 , #9

- 카테고리별 핀 표시 (카페, 음식, 게임, 쇼핑 등)
- 스팟 마커 처리 기능이 강화된 NaverMapComponent
- 지도상에서 상호작용 가능한 위치 정보 제공
- NotificationEntity 및 알림 설정 API 인터페이스 추가
- 역 정보에 좌표 데이터 및 favoriteID 필드 추가
- UserSession에 여행 역 좌표 정보 추가
Place 관련 API, 모델, 리포지토리, 서비스 구현
- PlaceAPI, PlaceDTOModel 및 매퍼 추가
- PlaceRepository 및 PlaceService 구현
- Station API 및 서비스 수정
- Place 엔티티, 리포지토리, 유스케이스 추가
- DI 등록 및 탐색 기능 연동
- 앱 로고 리소스 교체 및 디자인 시스템 정리
- Place 도메인 DI 등록 추가
- 로고 리소스 SVG 포맷 최적화
- 탐색 지도 목적지 카메라 동작 개선
- 선택된 스팟 카드 스타일 개선
- 로그인 화면 레이아웃 간소화
- 장소 병합 로직을 O(n²)에서 O(n)으로 최적화
- 지도 마커 터치 핸들러 추가로 선택 상태 초기화
- 카드 전환 및 페이지 로딩 상태 관리 개선
- 위치 캐싱으로 불필요한 위치 요청 방지
- 새로운 ExploreDetailFeature와 ExploreDetailView 추가
- ExploreSelectedSpotCardView에 탭 제스처 구현
- HomeCoordinator에 ExploreDetail 라우팅 로직 추가
- ExploreListSkeletonView UI 개선
- String nilIfEmpty 확장 유틸리티로 이동
- 위치 접근 제어를 위한 LocationPermissionManager 추가
- 카메라 작업을 위한 CameraControlResult 엔티티 및 CameraUseCase 추가
- 위치 관련 비즈니스 로직을 위한 LocationUseCase 추가
- 역 저장소 및 유스케이스 인터페이스 업데이트
위치 좌표 포맷팅, 시간 표시 유틸리티, 텍스트 처리 헬퍼, 장소 핀 아이콘, 다크 그레이 색상 변형을 추가해 탐색 및 장소 상세 수정
- ExploreDetail 화면 레이아웃 간격 조정
- Map 상호작용 활성화 및 중복 fetch 로직 제거
- 히스토리 페이지 사이즈 50으로 증가
Place 기능의 전체 레이어에 걸친 아키텍처 개선:
- PlaceError 도메인 오류 처리 시스템 추가
- PlaceDetailEntity 및 입력 모델 구조 개선
- API부터 UseCase까지 일관된 에러 핸들링 적용
- 장소 상세 정보 데이터 구조 확장
지도 마커 이미지 캐싱, 스켈레톤 로딩 뷰 추가, 조건부 UI 표시 등 성능과 사용자 경험을 개선한 종합적인 업데이트
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- 경로 소요 시간 표시를 위한 RemainingTimeCard 컴포넌트 추가
- 지도 마커 관리 및 경로 시각화 개선
- 앱 아이콘 및 온보딩 로고 이미지 업데이트
- 위치 서비스 비동기 처리 오류 수정
- 장소별 체류 가능 시간(분) 표시 기능 추가
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- 경로 소요 시간 표시를 위한 RemainingTimeCard 컴포넌트 추가
- 지도 마커 관리 및 경로 시각화 개선
- 앱 아이콘 및 온보딩 로고 이미지 업데이트
- 위치 서비스 비동기 처리 오류 수정
- 장소별 체류 가능 시간(분) 표시 기능 추가
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
외부 지도 앱(Apple Maps, Google Maps, 네이버지도) 길찾기 연동
구현. 경로 계산 중 스켈레톤 로딩 UI 추가하고 지도 다크모드를
라이트모드로 변경. 출발시간 선택 로직 개선 및 디버그 로그 정리.
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- 네이버/구글/카카오맵 URL 스킴 및 entitlements 추가
- 앱 설치 확인 로직 및 딥링크 파싱 개선
- 코드 사이닝 및 샌드박스 설정 업데이트
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- UserSession에 isGuest 필드 추가
- LoginFeature에서 presntGuestLookAround 액션 처리 시 isGuest = true 설정
- OnBoardingFeature에서 비회원일 때 API 통신(signUpUseCase.registerUser) 건너뛰기
- 비회원 모드에서 바로 onBoardingCompleted로 이동하여 메인 화면 진입
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- UserSession에 accessToken 필드 추가
- OnBoardingFeature에서 isGuest 플래그뿐만 아니라 accessToken 유무도 확인
- accessToken이 비어있거나 isGuest가 true인 경우 API 통신 건너뛰기
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- UserSession에서 accessToken 필드 제거 (보안 강화)
- OnBoardingFeature에 KeychainManager 의존성 주입
- Keychain에서 accessToken 존재 여부로 회원/비회원 판단
- accessToken이 없거나 isGuest가 true인 경우 API 통신 건너뛰기
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- TrainStationView에서 비회원일 때 즐겨찾기 버튼 숨김 처리
- TrainStationFeature에서 비회원일 때 API 실패 시 기본 주요 역 데이터로 폴백
- StationRowModel에 makeDefaultMajorStations() 메소드 추가
- 비회원도 주요 역(강남, 홍대입구, 신촌 등) 선택 가능
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- 비회원도 API 응답을 받을 수 있도록 기본 데이터 폴백 제거
- publicProvider 사용하는 API가 비회원에게도 정상 응답하도록 수정 필요
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- @shared userSession이 있을 때 Hashable 프로토콜 충돌 수정
- 비회원일 때 즐겨찾기 섹션 숨김 로직 복원
- 수동 Hashable 구현으로 @shared 프로퍼티 호환성 확보
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- 복잡한 Dictionary 표현식을 별도 변수로 분리
- updateRowsWithFavoriteStatus 헬퍼 함수 추가
- 반복되는 StationEntity 생성 로직 모듈화로 컴파일 성능 향상
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- allStation API는 notAccessTokenHeader 사용하여 Authorization 헤더 제거
- addFavoriteStation, deleteFavoriteStation은 여전히 baseHeader 사용
- 비회원도 역 목록 조회 가능하도록 개선
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
- accessToken 유무에 따라 동적으로 헤더 선택
- 비회원: notAccessTokenHeader (Authorization 헤더 없음)
- 회원: baseHeader (Authorization 헤더 포함)
- 같은 API 엔드포인트로 회원/비회원 모두 지원
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
* TokenProviding 프로토콜 및 구현에 clearToken() 메서드 추가
* 로그아웃/출금 흐름에서 APIHeader 토큰을 올바르게 삭제하도록 업데이트
* 동적 게스트/회원 인증을 지원하도록 서비스 리팩토링
* Splash 및 TrainStation 기능에서 UserSession.isGuest 상태 동기화
* 여행/초대 딥링크를 경로 기반 딥링크 처리 방식으로 대체
* 온보딩 4단계 지도 선택에 대한 유효성 검사 추가
Roy-wonji added a commit that referenced this pull request Apr 1, 2026
feat: 위치 추적 및 경로 검색 기능 개선 #16
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
feat: 탐색 상세 기능 완성 및 컴파일 오류 수정 #15
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
- 경로 소요 시간 표시를 위한 RemainingTimeCard 컴포넌트 추가
- 지도 마커 관리 및 경로 시각화 개선
- 앱 아이콘 및 온보딩 로고 이미지 업데이트
- 위치 서비스 비동기 처리 오류 수정
- 장소별 체류 가능 시간(분) 표시 기능 추가
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
- 경로 소요 시간 표시를 위한 RemainingTimeCard 컴포넌트 추가
- 지도 마커 관리 및 경로 시각화 개선
- 앱 아이콘 및 온보딩 로고 이미지 업데이트
- 위치 서비스 비동기 처리 오류 수정
- 장소별 체류 가능 시간(분) 표시 기능 추가
Roy-wonji added a commit that referenced this pull request Apr 2, 2026
외부 지도 앱(Apple Maps, Google Maps, 네이버지도) 길찾기 연동
구현. 경로 계산 중 스켈레톤 로딩 UI 추가하고 지도 다크모드를
라이트모드로 변경. 출발시간 선택 로직 개선 및 디버그 로그 정리.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ 리팩토링 기존 코드 리팩토링 ✨ 기능추가 새로운 기능 추가 🎨 디자인 UI 디자인 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant