Skip to content

feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현#48

Merged
jjjsun merged 12 commits intodevelopfrom
feat/kakaoMapIntegration
Feb 4, 2026
Merged

feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현#48
jjjsun merged 12 commits intodevelopfrom
feat/kakaoMapIntegration

Conversation

@jjjsun
Copy link
Copy Markdown
Contributor

@jjjsun jjjsun commented Feb 4, 2026

💡 개요

카카오맵 SDK를 동적 로딩으로 연동하고, 검색 결과를 지도 마커로 표시해서 선택상태와 검색 상태에 따라 자동으로 지도의 중심이 이동 및 줌 동작을 적용했습니다.

🔢 관련 이슈 링크

💻 작업내용

  • Kakao Maps SDK 동적 로딩 유틸(src/lib/kakao.ts) 추가 및 .env(VITE_KAKAO_JS_KEY) 기반 키 주입
  • KakaoMap 컴포넌트 구현: 지도생성, 마커 랜더링, 마커 클릭 이벤트(상세 모달 오픈) 연결
  • 검색 결과에 따라 지도 bounds 자동 맞춤진행, 그중 식당 1개 선택시 자동으로 식당 중심으로 이동과 줌 진행
  • SearchPage에서 검색/선택 상태 관리 정리 (식당 선택을 해제한 후에 다시 검색할시에 bounds 정상작동하도록 설정)

📌 변경사항PR

  • FEAT: 새로운 기능 추가
  • FIX: 버그/오류 수정
  • CHORE: 코드/내부 파일/설정 수정
  • DOCS: 문서 수정(README 등)
  • REFACTOR: 코드 리팩토링 (기능 변경 없음)
  • TEST: 테스트 코드 추가/수정
  • STYLE: 스타일 변경(포맷, 세미콜론 등)

🤔 추가 논의하고 싶은 내용

  • 마커 스타일 작업은 추후에 진행예정입니다!
  • 기본 주소는 서울시청으로 잡아두었으니 그점 참고 부탁드립니다!

✅ 체크리스트

  • 브랜치는 잘 맞게 올렸는지
  • 관련 이슈를 맞게 연결했는지
  • 로컬에서 정상 동작을 확있했는지
  • 충돌이 없다(또는 브랜치에서 충돌 해결 후 PR 업데이트 완료)

Summary by CodeRabbit

  • New Features

    • 카카오 지도 통합: 인터랙티브 맵, 마커 선택·하이라이트·정보창, SDK 런타임 로더
    • 검색·상세 흐름용 모의 API와 상세 샘플 데이터 제공
  • Improvements

    • 검색 결과와 상세 정보 형식 통일(거리, 썸네일, 위치 포함)
    • 상세 모달의 상태관리(로딩·성공·오류) 및 재시도 UX 추가
    • 카테고리 레이블, 운영시간·휴게시간 표시 개선, 테이블 사진 노출 개선

@jjjsun jjjsun self-assigned this Feb 4, 2026
@jjjsun jjjsun added the feat label Feb 4, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 4, 2026

📝 Walkthrough

Walkthrough

카카오맵 SDK 동적 로드와 KakaoMap 컴포넌트 추가, DTO·어댑터·도메인 타입(RestaurantSummary/RestaurantDetail) 도입, 모의 데이터와 검색·상세 흐름을 SearchPage에 통합해 지도 마커 표시 및 상태 기반 상세 모달 흐름을 구현했습니다. (약 50단어)

Changes

Cohort / File(s) Summary
도메인 타입 & 레이블
src/types/store.ts
도메인 타입 추가: RestaurantSummary, RestaurantDetail, BusinessHour, BreakTime, Category, DaycategoryLabel 매핑 상수 추가.
API DTOs
src/api/dto/store.dto.ts
API DTO 타입 추가: ApiResponseDTO, StoreSearchItemDTO, StoreDetailDataDTO, 페이징·영업시간 관련 DTO 등 정의.
어댑터 (DTO → 도메인)
src/api/adapters/store.adapter.ts
toRestaurantSummary / toRestaurantDetail 추가. 필드 직접 매핑 및 toBreakTime 헬퍼로 optional break 처리.
카카오 SDK 로더
src/lib/kakao.ts
환경변수(VITE_KAKAO_JS_KEY) 기반 싱글톤 방식 SDK 동적 로드 함수 loadKakaoMapSdk() 추가 및 global kakao 선언 보강.
지도 컴포넌트
src/components/map/KakaoMap.tsx
KakaoMap 컴포넌트 추가: SDK 로드, 마커/InfoWindow 생성·관리, 선택/하이라이트, center/selectedLevel 반응, 마운트/언마운트 안전 처리 및 로딩 상태 표시.
레스토랑 UI 컴포넌트
src/components/restaurant/...
RestaurantCard.tsx, RestaurantList.tsx, RestaurantDetailModal.tsx
Card/List: 타입 변경(Restaurant → RestaurantSummary). DetailModal: 상태 기반 렌더링(idle/loading/success/error), 영업시간 포맷 유틸(DAY_LABEL/formatBusinessHours), mainImageUrl/tableImageUrls 등 새 필드 반영.
Mock 데이터 및 유틸
src/mock/stores.search.mock.ts, src/mock/stores.detail.mock.ts, src/mock/store.api.mock.ts
검색용 고정 배열과 상세 데이터 맵, searchMockStores(키워드·반경 필터, 정렬), 거리계산 유틸(haversineKm/toRad) 추가.
페이지 통합
src/pages/SearchPage.tsx
지오로케이션 기반 검색 흐름과 KakaoMap 연동, selectedStoreId 및 detailStatus/detailData/detailError 상태 추가, 상세 조회·재시도 로직 및 모달/맵/리스트 연동 구현.

Sequence Diagram(s)

sequenceDiagram
    actor User as "사용자"
    participant SearchPage as "SearchPage"
    participant MockAPI as "Mock Store API"
    participant KakaoMap as "KakaoMap 컴포넌트"
    participant KakaoSDK as "Kakao Maps SDK"
    participant DetailModal as "DetailModal"

    User->>SearchPage: 검색어 입력 / Enter
    SearchPage->>SearchPage: geolocation 확인 (coords)
    SearchPage->>MockAPI: searchMockStores(lat,lng,keyword)
    MockAPI-->>SearchPage: RestaurantSummary[] 반환
    SearchPage->>KakaoMap: markers={results}, selectedId
    KakaoMap->>KakaoSDK: loadKakaoMapSdk() 호출
    KakaoSDK-->>KakaoMap: SDK 준비완료
    KakaoMap->>KakaoMap: 마커 렌더링 및 InfoWindow 설정
    User->>KakaoMap: 마커 클릭
    KakaoMap->>SearchPage: onSelectMarker(store)
    SearchPage->>MockAPI: getMockStoreDetail(storeId)
    MockAPI-->>SearchPage: RestaurantDetail 반환
    SearchPage->>DetailModal: status=success, restaurant={detail}
    DetailModal-->>User: 상세 정보 표시
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested reviewers

  • yooseolhee
  • dew102938

Poem

