JDBC 일정 관리 과제 (1)

ssongyi·2025년 3월 20일
0

개발환경 - IndelliJ IDEA / JDK 17

필수기능

Lv 0. API 명세 및 ERD 작성

  • API 명세서 작성하기
    • API명세서는 프로젝트 root(최상위) 경로의 README.md 에 작성
  • ERD 작성하기
    • ERD는 프로젝트 root(최상위) 경로의 README.md 에 첨부
  • SQL 작성하기
    • 설치한 데이터베이스(Mysql)에 ERD를 따라 테이블을 생성

Lv 1. 일정 생성 및 조회

  • 일정 생성(일정 작성하기)
    • 일정 생성 시, 포함되어야할 데이터
      • 할일, 작성자명, 비밀번호, 작성/수정일을 저장
      • 작성/수정일은 날짜와 시간을 모두 포함한 형태
    • 각 일정의 고유 식별자(ID)를 자동으로 생성하여 관리
    • 최초 입력 시, 수정일은 작성일과 동일
  • 전체 일정 조회(등록된 일정 불러오기)
    • 다음 조건을 바탕으로 등록된 일정 목록을 전부 조회
      • 수정일 (형식 : YYYY-MM-DD)
      • 작성자명
    • 조건 중 한 가지만을 충족하거나, 둘 다 충족을 하지 않을 수도, 두 가지를 모두 충족할 수도 있습니다.
    • 수정일 기준 내림차순으로 정렬하여 조회
  • 선택 일정 조회(선택한 일정 정보 불러오기)
    • 선택한 일정 단건의 정보를 조회할 수 있습니다.
    • 일정의 고유 식별자(ID)를 사용하여 조회합니다.

Lv 2. 일정 수정 및 삭제

  • 선택한 일정 수정
    • 선택한 일정 내용 중 할일, 작성자명 만 수정 가능
      • 서버에 일정 수정을 요청할 때 비밀번호를 함께 전달합니다.
      • 작성일 은 변경할 수 없으며, 수정일 은 수정 완료 시, 수정한 시점으로 변경합니다.
  • 선택한 일정 삭제
    • 선택한 일정을 삭제할 수 있습니다.
      • 서버에 일정 수정을 요청할 때 비밀번호를 함께 전달합니다.

아직 API 명세서 + ERD 작성은 하지 않았다..
우선 일정 생성 + 전체 일정 조회 + 선택 일정 조회 + 선택 일정 수정 + 선택 일정 삭제 까지만 대략적으로 구현했다.
요구하는 세세한 조건은 충족하지 않았다.

사실 당분간의 기록은 트러블슈팅이라기보다 구현해나가는 과정을 기록한다는 말이 더 맞을 것 같다.

build.gradle

디렉토리 구조

일정 생성

ScheduleController

Schedule

ScheduleRequestDto

ScheduleResponseDto

일정 단건 조회

일정 목록 조회

일정 단건 전체 수정

일정 단건 제목 수정

일정 단건 삭제


현재 Controller 에 너무 많은 기능이 내장되어 있다.
요청, 비즈니스 로직, 응답, 예외처리 등의 책임을 분산시킬 생각이다.

또한 서버가 종료되면 데이터가 전부 휘발되어 초기화되는 문제점이 있다.
이 역시 개선할 생각이다.

0개의 댓글