/Backend-Assignment-1

InitCloud Backend Assignment1

Primary LanguageJava

[Backend] - 과제 1

과제 개요

  • 당신은 회의실을 예약할 수 있는 API를 개발하려 합니다.
  • 다음의 조건과 요구사항에 부합하게 API와 테스트 코드(유닛테스트, e2e 테스트)를 작성해주세요.
  • Git 활용, 커밋 메시지, 코딩 컨벤션 등 여러분의 모든 개발 실력을 보여주세요.

제약 조건

(필수)

  • Temurin JDK 11, Spring Boot 2.7.13를 사용합니다.
  • Nginx를 사용하며 버전의 제약은 없습니다.
  • Docker v2를 사용합니다.

(선택)

  • Gradle 7.6을 권장합니다.
  • H2 DB 또는 MariaDB 10을 사용합니다.

요구사항

다음의 API를 구현합니다.

  • API 헬스체크
  • 모든 회의실 목록 가져오기
  • 회의실 정보 가져오기
  • 모든 예약 정보 가져오기
  • ID 로 예약 정보 가져오기
  • 예약 생성
  • 예약 업데이트
  • ID 로 예약 삭제

다음의 요구조건을 충족시켜야 합니다.

  • 상기 제약조건이 동작하는 모든 로컬 환경에서 API 가 동작해야 합니다.
  • 하나의 ID로 하루에 최대 6시간을 예약할 수 있습니다.
  • 예약은 하루 24시간 단위로 이루어지며 여러 날짜에 걸쳐 예약할 수 없습니다.
  • 매일 00시부터 01시까지는 점검시간으로 예약을 할 수 없습니다.

회의실은 다음의 조건을 갖습니다.

  • 대, 중, 소의 회의실이 있습니다.
  • 각 회의실은 크기에 따라 연속으로 예약할 수 있는 시간에 제한이 있습니다.
    • 대: 연속 최대 2시간, 중: 연속 최대 4시간, 소: 연속 최대 6시간

고도화

  • 미처 개발하지 못한 API를 프로젝트 루트 경로의 answer01.md에 작성해주세요.
  • API의 고도화 방안을 answer02.md에 작성해주세요.

제출 방법