🗺️ 카카오 한 줄 불러오니
마커들이 지도 위 춤추네.
클릭 한 번에 상세가 오고,
모의 데이터가 길을 비추네.
작은 타입들이 큰 흐름을 만드네. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 변경사항의 핵심(카카오맵 연동 및 검색 결과 자동 이동)을 명확하고 간결하게 설명하고 있습니다.
Description check ✅ Passed PR 설명이 템플릿을 잘 따르고, 개요, 작업내용, 변경사항, 체크리스트 등을 모두 작성하여 변경내용을 이해하기 쉽습니다.
Linked Issues check ✅ Passed PR 변경사항이 #44 이슈의 핵심 요구사항(카카오맵 SDK 연동, 마커 표시, bounds 자동 조정)을 모두 구현하고 있습니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 카카오맵 연동 및 검색 기능 개선과 직접 관련되어 있으며, 이슈 범위를 벗어나는 변경은 없습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/kakaoMapIntegration

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/pages/SearchPage.tsx (1)

12-50: ⚠️ Potential issue | 🟠 Major

검색 중 로딩 상태가 없고, 예약 버튼 클릭 시 조건부 렌더링으로 인한 침묵 실패

현재 구조에서 selectedLegacy를 찾지 못하면(ID 미존재 시) 예약 모달이 아무 피드백 없이 렌더링되지 않습니다. 또한 검색 결과 영역(251-257줄)에서 로딩 상태가 없어서 사용자가 검색 중인지 알 수 없어요.

개선 방안:

  1. 검색 중 로딩 표시 추가
  2. selectedLegacy가 null일 때는 에러 또는 경고 메시지 표시
  3. 예약 데이터 소스 통합 검토: 현재 MOCK_RESTAURANTS(레거시)와 MOCK_STORE_DETAIL_BY_ID(신규)를 분리 관리 중인데, 모두 RestaurantDetail 기반으로 통일하거나 서로 동기화하는 방식 추천
예시 수정 (로딩 상태 + 에러 피드백)
// 검색 영역에 로딩 상태 추가
const [isSearching, setIsSearching] = useState(false);

const runSearch = async () => {
  setIsSearching(true);
  try {
    // ... 기존 검색 로직
  } finally {
    setIsSearching(false);
  }
};

// 렌더 부분
<div className="mt-6 w-full max-w-2xl mx-auto">
  {isSearching && <p className="text-blue-500">검색 중...</p>}
  {searchError && <p className="text-red-500">{searchError}</p>}
  {!isSearching && hasSearched && results.length === 0 && (
    <p className="text-gray-500">검색 결과가 없습니다</p>
  )}
  {hasSearched && !isSearching && (
    <RestaurantList restaurants={results} onSelect={handleSelectStore} />
  )}
</div>

// 예약 모달 렌더 방어
{detailOpen && detailData ? (
  <RestaurantDetailModal {...props} />
) : null}
{selectedLegacy ? (
  <ReservationModal {...props} />
) : null}
🤖 Fix all issues with AI agents
In `@src/api/adapters/store.adapter.ts`:
- Around line 11-24: toRestaurantSummary currently returns a RestaurantSummary
but omits the required location: Location field, causing TypeScript errors
because StoreSearchItemDTO lacks coords; update the adapter so
toRestaurantSummary populates location by either (A) reading lat/lng properties
from StoreSearchItemDTO if you add them (e.g., dto.latitude/dto.longitude →
location: { lat: dto.latitude, lng: dto.longitude }) or (B) calling your
geocoding helper before mapping (e.g., await geocodeAddress(dto.address) and set
location to the returned {lat,lng}); ensure the returned object from
toRestaurantSummary includes location: Location and adjust StoreSearchItemDTO or
the calling flow accordingly to provide coordinates.

In `@src/api/dto/store.dto.ts`:
- Around line 1-6: The ApiResponseDTO type incorrectly defines the payload field
as date: T; update the ApiResponseDTO type definition (symbol: ApiResponseDTO)
to use data: T instead of date so it matches the shape used elsewhere (e.g.,
ApiResponse<T>) and the real API responses; ensure any references in the same
file to the old property name are updated accordingly to avoid type mismatches
at compile/runtime.

In `@src/components/map/KakaoMap.tsx`:
- Around line 81-90: There are two duplicated useEffect blocks that both call
mapRef.current.setLevel and the map is never panned to the selected store;
consolidate into a single useEffect (watching selectedId and selectedLevel) that
first ensures kakao.maps and mapRef.current exist, then if selectedId exists
call mapRef.current.panTo(location) using the marker/position for that
selectedId, and only call mapRef.current.setLevel(selectedLevel) when
selectedLevel is defined (make setLevel conditional). Update/remove the other
duplicate useEffect so only this unified effect handles panning and zooming.
- Around line 91-123: The code injects store.name directly into the HTML string
passed to infoRef.current.setContent causing XSS risk; instead, build a DOM
element and assign the store.name via textContent to escape any markup, then
pass that element (not an HTML string) to infoRef.current.setContent and open it
with mapRef.current and marker; update the marker click handler in the useEffect
(where kakao.maps.event.addListener is set) to create the safe element, use
infoRef and setContent with the element, and keep onSelectMarker?.(store)
unchanged.

In `@src/components/restaurant/RestaurantDetailModal.tsx`:
- Around line 63-140: The modal's accessibility needs fixes: in
RestaurantDetailModal (the status === "idle" | "loading" and status === "error"
branches) add descriptive aria-labels to the icon-only close buttons (the
<button> that renders <X />) and to the overlay button (the absolute inset-0
bg-black/40 button) so screen readers can identify their purpose; also update
the modal container's aria-label (currently "식당 상세 로딩") to reflect the actual
state (e.g., "식당 상세 — 로딩" for loading and "식당 상세 — 오류" for error) and ensure the
same labelled close button appears in the success branch/header; use existing
props onOpenChange and onRetry to keep behavior unchanged and update the buttons
near the X icons, overlay button, and header X in the success branch
accordingly.

In `@src/lib/kakao.ts`:
- Around line 22-38: The loadingPromise currently stays rejected after a script
load failure and prevents future retries; modify the code that creates/assigns
loadingPromise (the Promise created in the module and used by loadKakaoMapSdk /
loadingPromise) so that whenever you reject (both in script.onerror and in the
onload branch where window.kakao?.maps?.load is missing) you first reset
loadingPromise to null/undefined before calling reject, and also reset it if you
successfully resolve or after cleanup to ensure subsequent calls create a new
Promise; update any places that read loadingPromise to allow recreation when it
is null/undefined.

In `@src/mock/store.api.mock.ts`:
- Around line 40-52: The computed distanceKm is only used for filtering/sorting
but not included in the returned records; update the return so each result
includes the calculated distanceKm. In the block that builds withDistance (using
haversineKm(center, r.location) and variables radiusKm, sort), map the final
output to return either a new object merging r with distanceKm (e.g., {...r,
distanceKm}) or otherwise set a distanceKm property on the record before
returning so the UI receives the actual computed distance.

In `@src/pages/SearchPage.tsx`:
- Around line 52-95: The race condition occurs when openDetail or retryDetail
fire concurrent async fetchStoreDetailMock calls and a slower earlier call
overwrites a later result; add a request-id guard: create a mutable request
counter (e.g., useRef requestIdRef) incremented at the start of openDetail and
retryDetail, capture the current id in a local variable before awaiting, and
only call setDetailData/setDetailStatus/setDetailError when the captured id
matches requestIdRef.current; reference the functions openDetail, retryDetail,
fetchStoreDetailMock and the state setters setDetailData, setDetailStatus,
setDetailError (and selectedStoreId) to ensure only the latest request updates
state.
🧹 Nitpick comments (1)
src/pages/SearchPage.tsx (1)

