Summary
지도, 피드, 코스에서 사용자가 명시적으로 장소를 검색/선택하고 해당 장소 기준으로 표시 내용을 필터링할 수 있게 한다.
현재는 각 카드/버튼에서 특정 장소로 이동하는 export-style navigation은 있지만, 사용자가 먼저 장소를 입력해 지도 / 피드 / 코스에서 보고 싶은 장소만 보는 input-driven filter가 없다.
Scope
- 공통
PlaceSearchFilter 또는 owner-local equivalent를 만든다.
- 지도: 선택 장소 중심 이동/마커 강조 또는 해당 장소만 표시하는 명시 필터를 제공한다.
- 피드: 기존
placeFilterId 흐름을 사용자 입력 기반으로 연결한다.
- 코스: 선택 장소가 포함된 코스만 필터링한다.
- 검색 후보는 기존 front-consumed place data에서 만든다. API path/response shape/DB/OAuth/KTO provider contract는 변경하지 않는다.
Architecture Boundary
- Responsibility map: search control = place query/select UI, tab owner = domain filtering policy.
- Dependency direction: shared search emits place id/query; Map/Feed/Course consume it through owner props/state.
- Test seam: pure filtering helpers + tab integration/E2E.
- Scope map: explicit place filter input across map/feed/course only.
- Architecture risk: one global search store can overreach; start with App-level selected place filter and tab-local adapters.
Acceptance Criteria
- 사용자는 장소명을 검색해 지도/피드/코스에서 같은 장소 필터를 적용할 수 있다.
- 필터 해제 control이 명확하다.
- 기존 카드의 장소 이동 CTA는 유지한다.
- 하단 네비, 좌측 drawer, 우측 settings drawer 책임과 섞이지 않는다.
Summary
지도, 피드, 코스에서 사용자가 명시적으로 장소를 검색/선택하고 해당 장소 기준으로 표시 내용을 필터링할 수 있게 한다.
현재는 각 카드/버튼에서 특정 장소로 이동하는 export-style navigation은 있지만, 사용자가 먼저 장소를 입력해
지도 / 피드 / 코스에서 보고 싶은 장소만 보는 input-driven filter가 없다.Scope
PlaceSearchFilter또는 owner-local equivalent를 만든다.placeFilterId흐름을 사용자 입력 기반으로 연결한다.Architecture Boundary
Acceptance Criteria