StudyRoom Reservation System

API 명세서https://documenter.getpostman.com/view/33322261/2sAY545xq7

기능 요구 사항

커스텀 예외

정리하자….


ERD

StudyroomReservation (3).png

API 엔드포인트 기록

작업 수행 여부 ROLE HTTP 메소드 엔드포인트 설명
[ o ] POST /api/signup 회원 가입
[ o ] POST /api/login 로그인
[ o ] POST /api/reissue 토큰 재발행
[ o ] POST /api/logout 로그아웃
[ o ] USER이상 POST /api/pending-companies 업체 등록 요청
[ o ] SYSTEM_ADMIN GET /api/pending-companies 승인 대기중인 업체 여러건 조회
[ o ] SYSTEM_ADMIN GET /api/pending-companies/{id} 승인 대기중인 업체 단건 조회
[ o ] SYSTEM_ADMIN DELETE /api/pending-companies/{id} 승인 대기중인 업체 거절
[ o ] SYSTEM_ADMIN POST /api/pending-companies/{id} 승인 대기중인 업체 수락
[ o ] USER이상 PUT /api/pending-companies/{id} 승인 대기중인 업체 내역 수정
[ o ] USER이상 GET /api/companies 업체 여러건 조회
[ o ] USER이상 GET /api/companies/{id} 업체 단건 조회
[ o ] STUDYROOM_ADMIN 이상 PUT /api/companies/{id} 업체 정보 수정
[ o ] STUDYROOM_ADMIN 이상 DELETE /api/companies/{id} 업체 삭제
[ o ] STUDYROOM_ADMIN 이상 POST /api/studyrooms/{companyId} 스터디룸 생성
[ o ] USER 이상 GET /api/studyrooms/{companyId} 스터디룸 여러건 조회
[ o ] USER 이상 GET /api/studyrooms/{companyId}/{id} 스터디룸 단건 조회
[ o ] SUTDYROOM_ADMIN 이상 PUT /api/studyrooms/{companyId}/{id} 스터디룸 수정
[ o ] STUDYROOM_ADMIN 이상 DELETE /api/studyrooms/{companyId}/{id} 스터디룸 삭제
[ o ] SUTDYROOM_ADMIN 이상 POST /api/company-post/{companyId} 업체 글 생성
[ o ] USER 이상 GET /api/company-post/{companyId} 업체 글 여러건 조회
[ o ] USER 이상 GET /api/company-post/{companyId}/{id} 업체 글 단건 조회
[ o ] SUTDYROOM_ADMIN 이상 PUT /api/company-post/{companyId}/{id} 업체 글 수정
[ o ] SUTDYROOM_ADMIN 이상 DELETE /api/company-post/{companyId}/{id} 업체 글 삭제

API 명세서https://documenter.getpostman.com/view/33322261/2sAY545xq7

고민 사항

스터디 룸 예약을 할때 동시성 해결을 어떻게 할까 고민이 됐다.

여러 사용자가 동시에 같은 자원에 접근하거나 변경하려 할때 동시성 문제가 발생한다. 또한 스터디 룸의 예약은 시간이라는 자원이 한정되어 있어서 꼭 이를 방지해줘야 할 필요가 있다고 생각했다.