- λ€μν κ²μ 쑰건μΌλ‘ μ κ΅μ ν€μ¦ μΉ΄νλ₯Ό κ²μ
- μ΄λ°μ ν¬λ‘€λ§μΌλ‘ μ κ΅μ μΉ΄νλ₯Ό μΌκ΄ λ±λ‘
- κ΄λ¦¬μ, μ¬μ₯λ, μ μ κΆνμ λΆμ¬νμ¬ κ° κΆνμ λ°λΌ μ΄μ©κ°λ₯ν κΈ°λ₯μ μ ν
- μμ λ‘κ·ΈμΈ μ°λμΌλ‘ κ°νΈν νμκ°μ
- μμ½ λ° κ²°μ μμ€ν μ°λ
![]() |
![]() |
![]() |
![]() |
![]() |
| πκΉνμ§ (리λ) |
πλ°κ²¬μ° (λΆλ¦¬λ) |
λ°λν (νμ) |
λ₯μ§μ (νμ) |
κΉνμ (νμ) |
|
Github Blog |
Github |
Github Blog |
Github Blog |
Github Blog |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ°λν | POST | Public |
πνμ κ°μ | /api/auth/signup | μλ£ |
| λ°λν | POST | Public |
πλ‘κ·ΈμΈ | /api/auth/signin | μλ£ |
| λ°λν | GET | Public |
πμμ λ‘κ·ΈμΈ | /api/oauth2/{provider}/signin | μλ£ |
| κΉνμ§ | GET | Admin |
πνμ μ‘°ν(κ΄λ¦¬μ) | /api/admin/users | μλ£ |
| κΉνμ§ | GET | Owner |
πνμ μ‘°ν(κ°κ²λ₯Ό μ¦κ²¨μ°ΎκΈ° ν) | /api/owners/users | μλ£ |
| κΉνμ§ | GET | User |
πνλ‘ν μ‘°ν | /api/owners/users | μλ£ |
| κΉνμ§ | PUT | User |
πνλ‘ν μμ | /api/owners/users | μλ£ |
| κΉνμ§ | DELETE | User |
πνμ νν΄ | /api/owners/users | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| κΉνμ | POST | Admin |
πμΉ΄ν λ±λ‘(κ΄λ¦¬μ) | /api/admin/cafes | μλ£ |
| κΉνμ | POST | Owner |
πμΉ΄ν λ±λ‘(μ¬μ₯λ) | /api/owners/cafes | μλ£ |
| κΉνμ | GET | Public |
πμΉ΄ν 리μ€νΈ μ‘°ν(μ μ κ° κ²μ) | /api/cafes | μλ£ |
| κΉνμ | GET | Admin |
πμΉ΄ν 리μ€νΈ μ‘°ν(κ΄λ¦¬μ κ²μ) | /api/admin/cafes | μλ£ |
| κΉνμ | GET | Owner |
πμΉ΄ν 리μ€νΈ μ‘°ν(μ¬μ₯λμ΄ λ±λ‘ν) | /api/owners/cafes | μλ£ |
| κΉνμ | GET | Public |
πμΉ΄ν μμΈ μ‘°ν | /api/cafes/{cafeId} | μλ£ |
| κΉνμ | PUT | Owner |
πμΉ΄ν μμ | /api/cafes/{cafeId} | μλ£ |
| κΉνμ | DELETE | Admin |
πμΉ΄ν μμ (κ΄λ¦¬μ) | /api/admin/cafes | μλ£ |
| κΉνμ | DELETE | Owner |
πμΉ΄ν μμ (μ¬μ₯λ) | /api/owners/cafes | μλ£ |
| κΉνμ | POST | Owner |
πμΉ΄ν μ΄λ―Έμ§ μ λ‘λ | /api/owners/cafes | μλ£ |
| κΉνμ | DELETE | Owner |
πμΉ΄ν μ΄λ―Έμ§ μμ | /api/owners/cafes | μλ£ |
| κΉνμ§ | POST | Admin |
πμΉ΄ν ν¬λ‘€λ§ | /api/owners/cafes | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ₯μ§μ | GET | Public |
πμΈκΈ° μΉ΄ν(ν€μλ κΈ°λ°) κ²μ v1 | /api/cafes/v1/search?keyword={keyword} | μλ£ |
| λ₯μ§μ | GET | Public |
πμΈκΈ° ν€μλ Top 10 v1 | /api/cafes/v1/search/keywords/top10 | μλ£ |
| λ₯μ§μ | GET | Public |
πμΈκΈ° μΉ΄ν(ν€μλ κΈ°λ°) κ²μ v2 | /api/cafes/v2/search?keyword={keyword} | μ§νμ€ |
| λ₯μ§μ | GET | Public |
πμΈκΈ° ν€μλ Top 10 v2 | /api/cafes/v2/search/keywords/top10 | μ§νμ€ |
| λ₯μ§μ | GET | Public |
πμΈκΈ° μΉ΄ν(ν€μλ κΈ°λ°) κ²μ v3 | /api/cafes/v3/search?keyword={keyword} | μ§νμ€ |
| λ₯μ§μ | GET | Public |
πμΈκΈ° ν€μλ Top 10 v3 | /api/cafes/v3/search/keywords/top10 | μ§νμ€ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ°κ²¬μ° | POST | Owner |
πλ£Έ μμ± | /api/cafes/{cafeId}/rooms | μλ£ |
| λ°κ²¬μ° | GET | Public |
πλ£Έ μ‘°ν | /api/cafes/rooms/{roomId} | μλ£ |
| λ°κ²¬μ° | PUT | Owner |
πλ£Έ μμ | /api/cafes/rooms/{roomId} | μλ£ |
| λ°κ²¬μ° | DELETE | Owner |
πλ£Έ μμ | /api/cafes/rooms/{roomId} | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ₯μ§μ | POST | User |
πμ¦κ²¨μ°ΎκΈ° μΆκ° λ° μμ | /api/cafes/{cafeId}/bookmarks | μλ£ |
| λ₯μ§μ | GET | User |
πμ¦κ²¨μ°ΎκΈ° μ‘°ν(μ¬μ©μ) | /api/users/bookmarks | μλ£ |
| λ₯μ§μ | GET | Owner |
πμ¦κ²¨μ°ΎκΈ° μ‘°ν(μΉ΄ν) | /api/owners/bookmarks | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ°κ²¬μ° | POST | User |
π리뷰 μμ± | /api/cafes/{cafeId}/reviews | μλ£ |
| λ°κ²¬μ° | GET | Public |
πνΉμ ν€μ¦ μΉ΄νμ 리뷰 λͺ©λ‘ μ‘°ν | /api/cafes/{cafeId}/reviews | μλ£ |
| λ°κ²¬μ° | GET | User |
πλ΄κ° μμ±ν 리뷰 λͺ©λ‘ μ‘°ν | /api/reviews | μλ£ |
| λ°κ²¬μ° | PUT | User |
π리뷰 μμ | /api/reviews/{reviewId} | μλ£ |
| λ°κ²¬μ° | DELETE | User |
π리뷰 μμ | /api/reviews/{reviewId} | μλ£ |
| λ°κ²¬μ° | POST | Owner |
π리뷰 μ΄λ―Έμ§ μ λ‘λ | /api/reviews/images | μλ£ |
| λ°κ²¬μ° | DELETE | Owner |
π리뷰 μ΄λ―Έμ§ μμ | /api/reviews/images | μλ£ |
| λ°κ²¬μ° | POST | User |
π리뷰 μΆμ² & μΆμ² μ·¨μ | /api/review/recommend/{review_id} | μλ£ |
| κΉνμ§ | POST | User |
πμμμ¦ λ¦¬λ·° | /api/cafes/{cafeId}/receipts/reviews | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ°κ²¬μ° | POST | Owner |
πμ κ³ μμ±(μ¬μ₯λ) | /api/reviews/{reviewId}/reports | μλ£ |
| λ°κ²¬μ° | GET | Owner |
πμ¬μ₯λ λ³ΈμΈμ΄ μ κ³ ν μ κ³ λͺ©λ‘ μ‘°ν(μ¬μ₯λ) | /api/owners/reports | μλ£ |
| λ°κ²¬μ° | GET | Admin |
πμ¬μ₯λλ€μ΄ μ κ³ ν μ κ³ λͺ©λ‘ μ‘°ν(κ΄λ¦¬μ) | /api/admin/reports | μλ£ |
| λ°κ²¬μ° | PATCH | Admin |
πμ κ³ μν λ³κ²½ | /api/reports/{reportId} | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ₯μ§μ | POST | User |
πμμ½ μμ± | /api/reservations/cafes/{cafeId} | μλ£ |
| λ₯μ§μ | GET | User |
πμμ½ λ΄μ μ‘°ν(μ¬μ©μ) | /api/users/reservations | μλ£ |
| λ₯μ§μ | GET | Owner |
πμμ½ λ΄μ μ‘°ν(μΉ΄ν) | /api/owners/reservations/cafes/{cafeId} | μλ£ |
| λ₯μ§μ | GET | OwnerUser |
πμμ½ μμΈ μ‘°ν | /api/users/reservations/{reservationId} /api/owners/reservations/{reservationId} |
μλ£ |
| λ₯μ§μ | PUT | User |
πμμ½ μ 보 μμ | /api/users/reservations/{reservationId}/update | μλ£ |
| λ₯μ§μ | PUT | Owner |
πμμ½ μλ½ | /api/owners/reservations/{reservationId}/approve | μλ£ |
| λ₯μ§μ | PUT | Owner |
πμμ½ μν λ³κ²½ | /api/owners/reservations/{reservationId}/complete | μλ£ |
| λ₯μ§μ | PUT | OwnerUser |
πμμ½ μ·¨μ | /api/users/reservations/{reservationId}/cancel /api/owners/reservations/{reservationId}/{cafeId}/cancel |
μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| κΉνμ§ | POST | Owner |
πκ°κ²© μ μ± μΆκ° | /api/cafes/{cafeId}/prices | μλ£ |
| κΉνμ§ | GET | Owner |
πκ°κ²© μ μ± μ‘°ν | /api/cafes/{cafeId}/prices | μλ£ |
| κΉνμ§ | PATCH | Owner |
πκ°κ²© μ μ± μμ | /api/cafes/{cafeId}/prices/{pricesId} | μλ£ |
| κΉνμ§ | DELETE | Owner |
πκ°κ²© μ μ± μμ | /api/cafes/{cafeId}/prices/{pricesId} | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ°λν | PATCH | Owner |
πμ μ₯λ£ μμ | /api/cafes/{cafeId}/fees/{feeId} | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| κΉνμ | DELETE | Admin |
πμ λ Ή μ΄λ―Έμ§ μμ | /api/images | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| κΉνμ | POST | Owner |
πν€μ¦ μΉ΄ν νλ‘κ·Έλ¨ μΆκ° | /api/cafes/{cafeId}/lessons | μλ£ |
| κΉνμ | GET | Owner |
πν€μ¦ μΉ΄ν νλ‘κ·Έλ¨ μ‘°ν | /api/cafes/{cafeId}/lessons | μλ£ |
| κΉνμ | PATCH | Owner |
πν€μ¦ μΉ΄ν νλ‘κ·Έλ¨ μμ | /api/lessons/{lessionId} | μλ£ |
| κΉνμ | DELETE | Owner |
πν€μ¦ μΉ΄ν νλ‘κ·Έλ¨ μμ | /api/lessons/{lessonId} | μλ£ |
| λ΄λΉμ | Method | Role | κΈ°λ₯ | API path | μ§ν μν |
|---|---|---|---|---|---|
| λ°λν | POST | Owner |
πμΏ ν° μμ± | /api/cafes/{cafeId}/coupons | μλ£ |
| λ°λν | GET | User |
πμΏ ν° μ‘°ν(μ¬μ©μ) | /api/users/coupons | μλ£ |
| λ°λν | GET | Owner |
πμΏ ν° μ‘°ν(μ¬μ₯λ) | /api/owners/cafes/{cafeId}/coupons | μλ£ |
| λ°λν | POST | Owner |
πμΏ ν° μ§κΈ | /api/{couponId}/assign/{userId} | μλ£ |
| λ°λν | POST | User |
πμΏ ν° μ¬μ© | /api/{couponId}/use | μλ£ |
'KidsCafe'
βββ 'api' # APIμ κ΄λ ¨λ 컨νΈλ‘€λ¬, νν°, μΈν°μ
ν°, μΈλΆ μ°λ λ‘μ§
β βββ 'auth' # μΈμ¦ λ° μΈμ¦ κ΄λ ¨ λ‘μ§
β β βββ 'controller' # μΈμ¦ μμ²μ μ²λ¦¬νλ 컨νΈλ‘€λ¬
β β βββ 'exception' # μΈμ¦ κ΄λ ¨ μμΈ μ²λ¦¬
β β βββ 'service' # μΈμ¦ μλΉμ€ λ‘μ§
β βββ 'filter' # μμ² νν° μ²λ¦¬
β βββ 'interceptor' # μΈν°μ
ν°λ₯Ό ν΅ν μμ²/μλ΅ μ²λ¦¬
β βββ 'kakao' # μΉ΄μΉ΄μ€ APIμμ μ°λ
β βββ 'naver' # λ€μ΄λ² APIμμ μ°λ
β βββ 'oauth2' # OAuth2 μΈμ¦ κ΄λ ¨ λͺ¨λ
β βββ 'adapter' # OAuth2 μ΄λν° κ΅¬μ±
β βββ 'config' # OAuth2 μ€μ
β βββ 'controller' # OAuth2 κ΄λ ¨ μμ² μ²λ¦¬
β βββ 'provider' # OAuth2 μ 곡μ μ€μ
β βββ 'service' # OAuth2 μλΉμ€ λ‘μ§
βββ 'common' # κ³΅ν΅ λͺ¨λ λ° μ νΈλ¦¬ν°
β βββ 'annotation' # μ΄λ
Έν
μ΄μ
μ μ
β βββ 'config' # κ³΅ν΅ μ€μ
β βββ 'dto' # 곡ν΅μ μΌλ‘ μ¬μ©λλ λ°μ΄ν° κ°μ²΄
β βββ 'entity' # κ³΅ν΅ μν°ν° μ μ
β βββ 'enums' # κ³΅ν΅ Enum μ μ
β βββ 'util' # κ³΅ν΅ μ νΈλ¦¬ν°
βββ 'config' # νλ‘μ νΈ μ 체 μ€μ
βββ 'domain' # λΉμ¦λμ€ λλ©μΈ λͺ¨λ
β βββ 'bookmark' # μ¦κ²¨μ°ΎκΈ° κ΄λ¦¬
β βββ 'cafe' # μΉ΄ν κ΄λ ¨ λλ©μΈ
β βββ 'coupon' # μΏ ν° κ΄λ¦¬
β βββ 'fee' # μκΈ κ΄λ¦¬
β βββ 'image' # μ΄λ―Έμ§ κ΄λ¦¬
β βββ 'lesson' # λ μ¨ κ΄λ¦¬
β βββ 'pricepolicy' # κ°κ²© μ μ±
κ΄λ¦¬
β βββ 'recommend' # μΆμ² μμ€ν
β βββ 'report' # μ κ³ κ΄λ¦¬
β βββ 'reservation' # μμ½ κ΄λ¦¬
β βββ 'review' # 리뷰 λ° μμμ¦ μ€μΊ
β βββ 'room' # λ£Έ μ 보 κ΄λ¦¬
β βββ 'user' # μ¬μ©μ κ΄λ¦¬
βββ 'dummy' # ν
μ€νΈ λ°μ΄ν° μμ±
βββ 'exception' # μ μ μμΈ μ²λ¦¬ λ° μμΈ ν΄λμ€