178-257: 검색 로딩/빈 결과 상태 표시 추가 권장

runSearch가 비동기인데 로딩 상태가 없어 연속 클릭/엔터 시 UX가 불안정할 수 있어요. isSearching 상태로 버튼 비활성화/로딩 표시, 그리고 hasSearched && results.length === 0일 때 빈 결과 메시지를 보여주면 좋습니다.

🔧 간단한 예시
+  const [isSearching, setIsSearching] = useState(false);

   const runSearch = async () => {
+    setIsSearching(true);
     setHasSearched(true);
     ...
     try {
       const items = await searchMockStores({ ... });
       setResults(items);
       ...
     } catch (e) {
       ...
     } finally {
+      setIsSearching(false);
     }
   };
...
-        {hasSearched ? (
-          <RestaurantList restaurants={results} onSelect={handleSelectStore} />
-        ) : null}
+        {hasSearched ? (
+          results.length === 0 && !searchError && !isSearching ? (
+            <p className="mt-2 text-sm text-gray-500">검색 결과가 없어요.</p>
+          ) : (
+            <RestaurantList restaurants={results} onSelect={handleSelectStore} />
+          )
+        ) : null}

As per coding guidelines, src/pages/**: 라우팅/레이아웃 영향, 로딩/에러/empty 상태 UX 확인.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/components/map/KakaoMap.tsx`:
- Around line 185-189: The component currently uses a direct check of
window.kakao?.maps in the render which can leave the "로딩 중" message visible
because React may not re-render when the SDK loads; update the KakaoMap
component to track SDK load with a state variable (e.g., isKakaoLoaded) and set
that state to true when the Kakao script's onload fires or when you detect
window.kakao.maps in a useEffect (or via the existing script load handler), then
replace the direct window.kakao?.maps check with the state (render loading UI
while isKakaoLoaded is false) so React updates correctly once the SDK finishes
loading.
🧹 Nitpick comments (5)
src/components/map/KakaoMap.tsx (2)

82-97: 중복된 useEffect로 인해 panTo와 setLevel이 두 번 호출됩니다

Lines 82-97과 Lines 132-156 두 effect 모두 selectedId 변경 시 panTosetLevel을 실행하고 있어서, 선택된 마커로 이동할 때 동일한 로직이 중복 실행돼요.

이전 리뷰에서 panTo 누락 문제는 수정됐지만, 두 effect를 하나로 통합하는 부분은 아직 반영되지 않은 것 같아요. Lines 132-156의 effect가 이미 zIndex 변경 + panTo + setLevel을 모두 처리하고 있으니, Lines 82-97의 effect는 제거해도 될 것 같습니다.

♻️ 중복 effect 제거 제안
-  useEffect(() => {
-    const kakao = window.kakao;
-    if (!kakao?.maps || !mapRef.current) return;
-
-    if (!selectedId) return;
-    const target = safeMarkers.find((m) => m.id === selectedId);
-    if (!target) return;
-
-    const next = new kakao.maps.LatLng(
-      target.location.lat,
-      target.location.lng,
-    );
-
-    mapRef.current.panTo(next);
-    if (selectedLevel) mapRef.current.setLevel(selectedLevel);
-  }, [selectedId, selectedLevel, safeMarkers]);
-
   //3. 마커 바뀌면 마커 재생성

Also applies to: 132-156


43-69: 초기화 effect의 의존성 배열 정리 제안

주석대로 "지도 최초 1회 생성"이 목적인데, [center.lat, center.lng, defaultLevel]이 의존성에 있어서 코드 의도가 모호해 보여요. 실제로는 mapRef.current 체크로 재생성을 막고 있지만요.

초기 center/level만 사용하고 이후 변경은 다른 effect에서 처리하니까, 빈 배열 []로 바꾸고 초기값을 ref나 첫 렌더 값으로 캡처하는 게 의도가 더 명확할 것 같아요.

src/components/restaurant/RestaurantDetailModal.tsx (1)

200-202: hourLines의 key로 텍스트 대신 인덱스나 요일 사용 권장

key={t}로 텍스트 내용을 키로 사용하고 있는데, 만약 두 요일이 같은 운영시간을 가지면 (예: "월: 09:00 - 18:00", "화: 09:00 - 18:00") 중복 키 경고가 발생할 수 있어요.

🔧 안정적인 key 사용
-                    {hourLines.map((t) => (
-                      <p key={t}>{t}</p>
+                    {hourLines.map((t, idx) => (
+                      <p key={idx}>{t}</p>
                     ))}
src/pages/SearchPage.tsx (2)

45-47: 상수와 유틸 함수를 컴포넌트 밖으로 이동 권장

FALLBACK_COORDSgetCoords 함수가 컴포넌트 내부에 정의되어 있어서 매 렌더마다 재생성돼요. 컴포넌트 밖으로 이동하면 불필요한 재생성을 방지할 수 있습니다.

♻️ 상수/함수 이동 제안
+const FALLBACK_COORDS = { lat: 37.5665, lng: 126.978 };
+
+function getCoords(): Promise<{ lat: number; lng: number }> {
+  return new Promise((resolve) => {
+    if (!navigator.geolocation) {
+      resolve(FALLBACK_COORDS);
+      return;
+    }
+    navigator.geolocation.getCurrentPosition(
+      (pos) => resolve({ lat: pos.coords.latitude, lng: pos.coords.longitude }),
+      () => resolve(FALLBACK_COORDS),
+      { enableHighAccuracy: false, timeout: 5000 },
+    );
+  });
+}
+
 export default function SearchPage() {
   // ... 
-  const FALLBACK_COORDS = { lat: 37.5665, lng: 126.978 };
   // ...
-  function getCoords(): Promise<{ lat: number; lng: number }> { ... }

49-52: selectedLegacy는 현재 동작하지만 데이터 소스 분리로 인한 구조적 개선 필요

현재 MOCK_RESTAURANTSMOCK_STORE_SEARCH의 ID가 일치해서 즉각적인 문제는 없어요. 다만 코드가 레거시 Restaurant 타입(예약 모달용)과 새 RestaurantDetail 타입(상세 조회)을 섞어 쓰고 있고, 두 개의 별도 mock 데이터를 유지해야 하는 구조라 향후 유지보수 시 ID 불일치 위험이 있습니다.

실제 API 연동 시에는 MOCK_STORE_DETAIL_BY_IDRestaurantDetail에서 필요한 정보(영업시간, 좌석, 결제정책 등)를 추출해서 예약 모달에 전달하도록 통합하면, mock 데이터 중복을 없애고 타입도 일관성 있게 정리할 수 있을 것 같아요.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/components/map/KakaoMap.tsx`:
- Line 42: The initial state and a rendering check are wrong: change the
useState initializer to check window.kakao?.maps (not .map) by making sdkReady
initialize as !!window.kakao?.maps (symbol: useState and sdkReady), and fix any
places that mistakenly reference the setter setSdkReady in render logic (symbol:
setSdkReady) to instead use the state variable sdkReady; also ensure
loadKakaoMapSdk references window.kakao.maps consistently so the SDK ready flag
is set and the loading message can appear.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/components/map/KakaoMap.tsx`:
- Around line 180-193: The map container in KakaoMap.tsx currently lacks
accessibility attributes; update the root div (the one using containerRef and
className) to include a semantic role (e.g., role="region") and an accessible
label (accept a prop like ariaLabel with a sensible default such as "카카오 지도") so
screen readers can identify the map; tie loading state to ARIA by adding
aria-busy={!sdkReady} on the container and ensure the loading message uses an
aria-live="polite" (and/or role="status") so screen readers announce "카카오맵 로딩
중.." while sdkReady is false; keep prop naming clear (ariaLabel) and maintain
existing containerRef and className usage.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/components/map/KakaoMap.tsx`:
- Around line 44-72: The effect that loads the Kakao SDK (useEffect calling
loadKakaoMapSdk) currently only logs errors so the UI stays stuck showing
loading; add an error state (e.g., sdkError) alongside sdkReady, set sdkError
with the caught error message in the catch of init and ensure sdkReady is false,
and clear sdkError appropriately when a subsequent successful load occurs (e.g.,
before/after setSdkReady(true)). Update the component render to show a
user-facing error message when sdkError is set (use role="alert") and keep the
existing loading UI when !sdkReady && !sdkError; keep references to
containerRef, mapRef and infoRef untouched.

@jjjsun jjjsun merged commit aacfc41 into develop Feb 4, 2026
1 check passed
@coderabbitai coderabbitai bot mentioned this pull request Feb 6, 2026
11 tasks
@jjjsun jjjsun deleted the feat/kakaoMapIntegration branch February 9, 2026 20:04
jjjsun added a commit that referenced this pull request Feb 12, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
jjjsun added a commit that referenced this pull request Feb 12, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

* fix: ownerpage 에러 수정

* feat: 마이페이지 예약현황 API 연동

* chore: 코드래빗반영 수정

* fix: 배포후 에러 수정 (#81)

* fix: Vercel에 SPA rewrite 설정

* fix:메인페이지 하단 사장님으로 등록하기 링크추가

* fix: 메인 하단에 사용하지 않는 링크들 이동 막아둠

* fix: 불필요한 버튼 제거, 버튼 텍스트 수정

* refactor: 주석제거

* fix: 마이페이지 내 계정설정 알림관련 저장 기능 수정

* fix: 코드래빗 수정사항 적용

* refactor: 버튼 디자인 수정

* fix: 예약금 환불불가 안내사항 추가

* feat: 마이페이지 내 가게 관리 내 가게 조회 API 연동

* chore: 코드래빗 반영 수정

* chore: 사용되지 않는 변수 수정

* chore: 코드래빗 반영 수정

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
jjjsun added a commit that referenced this pull request Feb 12, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

* fix: ownerpage 에러 수정

* feat: 마이페이지 예약현황 API 연동

* chore: 코드래빗반영 수정

* fix: 배포후 에러 수정 (#81)

* fix: Vercel에 SPA rewrite 설정

* fix:메인페이지 하단 사장님으로 등록하기 링크추가

* fix: 메인 하단에 사용하지 않는 링크들 이동 막아둠

* fix: 불필요한 버튼 제거, 버튼 텍스트 수정

* refactor: 주석제거

* fix: 마이페이지 내 계정설정 알림관련 저장 기능 수정

* fix: 코드래빗 수정사항 적용

* refactor: 버튼 디자인 수정

* fix: 예약금 환불불가 안내사항 추가

* feat: 마이페이지 내 가게 관리 내 가게 조회 API 연동

* chore: 코드래빗 반영 수정

* chore: 사용되지 않는 변수 수정

* chore: 코드래빗 반영 수정

* fix: 주소 유효성 검사 타이밍 수정, 지역 제한 에러 핸들링 추가

* fix: 영업 시간 유효성 검사 제한 해제

* style: css 수정

* style: 헤더 수정

* remove: 헤더 소개 삭제

* remove: block 삭제

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
jjjsun added a commit that referenced this pull request Feb 12, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

* fix: ownerpage 에러 수정

* feat: 마이페이지 예약현황 API 연동

* chore: 코드래빗반영 수정

* fix: 배포후 에러 수정 (#81)

* fix: Vercel에 SPA rewrite 설정

* fix:메인페이지 하단 사장님으로 등록하기 링크추가

* fix: 메인 하단에 사용하지 않는 링크들 이동 막아둠

* fix: 불필요한 버튼 제거, 버튼 텍스트 수정

* refactor: 주석제거

* fix: 마이페이지 내 계정설정 알림관련 저장 기능 수정

* fix: 코드래빗 수정사항 적용

* refactor: 버튼 디자인 수정

* fix: 예약금 환불불가 안내사항 추가

* feat: 마이페이지 내 가게 관리 내 가게 조회 API 연동

* chore: 코드래빗 반영 수정

* chore: 사용되지 않는 변수 수정

* chore: 코드래빗 반영 수정

* fix: 주소 유효성 검사 타이밍 수정, 지역 제한 에러 핸들링 추가

* fix: 영업 시간 유효성 검사 제한 해제

* style: css 수정

* style: 헤더 수정

* remove: 헤더 소개 삭제

* remove: block 삭제

* fix: 예약 시간 간격 로직 개선

* fix: 매뉴 모달 카테고리 매핑 오류 수정 (#92)

* fix: 메뉴 카테고리 매핑으로 메뉴 모달 오류 해결

* fix: axios수정

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
jjjsun added a commit that referenced this pull request Feb 19, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

* fix: ownerpage 에러 수정

* feat: 마이페이지 예약현황 API 연동

* chore: 코드래빗반영 수정

* fix: 배포후 에러 수정 (#81)

* fix: Vercel에 SPA rewrite 설정

* fix:메인페이지 하단 사장님으로 등록하기 링크추가

* fix: 메인 하단에 사용하지 않는 링크들 이동 막아둠

* fix: 불필요한 버튼 제거, 버튼 텍스트 수정

* refactor: 주석제거

* fix: 마이페이지 내 계정설정 알림관련 저장 기능 수정

* fix: 코드래빗 수정사항 적용

* refactor: 버튼 디자인 수정

* fix: 예약금 환불불가 안내사항 추가

* feat: 마이페이지 내 가게 관리 내 가게 조회 API 연동

* chore: 코드래빗 반영 수정

* chore: 사용되지 않는 변수 수정

* chore: 코드래빗 반영 수정

* fix: 주소 유효성 검사 타이밍 수정, 지역 제한 에러 핸들링 추가

* fix: 영업 시간 유효성 검사 제한 해제

* style: css 수정

* style: 헤더 수정

* remove: 헤더 소개 삭제

* remove: block 삭제

* fix: 예약 시간 간격 로직 개선

* fix: 매뉴 모달 카테고리 매핑 오류 수정 (#92)

* fix: 메뉴 카테고리 매핑으로 메뉴 모달 오류 해결

* fix: axios수정

* docs: readme 최종결과물 링크추가, 폴더구조정리 (#95)

* feat: 식당검색 리스트 스켈레톤 UI 추가, 식당카드에 별점관련 내용 제거 (#97)

* feat: RestaurantListSkeleton 추가

* feat: RestaurantCard 스켈레톤 UI 추가

* feat: SearchPage 로딩 스켈레톤 UI추가, isFetching 기반 상태 분기 정리

* feat: 검색 결과 로딩 UX 개선

* fix: 별점 관련 내용 제거

* chore: 코드래빗 수정사항 반영

* docs: README 서비스 소개/팀소개 추가 (#99)

* docs: README 서비스 소개/팀소개 추가

* docs: README 수정

* docs: img 삭제

* feat: 사업자 인증 대표자명 필드 추가, 예외 처리 보완

* refactor: 네이티브 confirm 창을 커스텀 ConfirmModal로 교체

* refactor: 코드래빗 피드백 반영

* refactor: 코드래빗 피드백 반영

* refactor: 코드래빗 피드백 반영

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
jjjsun added a commit that referenced this pull request Feb 19, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

* fix: ownerpage 에러 수정

* feat: 마이페이지 예약현황 API 연동

* chore: 코드래빗반영 수정

* fix: 배포후 에러 수정 (#81)

* fix: Vercel에 SPA rewrite 설정

* fix:메인페이지 하단 사장님으로 등록하기 링크추가

* fix: 메인 하단에 사용하지 않는 링크들 이동 막아둠

* fix: 불필요한 버튼 제거, 버튼 텍스트 수정

* refactor: 주석제거

* fix: 마이페이지 내 계정설정 알림관련 저장 기능 수정

* fix: 코드래빗 수정사항 적용

* refactor: 버튼 디자인 수정

* fix: 예약금 환불불가 안내사항 추가

* feat: 마이페이지 내 가게 관리 내 가게 조회 API 연동

* chore: 코드래빗 반영 수정

* chore: 사용되지 않는 변수 수정

* chore: 코드래빗 반영 수정

* fix: 주소 유효성 검사 타이밍 수정, 지역 제한 에러 핸들링 추가

* fix: 영업 시간 유효성 검사 제한 해제

* style: css 수정

* style: 헤더 수정

* remove: 헤더 소개 삭제

* remove: block 삭제

* fix: 예약 시간 간격 로직 개선

* fix: 매뉴 모달 카테고리 매핑 오류 수정 (#92)

* fix: 메뉴 카테고리 매핑으로 메뉴 모달 오류 해결

* fix: axios수정

* docs: readme 최종결과물 링크추가, 폴더구조정리 (#95)

* feat: 식당검색 리스트 스켈레톤 UI 추가, 식당카드에 별점관련 내용 제거 (#97)

* feat: RestaurantListSkeleton 추가

* feat: RestaurantCard 스켈레톤 UI 추가

* feat: SearchPage 로딩 스켈레톤 UI추가, isFetching 기반 상태 분기 정리

* feat: 검색 결과 로딩 UX 개선

* fix: 별점 관련 내용 제거

* chore: 코드래빗 수정사항 반영

* docs: README 서비스 소개/팀소개 추가 (#99)

* docs: README 서비스 소개/팀소개 추가

* docs: README 수정

* docs: img 삭제

* feat: 사업자 인증 대표자명 필드 추가, 예외 처리 보완

* refactor: 네이티브 confirm 창을 커스텀 ConfirmModal로 교체

* refactor: 코드래빗 피드백 반영

* refactor: 코드래빗 피드백 반영

* refactor: 코드래빗 피드백 반영

* fix: 토스페이먼츠 고객키값 2글자 미만 오류수정 (#105)

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
jjjsun added a commit that referenced this pull request Feb 20, 2026
* docs: add issue template (#3)

* docs: add PR template (#4)

PR 템플릿 추가

* feat: 식당검색/조회 UI구현 (#8)

* feat: 식당검색/조회 UI구현

* feat: 지도 영역 위에 마커 표시 추가, 검색 결과리스트 UI수정, mock데이터추가및수정

* feat: 로그인/회원가입 UI 및 입력 폼 구현

* chore: 사용하지 않는 Form 컴포넌트 삭제

* style: 체크박스, 회원가입/로그인 이동 버튼, 닫기 버튼 UX 개선

* chore: add shadcn ui components (popover, calendar) and update separator,button (#12)

공용 컴포넌트 추가 및 수정

* chore: add shadcn ui components (popover/calendar) (#13)

* chore: add shadcn ui components (popover, calendar) and update separator,button

* chore: add shadcn ui components (popover, calendar, separator) and deps

* feat: mypage UI 구현(내 정보, 계정 설정, 결제수단, 구독 관리, 예약 현황, 내 가게 관리)

* feat: 고객센터 페이지 레이아웃 및 히어로 섹션(문의 모달) 구현

* feat: 메인 FAQ 섹션 구현

* style: 히어로 섹션 텍스트 줄바꿈(break-keep) 적용

* style: 페이지 레이아웃 간격 수정, 문의하기 폼 텍스트 속성(break-keep) 추가

* feat: 문의처 정보 섹션 구현

* feat: 식당예약 UI구현 (#17)

* wip: reservePage

* wip: reservation modal skeleton

* wip: reserve page

* feat:reserveConfirmModal

* feat:예약 확정 모달 추가

* chore:한국날짜 기준 지난 날짜는 선택불가 기능 추가

* feat:예약금결제모달 구조 UI구현

* style: 예약금 선결제 모달 디자인 구현

* feat:예약시 좌석배치도 추가

* feat:테이블 배치도 기능 구현완료

* feat: 식당id에 따라 존재하지 않는 좌석유형 클릭불가 기능 추가, 흐림처리 추가

* chore: 해당없는 좌석유형 숨김, 예약확인모달- 수정하기 버튼클릭시 기존 선택값유지되도록 설정, 결제수단 버튼 기본값 삭제, style: ReservationConfirmModal.tsx height max 설정

* chore: 결제하기 모달 이탈방지 알림 추가, 다른 예약모달과 코드 동일한 루틴으로 변경

* chore: 예약확정모달에서 테이블번호 추가

* feat: 헤더에 뒤로가기(홈) 버튼 추가

* chore: 식당검색페이지 코드 개선 (#21)

* chore:잇츠파인로고 파일형식 변경

* chore:식당검색 상단을 Layout으로 따로 빼고, logo 넣어서 홈으로가는 링크 추가

* docs: 로고 화질 개선

* refactor:favicon 경로수정

* chore: mypage 리뷰 반영 코드 수정

* fix: 이미지 경로 오류수정 (#23)

* docs: modify PR template filename (#27)

PR템플릿명 수정

* chore: add CodeRabbit config (#29)

* chore: add CodeRabbit config

* chore:coderabbit 말투수정

* chore: coderabbit 오타수정및 필터링에 .coderabbit.yaml추가

* feat: 메인페이지 UI구현 (#25)

* wip: main page header

* feat:mainPage 기본 UI 구현완료

* chore: header부분 Hero.tsx지나서 scrolled 적용되도록 기능 구현

* chore: 스크롤시 떠오르는 효과 구현

* chore: Button에 nav기능추가

* chore: header부분 mobile크기로 변경시 햄버거 나오도록 구현, ForOwnerSection 모바일크기 맞춰서 나오도록 수정

* chore: 오타및 공백수정

* chore: footer 섹션에 max너비 추가

* chore: Header 모바일메뉴 열렸을때, 버튼 크기/폰트 크기/배경색 수정

* chore:영상 스크린 리더 불필요한 읽힘제거

* chore:불필요한 코드 제거

* chore: Feature 카드 컴포넌트 분리

* chore:Header 모바일 변하는 시점 수정 및 모바일에서 길어짐현상 제거

* chore: Join대신 cn으로 통일

* chore: 모바일 화면에서 줄바꿈 자연스럽도록 수정

* chore: header 수정

* chore: 배경용 iframe에 키보드 포커스 제거

* chore: useInView 수정

* chore: 적용되지않는 tailwind 클래스 수정, 주석 수정

* chore: CtaSection.tsx 불필요한/적용안되는 코드 삭제및수정

* refactor: 코드 가독성을 높이기 위한 수정진행

* feat: 새 가게 등록 1단계(사업자 인증) UI 구현

* feat: 새 가게 등록 2단계(가게 정보) UI 구현 및 페이지 경로를 myPage 하위로 이동

* feat: 새 가게 등록 3단계(메뉴 등록) UI 구현

* style: cursor-pointer 추가, 단계별 연결선 스타일 개선, 하단 버튼 여백 개선

* fix: 이미지 메모리 누수, 가격 변환 로직, 폼 접근성 이슈 수정

* feat: 가게 등록 이탈/완료 모달 구현 및 사업자 인증 UX 개선

* feat: phoneNumber 유틸 함수 추가, 가게 정보 폼 적용

* feat: 정기 휴무일 선택 UI 및 스키마 추가

* feat: 예약 정책 UI 및 스키마 추가

* refactor: type=button 지정, aria-label 및 invalid 추가, Label 컴포넌트 적용, console.log 삭제

* fix: 비동기 언마운트 버그 수정, 접근성 개선

* chore: global 스타일 적용 (#33)

* chore: 글로벌 style 세팅(shadcn테마, 폰트, 토큰, 기본 타이포세팅)

* chore: cn 유틸리티를 lib/utils로 통일

* chore: axios 인스턴스 및 요청/응답 인터셉터 설정

* chore: Tanstack Query QueryClient 전역 설정 추가

* chore: API연동 대비 query key관리(keys.ts)추가, 폴더구조 정리

* fix:QueryClientProvider 중복 제거후, queryClient 단일화

* chore:border 중복스타일 제거

* chore: 스위치 버튼에 포커스표시와 ARIA 속성 추가로 접근성 개선

* fix:타이포 기본 적용 조건 수정

* chore: global.css 수정

* chore: owner 쿼리키에 중간키 추가

* chore: 쿼리 키에 넣을 params를 직렬화 가능한 타입으로 제한

* feat: 메뉴/예약금 type 및 mock데이터/hooks 추가 (#35)

* feat:내가게관리 UI 구현

* feat: 예약중 메뉴선택 UI추가 (#39)

* chore: 예약금정책 변경에 따른 코드수정

* feat: 메뉴선택 UI로 이동 구현

* feat: 예약시 메뉴선택 UI모달추가 및 예약금을 메뉴총액대비 예약금률 적용하도록 수정

* chore: hooks 호출 순서 꺠뜨리는 조건부 return 수정, draft 변경시 selectedMenus 상태 동기화누락 수정, aria-label 수정

* chore:오타수정, open prop에 따른 조건부 랜덜이 누락

* chore: 메뉴 최대수량일때 증가버튼 비활성화되도록 기능추가

* style: 너비/패딩 수정

* style: 메뉴선택모달하단부분 예약금 블루색깔추가, 메뉴총액은 가로로 위치변경

* chore: 모바일 너비처리를 위한 코드추가(이전 작업범위)

* chore: 메뉴선택에서 우측상단 X 아이콘은 모달닫기로 수정, 하단에 다음버튼 왼쪽에 이전으로 이동하는 버튼추가

* chore: 식당예약모달에서 우측상단 X아이콘 모달닫기로 수정

* chore: 예약모든 모달 X아이콘 클리시 창닫기로 모드수정, 창닫기알림창 훅 새로 생성해서 모든 모달에 적용

* refactore:주석삭제

* chore: 모달이외지역클릭시 닫기 -> hooks사용으로 변경

* chore:예약금 표시비율 통일

* chore: axios 기본 세팅, 인증/에러 처리 인프라 구축

* refactor: 타입 단언을 타입 가드로 교체

* fix: 콘솔 로그의 오해 소지가 있는 변수명 수정

* [chore]내 가게 관리 리뷰 반영 수정

* chore: 내 가게 관리 리뷰 반영 수정2

* chore:대시보드 추가 수정 밑 버튼 이동 경로 설정

* feat:notFoundPage UI 구현

* style: notFoundPage 버튼, 이모지 스타일 변경

* chore: 내 가게 관리 coderabbit 반영 수정

* chore: notFoundPage coderabbit 반영 수정

* chore:내 가게 관리 coderabbit 반영 수정 2

* fix: 마이페이지 동작 버그 수정 및 내정보 편집 UX 개선 (#43)

* fix:마이페이지에서 뒤로가기 작동되도록 수정

* chore: 마이페이지 상단에 제목 선택시 홈으로 가도록 기능 추가

* style: 마이페이지 안 내정보 부분 디자인 수정

* fix: 전화번호에 number타입만 사용되도록 phoneNumber함수사용

* fix: 내정보 수정가능한 정보들 취소 누를시 원상복구가능하도록 기능 추가

* fix: 이미지 file기반으로 전환

* style: 마이페이지 내에 settingPage 스타일수정

* style: myInfoPage 내에 text-md 제거

* style: 마이페이지 스타일통일 및 text위치통일

* chore: 내 가게 관리 리뷰 반영 수정 및 마이페이지 연결 (+마이페이지 수정)

* chore: 내 가게 관리 coderabbit 반영 수정3

* chore: 내 가게 관리 휴무일 반영 수정 및 리뷰 반영 수정

* [chore]메인화면 내 가게 관리 연결

* chore: 오류페이지 리뷰 반영 수정

* chore: 내가게관리 메뉴관리 수정

* feat : 카카오맵 연동 및 검색 결과 마커 자동으로 이동되도록 구현 (#48)

* refactor: 식당 Summary/Detail 타입 및 DTO/어뎁터 추가

* refactor: 식당 mock을 검색용(Summary)와 상세정보용(Detail)로 분리

* feat: 식당 상세 모달에서 로딩/에러 상태 및 재시도 흐름 추가

* feat: 카카오맵 SDK 로드 및 SearchPage 지도 랜더링 연결

* refactor: 모달 닫기와 전체 초기화 로직 분리

* feat: 지도 중심 이동 및 선택 상태 유지

* feat: 카카오맵 bounds 자동 조정 및 선택 이동 UX 개선

* fix: 코드래빗 피드백 수정, SDK 로드 분리

* chore: 상태변수이용해서 SDK 로딩완료추척

* fix: SDK 참조 오류 수정

* refactor: 스크린리더 정보 추가

* chore: SDK 로딩 실패시 UX개선

* chore: 로고 교체 및 PublicLayout 헤더 통합 (#50)

* chore:로고 변경, PublicLayout에 로그아웃 버튼추가

* refactor: PublicLayout으로 헤더 통합 및 마이페이지 레이아웃 중첩 적용

* chore: 폴더 구조정리, README 업데이트 (#52)

* feat: 회원가입 Role 선택 UI 추가, 스키마 업데이트

* feat: 로그인/회원가입(이메일) API 연동, Axios 인터셉터 구현

* feat: 소셜 로그인 연동 준비 (API 및 모달 핸들러)

* feat: 로그인/회원가입 모달 내 소셜 로그인(Kakao, Google) 기능 적용

* refactor: 로그인/회원가입 로직 Zustand, React Query 도입

* feat: 로그인 상태에 따른 헤더 UI 분기 처리 및 로그아웃 연동

* refactor: 인증/로그아웃 로직 개선, AI 피드백 반영

* refactor: 회원가입 역할 선택 UI 제거, role 'customer' 고정

* refactor: 로그인 UI에서 아이디/비번 찾기 제거

* fix: API 환경변수 통일, 타임아웃 설정, 에러 정규화, 카카오 키 검증 추가

* refactor: 소셜 로그인 SDK 제거 및 OAuth2 방식 전환, 콜백/에러 페이지 구현

* refactor: 소셜 로그인 리다이렉트 URL 확정

* fix: 소셜 로그인 시 서버 URL 설정 확인 로직 추가

* refactor: 회원가입/로그인 API 스펙 Swagger 기준으로 최신화

* style: 회원가입 모달 내 불필요한 약관 안내 문구 제거

* fix: API 명세 반영(isSuccess, /reissue), Refresh 로직 단순화, Auth 타입 강화

* fix: postRefresh 함수에 누락된 isSuccess 검증 로직 추가

* feat: 에러 유틸 함수 추가, 로그인/회원가입 적용

* fix: postSignup 응답 형식을 실제 API 명세에 맞춰 수정 (ApiResponse 제거)

* refactor: 사업자 인증 단계 리팩토링 (스키마 분리 및 개업일자 검증 추가)

* feat: 사업자 인증 API 연동

* refactor: 스웨거 맞춰 스키마, ui 수정 / 이미 인증된 사업자도 식당 등록 단계 진행되도록 개선

* refactor: 스웨거 맞춰 메뉴 등록 스키마, ui 수정

* feat: 식당 등록 API 연동, 데이터 변환 로직 구현

* feat: 내가게관리 대시보드 API 연동 (미완)

* feat:내가게관리 사장 대시보드 API 연동

* fix: 변수 이름 수정

* feat: 식당 대표 이미지 등록 API 연동

* feat: 메뉴 등록 API 연동, 사장 인증 후 권한 갱신을 위한 로그아웃 로직 추가

* feat: 내가게관리 메뉴관리 API 연동

* feat : 예약 API 연동 (#55)

* feat: 예약조회 API endpoints 추가

* chore: 예약 가능시간/테이블 조회 queryKey 추가

* fix: 메뉴 목록 매핑/훅 반환값 정리 및 예약금 계산 오류 수정

* chore: 예약 생성 훅 및 테이블 선택 타입 정리 복구

* 무제한 토큰 설정/예약 모달 테이블 배치도 API 연동 및 좌석 타입 매핑 추가

* fix: 좌석유형 변경시 옵션 사라지는 문제 수정

* fix: 인원/날짜/시간대 재설정시 좌석유형/테이블번호 리셋 설정

* fix: 예약 가능 테이블 조회 연동 및 좌석 없음 상태 처리

* fix: 예약 모달 storeId기반으로 바꾸고, mock 레스토랑제거

* fix: 가게 검색 리스트 API 응답 구조 반영

* fix: 가게 검색 결과 식당명 표시 오류 수정

* chore: 카카오맵 랜더링 이슈 디버깅 로그/relayout추가 (미해결)

* fix: 예약확인모달에서 좌석번호 뜨도록 수정

* chore: 예약 결제 전환중 500발생(서버 zero date 의심, 문의중)

* fix: 예약 생성 요청 서버 오류 해결

* fix: 예약 생성 후 결제 모달로 정상 전환되도록 booking 상태 전달

* feat: 결제 모달 이전 버튼 추가, 예약금률 서버값 연동

* chore:예약확인모달 날짜형식 서버에 문의중(미해결)

* chore: API baseURL 통일 및 v1 엔드포인트 경로 정리

* chore: API baseURL 통일 및 v1 엔드포인트 경로 재정리

* feat: 토스 결제 요청/승인 플로우연동 및 성공시 이동 UX개선

* feat: 결제 실패시 사유 표시 페이지 UX 보강

* fix: 결제성공 페이지 hightlight 덮어쓰기 버그 수정및 오타수정

* feat: 결제 리다이렉트 성공/실패 처리 및 완료 UX 연결

* feat: 토스 결제 위젯 랜더링 및 결제 요청 연결

* feat: 결제 실패 페이지 UI 개선 및 에러 코드별 메세지 처리

* feat: 결제 실패 페이지 UI 개선 및 bookingId 기반 이동처리

* fix: 결제 플로우 안정화

- SuccessPage: 결제 승인(confirm) 중복 호출 방지(ranRef)

- 결제 위젯 초기화/렌더링 흐름 개선

- FailPage: 쿼리 파라미터 대응/이동 처리 보완

* fix: 결제 모달 하나로 통일

* fix: 로그아웃시 userId를 null값으로 변경

* fix: 다른 페이 버튼 안눌리는 오류 수정

* fix: 코드래빗 endpoint관련 수정

* fix: 코드래빗 수정사항적용

* fix: 코드래빗 수정사항 반영 및 불필요한 코드제거

* chore: 코드래빗 수정사항 반영

* fix: 최소인원 최대인원 같은테이블은 하나로 표기하도록 수정, 불필요한 코드 및 주석 제거

* fix: 코드래빗 수정사항 반영

* chore: 코드래빗 수정사항적용(오타및 코드효율성)

* fix: mock데이터 관련 타입제거

* chore: 코드래빗 수정사항 반영

* fix: member info 응답 구조에 맞게 userId 파싱 수정 및 인증 리다이렉트 버그 해결

* fix: 완료모달에서 time 이 undefined로뜨는 에러 수정(draft 타입형식오류)

* chore: 카카오맵 지도오류 해결중(미해결)

* fix: 식당검색시 지도 타일오류 수정

* fix: 검색 결과 주소 기반으로 지도 마커에 표시되도록 수정

* refactor: 미사용 RestaurantMarker 컴포넌트 삭제

* fix: 지도에서 마커 선택할때 해당 위치로 센터 이동

* fix: 파일 삭제 오류 재복구

* feat: 접근 제어 구현

* feat: 내가게관리 가게 설정탭 API 연동

* refactor: 라우팅 접근 제어 안정성 강화, 리다이렉트 UX 개선

* refactor: PrivateRoute 내 불필요한 alert 제거

* fix: Zustand 하이드레이션 상태 업데이트 방식 수정 (안티패턴 해결)

* refactor: 스웨거에 맞춰 문의하기 폼 스키마 및 UI 필드명 동기화

* feat: 1:1 문의 등록 API 연동

* fix: replace 옵션 추가

* refactor: CategoryEnum 명칭 중복 방지를 위해 Menu/Store용으로 각각 분리

* refactor: getValues() 사용, input id 연결

* refactor: 영업 시간 변환 유틸 함수의 암묵적 기본값 제거, 필수값 검증 로직 추가

* refactor: 가게 등록 로직을 mutateAsync, try-catch 패턴으로 변경하여 에러 처리 강화

* fix: 메뉴 가격 유효성 검사 정규식 수정 (0 허용, 불필요한 선행 0 차단)

* fix: 가게 대표 이미지 유효성 검사 강화

* docs: TODO 주석 추가

* chore: 내가게관리 사장 대시보드 코드래빗 반영 수정

* chore: 내가게관리 대시보드 테이블 유형 추가

* chore: 내가게관리 시간슬롯 UI 변경

* chore: 내가게관리 대시보드 코드래빗 반영 수정2

* chore: 메뉴 관리 카테고리 제외

* fix: 메뉴 삭제 알림오류 수정

* chore: 모달 스타일 수정

* refactor: 지오코딩 실패 시 등록 차단 로직 구현

* refactor: 정기 휴무일 접근성 개선

* chore: 가게 설정 코드래빗 반영 수정

* feat: ESC키 핸들러 추가, 모달에 role, aria-modal 등 속성 추가

* fix: 주소 데이터 변환 시 발생할 수 있는 문자열 결합 오류 방지

* refactor: 불필요한 any 타입 캐스팅 제거

* chore: 메뉴관리 코드래빗 반영 수정

* feat: 마이페이지 비밀번호변경/회원탈퇴 API연동 (#71)

* feat: 마이페이지 계정설정 API연동(비밀번호변경/회원탈퇴)

* refactor: 미저장 파일 저장

* WIP: 미저장 파일 저장

* fix: 코드래빗 수정사항 반영

* fix: 회원탈퇴 메세지 프론트에서 처리중(내일 아침중으로 백서버배포후 수정예정)

* fix:코드래빗 수정사항 반영

* fix:폰넘버 지역번호 자릿수 해결로직추가

* feat: 마이페이지 내 정보 조회/수정 API연동 (#63)

* feat:마이페이지 내 정보 조회/수정 API연동

* chore: 프로필이미지 업로드 API연동(500에러터짐 문의중)

* fix: 이미지 파일형식 삭제

* fix: 아이디 제거, 코드래빗 수정사항 반영, 서버 이미지업로드오류 해결중

* fix: 코드래빗 수정사항 반영

* fix: 폰넘버 02 자릿수 로직 추가

* refactor: 주석 제거

* fix: 코드래빗 수정사항 반영

* fix: 마이페이지 내 결제수단 관리 탭 삭제 (#73)

* chore: 코드래빗 반영 수정

* chore: 로고/아이콘 변경 (#75)

* chore: 메인페이지 헤더 로고변경

* chore: publicLayout 로고 변경

* chore: icon수정 및 UX완성도 고도화작업진행

* chore: 로고+텍스트 Link로 요소 변경

* fix: mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제 (#77)

* fix:mock데이터 삭제, 주석 삭제, 안쓰는 데이터 삭제

* style:이미지 파일 추가

* fix: 코드래빗 수정사항 반영

* fix: build수정

* fix: build수정

* fix:build 수정

* fix:build수정

* fix: MyInfoPage 대소문자 정리

* fix:배포용 파일명 대소문자 통일

* chore: trigger vercel redeploy

* fix: ownerpage 에러 수정

* feat: 마이페이지 예약현황 API 연동

* chore: 코드래빗반영 수정

* fix: 배포후 에러 수정 (#81)

* fix: Vercel에 SPA rewrite 설정

* fix:메인페이지 하단 사장님으로 등록하기 링크추가

* fix: 메인 하단에 사용하지 않는 링크들 이동 막아둠

* fix: 불필요한 버튼 제거, 버튼 텍스트 수정

* refactor: 주석제거

* fix: 마이페이지 내 계정설정 알림관련 저장 기능 수정

* fix: 코드래빗 수정사항 적용

* refactor: 버튼 디자인 수정

* fix: 예약금 환불불가 안내사항 추가

* feat: 마이페이지 내 가게 관리 내 가게 조회 API 연동

* chore: 코드래빗 반영 수정

* chore: 사용되지 않는 변수 수정

* chore: 코드래빗 반영 수정

* fix: 주소 유효성 검사 타이밍 수정, 지역 제한 에러 핸들링 추가

* fix: 영업 시간 유효성 검사 제한 해제

* style: css 수정

* style: 헤더 수정

* remove: 헤더 소개 삭제

* remove: block 삭제

* fix: 예약 시간 간격 로직 개선

* fix: 매뉴 모달 카테고리 매핑 오류 수정 (#92)

* fix: 메뉴 카테고리 매핑으로 메뉴 모달 오류 해결

* fix: axios수정

* docs: readme 최종결과물 링크추가, 폴더구조정리 (#95)

* feat: 식당검색 리스트 스켈레톤 UI 추가, 식당카드에 별점관련 내용 제거 (#97)

* feat: RestaurantListSkeleton 추가

* feat: RestaurantCard 스켈레톤 UI 추가

* feat: SearchPage 로딩 스켈레톤 UI추가, isFetching 기반 상태 분기 정리

* feat: 검색 결과 로딩 UX 개선

* fix: 별점 관련 내용 제거

* chore: 코드래빗 수정사항 반영

* docs: README 서비스 소개/팀소개 추가 (#99)

* docs: README 서비스 소개/팀소개 추가

* docs: README 수정

* docs: img 삭제

* feat: 사업자 인증 대표자명 필드 추가, 예외 처리 보완

* refactor: 네이티브 confirm 창을 커스텀 ConfirmModal로 교체

* refactor: 코드래빗 피드백 반영

* refactor: 코드래빗 피드백 반영

* refactor: 코드래빗 피드백 반영

* fix: 토스페이먼츠 고객키값 2글자 미만 오류수정 (#105)

* style: 줄바꿈 수정

* feat: 식당 테이블 이미지 등록, 삭제 ui 구현 및 api 연동

* fix: 가게 검색시 좌표 응답 매핑 추가 (#108)

* fix: 검색 좌표 누락 대비해서 NaN으로 임시 처리

* fix: 가게 검색 좌표 응답 매핑 추가 및 지오코딩 fallback 유지

* fix: 카카오맵 마커 목록에서 location 필수 타입으로 좁혀서 빌드 오류 해결

* fix: 좌표가 0이 될때의 오류 방지 처리, toNum과 normalizeLatLng 함수 의존성배열경고피하기 위해 컴포넌트 외부로 이동, 지도컨테이너 접근성 개선

* refactor: 코드래빗 피드백 반영

* design: 예약 모달 UX 개선 (#111)

* wip: 닫기 UX 구현중(미적용함.미완성)

* design: 모달 열고닫을떄 애니메이션 추가

* chore: return 조건 오류 수정

* fix: 사용하지않는 import 구문삭제하여 build error해결

* feat: 가게 설정 테이블 이미지 삭제 UI 처리 및 삭제 확인 모달 추가 (#113)

* feat: 가게 설정 테이블 이미지 삭제 UI처리 및 삭제 확인 모달 추가

* wip: 서버에서 tableId내려오면 바로 교체

* fix: 가게 설정 테이블 이미지 서버 배포 연동완료

* chore: 코드래빗 수정사항 반영

* fix: 휴무일 클릭시 서버에러 오류를 휴무일로 메세지 변경

* fix: build 오류 해결

* chore: 코드래빗 수정사항 반영

* chore: button에 aria-label

---------

Co-authored-by: Dew <eidnwq@gmail.com>
Co-authored-by: unknown <tjfgml8054@naver.com>
@jjjsun jjjsun added the ✨ Feature 새로운 기능 추가 label Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] 식당리스트 지도 영역에 카카오맵 연동 + 주소 기반 마커 표시

2 participants