HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
🏀
[팀14] 슬램 - 우리 주변 농구장 예약
/
🧭
Domain 설계 - 초안 건드리지 말 것
🧭

Domain 설계 - 초안 건드리지 말 것

HTTP Status Code

REST API 관점에서 바라보는 HTTP 상태 코드(HTTP status code)
REST API 관점에서 바라보는 HTTP 상태 코드(HTTP status code) TOC RESTful API 설계 가이드 심화 과정으로 설계 가이드의 HTTP 상태 코드 에 대해서 자세하게 알아보려고 한다. 이번 주제의 핵심은 REST API 관점에서 바라보는 이다. 이 주제를 정한 이유를 알기 위해선 HTTP와 REST 의 관계에 대해서 알 필요가 있다.
REST API 관점에서 바라보는 HTTP 상태 코드(HTTP status code)
https://sanghaklee.tistory.com/61
REST API 관점에서 바라보는 HTTP 상태 코드(HTTP status code)
  • 2xx
    • 200 OK
    • 201 Created : 일반적으로 POST 요청 또는 일부 PUT 요청 이후
    • 204 No Content : 요청에 대해서 보내줄 수 있는 콘텐츠가 없지만, 헤더는 의미있음
  • 4xx
    • 400 Bad Request
    • 401 Unauthorized : 클라이언트가 인증이 안되서(unauthenticated) 작업을 진행할 수 없음
    • 403 Forbidden : 클라이언트가 권한이 없기 때문에 작업을 진행할 수 없는 경우
    • 404 Not Found : 요청한 자료/경로 없음
    • 405 Method Not Allowed : 자원(URI)은 존재하지만 해당 자원이 지원하지 않는 메소드일 때
  • 5xx
    • 500 Server Error

Domain

젤리
  • user
  • follow
  • management
헤이
  • reservation
  • court
  • favorite
플로라
  • alarm
  • chat
 
 
slam domain 상세
백엔드 완료여부)
수정요청
무한스크롤
책임자
Method
URL
기능
Domain
Entity
비고
프론트 요구자
요청사항
수정요청
젤리
POST
/api/v1/users/join
회원가입
user
user
카카오(Oauth2.0)
수정요청
젤리
POST
/api/v1/users/me
추가 정보 입력
user
user
수정요청
젤리
GET
/api/v1/users/me - 토큰만 필요
내 정보 조회
수정요청
젤리
PUT
/api/v1/users/me
내 정보 수정
user
user
수정요청
젤리
PUT
/api/v1/users/me/image
내 프로필 이미지 수정
user
user
수정요청
젤리
DELETE
/api/v1/users/me/image
내 프로필 이미지 삭제
user
user
수정요청
젤리
GET
/api/v1/users/{userId}
회원 프로필 조회
user
user
follow
수정요청
무한스크롤
젤리
GET
/api/v1/follow/{userId}/follwers
팔로우 목록 조회
follow
user
follow
수정요청
무한스크롤
젤리
GET
/api/v1/follow/{userId}/followings
팔로잉 목록 조회
follow
user
follow
수정요청
젤리
POST
/api/v1/follow/{userId}
팔로우 맺기
follow
user
follow
수정요청
젤리
DELETE
/api/v1/follow/{userId}
팔로우 취소
follow
user
follow
백엔드 완료여부)
헤이
GET
/api/v1/courts/all
농구장 전체 정보 조회
court
court
백엔드 완료여부)
수정요청
무한스크롤
헤이
POST
/api/v1/courts/{userId}/new
사용자가 농구장 추가하기
court
newCourt
백엔드 완료여부)
무한스크롤
헤이
GET
/api/v1/courts/date=&{date}&time=${time}&start=${latitude}%${longtitude}&end=${latitude}%${longtitude}
날짜, 시간, 바운더리로 농구장 검색하기
court
court
reservation
한나
백엔드 완료여부)
헤이
GET
/api/v1/courts/{userID}/detail/{courtId}
사용자가 선택한 코트에 대한 자세한 정보 읽어오기
court
court
reservation
favorite
한나
백엔드 완료여부)
수정요청
헤이
GET
/api/v1/favorites/{userId}
농구장 즐겨찾기 리스트 보기
favorite
user
court
favorite
백엔드 완료여부)
헤이
POST
/api/v1/favorites
농구장 즐겨찾기 추가
favorite
user
court
favorite
백엔드 완료여부)
무한스크롤
헤이
DELETE
/api/v1/favorites/{favoriteId}
농구장 즐겨찾기 제거
favorite
user
court
favorite
헤이
GET
/api/v1/reservations/{userId}/expired
지난 예약 목록 조회
reservation
user
reservation
court
헤이
GET
/api/v1/reservations/{userId}/upcoming
다가올 예약 목록 조회
reservation
user
reservation
court
무한스크롤
헤이
GET
/api/v1/reservations/{userId}/expired/{reservationId}
완료된 예약 상세 조회 (토글버튼)
reservation
user
reservation
follow
앤
헤이
POST
/api/v1/reservations
예약 추가하기
reservation
user
reservation
court
헤이
PATCH
/api/v1/reservations/{reservationId}
예약 변경하기
reservation
user
reservation
court
헤이
DELETE
/api/v1/reservations/{reservationId}
예약 취소하기
reservation
user
reservation
court
무한스크롤
플로라
GET
/api/v1/alarms/{userId}
알람 조회하기
alarm
user
alarmSpeaker
follow
favorite
court
reservation
alarmMessage
follow entity : follow 메시지 관련
플로라
POST
/api/v1/alarms
확성기 저장하기
alarm
alarmSpeaker
front에 미리 주고 확성기 눌렀을때 저장됨 (따라서 user, court, reservation)필요 없음
무한스크롤
플로라
GET
/api/v1/chat/{userId}
채팅 타이틀(목록) 조회하기
chat
user
userCourtMapping
chatTitle
court
무한스크롤
플로라
GET
/api/v1/chat/{chatTitleId}
채팅 내용 조회
chat
user
court
userCourtMapping
chatTitle
chatDetails
alarmSpeaker
확성기 알림 내용을 따로 chatDetails에 저장해야할까요??
플로라
POST
/api/v1/chat/
채팅방 최초 입장하기
chat
chatDetails
플로라
(web socket 처리)
채팅 내용 저장하기
userCourtMapping
수정요청
공통
GET
/api/v1/courts/new
사용자가 추가한 농구장 목록 조회
management
newCourt
No
공통
POST
/api/v1/courts
관리자가 농구장 등록하기
management
newCourt
court
chatTitle
* chatTitle: 새로 추가할 농구장이 기존 농구장이 아니면, 채팅방 새로 생성합니다.
공통
DELETE
/api/v1/courts
등록한 농구장 등록 취소하기
management
newCourt
court
temp (한나) /api/v1/court/{courtId}/reservations/{date}
농구장 특정 날짜의 예약 전체조회
새로 추가된
로그인 시 +
 
 
[PUT] /api/v1/user/{userId}/image
 
