내일배움캠프(Spring 7기)/내일배움캠프

[CH 3 일정 관리 앱 만들기] 필수 기능 - 요구사항 정의 및 설계

가지코딩 2025. 5. 8. 16:26

필수 기능 - 요구 사항 정의

 

Lv 0.  API 명세 및 ERD 작성

  • API 명세서 작성하기
    • API 명세서는 프로젝트 root(최상위) 경로의 README.md 에 작성
  • ERD 작성하기
    • ERD는 프로젝트 root(최상위) 경로의 README.md 에 첨부
  • SQL 작성하기
    • 설치한 데이터베이스(Mysql)에 ERD를 따라 테이블을 생성
    • 과제 프로그램의 root(최상위) 경로에 schedule.sql 파일을 만들고, 테이블 생성에 필요한 query를 작성

 

Lv 1. 일정 생성 및 조회

  • 일정 생성(일정 작성하기)
    • 최초 입력 시, 수정일은 작성일과 동일
  • 전체 일정 조회(등록된 일정 불러오기)
    • 다음 조건을 바탕으로 등록된 일정 목록을 전부 조회
      • 수정일 (형식 : YYYY-MM-DD)
      • 작성자명
  • 선택 일정 조회(선택한 일정 정보 불러오기)
    • 일정의 고유 식별자(ID)를 사용하여 조회

 

Lv 2. 일정 수정 및 삭제

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

API 명세서

Postman

https://documenter.getpostman.com/view/44635744/2sB2j9687J

 

일정 관리 앱

`필수 기능` - Lv 0. API 명세 및 ERD 작성 - Lv 1. 일정 생성 및 조회 - Lv 2. 일정 수정 및 삭제 `도전 기능` - Lv 3. 연관 관계 설정 - Lv 4. 페이지네이션 - Lv 5. 예외 발생 처리

documenter.getpostman.com


ERD 설계 및 구현

개념적 설계

 

 

논리적 설계 - ERD

 

 

물리적 설계

CREATE DATABASE IF NOT EXISTS todo;

USE todo;

CREATE TABLE todos (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    contents TEXT,
    author VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);


Spring 프로젝트 구성