회원 관리(인증, 인가)
인증
인가
스터디 룸 업체 등록 요청
스터디 룸 업체
스터디 룸
스터디 룸 글 작성(공지사항)
스터디 룸 업체 글 작성(공지사항)
이미지 파일 저장
스터디 룸 업체, 스터디 룸, 스터디 룸 글, 스터디 룸 업체 글 이미지 파일 저장 가능
이미지 파일은 AWS S3에 저장.(DB도 함께)
커스텀 예외
정리하자….
ERD

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} | 업체 글 삭제 |
고민 사항
스터디 룸 예약을 할때 동시성 해결을 어떻게 할까 고민이 됐다.
여러 사용자가 동시에 같은 자원에 접근하거나 변경하려 할때 동시성 문제가 발생한다. 또한 스터디 룸의 예약은 시간이라는 자원이 한정되어 있어서 꼭 이를 방지해줘야 할 필요가 있다고 생각했다.