[GET] /api/v1/users/join
[POST] /api/v1/users/me
/api/v1/user/modify
 

courts

[POST] /api/v1/courts/{userId}/new
 

favorites

[GET] /api/v1/favorites/{userId}
[POST] /api/v1/favorites
[DELETE] /api/v1/favorites/{favoriteId}
 

reservations

[GET] /api/v1/reservations/{userId}/expired
[GET] /api/v1/reservations/{userId}/upcoming
[POST] /api/v1/reservations
[PATCH] /api/v1/reservations/{reservationId}
[DELETE] /api/v1/reservations/{reservationId}
 

alarms

[GET] /api/v1/alarms/{userId}
[POST] /api/v1/alarms
 

chat

[GET] /api/v1/chat/{userId}
[GET] /api/v1/chat/{chat_title_id}
[POST] /api/v1/chat/
(web socket 처리) 채팅 내용 추가
 

management

[GET] /api/v1/courts/new?status=${status}
[GET] /api/v1/courts
[POST] /api/v1/courts
[DELETE] /api/v1/courts
 
/api/v1/user/{userId}
/api/v1/user/
[GET] /api/v1/users/{userId}
[GET] /api/v1/follow/{userId}/follows
[GET] /api/v1/{userId}/followings
[GET]
/api/v1/follow/{userId}/followings
[POST] /api/v1/follows/{userId}
[DELETE]
/api/v1/follow/{followId}/followers
[GET] /api/v1/courts/all
 
 
 
 
 
 
 

추가
[POST] api/v1/users/images
[DELETE] api/v1/users/{userId}/images
[POST] api/v1/court/images
 
[PUT]
/api/v1/users/me
/api
[DELETE] /api/v1/users/{userId}/image
[DELETE] /api/v1/follow/{userId}/followings
[GET] /api/v1/courts/{date}/{time}
[GET] /api/v1/reservations/{userId}/expired/{reservationId}
/api/v1/courts/{userID}/detail/{courtId}
[GET] /api/v1/courts/date=&{date}&time=${time}&start=${latitude}%${longtitude}&end=${latitude}%${longtitude}
Temp (한나)