Github link: https://github.com/gbognon25/spring-schedule-management
일정 관리 App의 기능 Guide
Level1. API 명세서, ERD 작성, MySQL 작성
- API 명세서 작성하기: API명, 요청 값(파라미터), 반환 값, 인증/인가 방식, 데이터 및 전달 형식 등
- ERD 작성하기: Entity Relationship Diagram
- MySQL 작성하기: 설치한 Database(MySQL)에 ERD를 따라 Tables 생성
Level2. 일정 생성 및 조회
1. 일정 생성(일정 작성하기)
- 일정 생성 시, 포함되어야할 데이터
- 할일, 작성자명, 비밀번호, 작성/수정일을 저장
- 작성/수정일은 날짜와 시간을 모두 포함한 형태
- 각 일정의 고유 식별자(ID)를 자동으로 생성하여 관리
- 최초 입력 시, 수정일은 작성일과 동일
2. 전체 일정 조회(등록된 일정 불러오기)
- 다음 조건을 바탕으로 등록된 일정 목록을 전부 조회
- 수정일 (형식 : YYYY-MM-DD)
- 작성자명
- 조건 중 한 가지만을 충족하거나, 둘 다 충족을 하지 않을 수도, 두 가지를 모두 충족할 수도 있습니다.
- 수정일 기준 내림차순으로 정렬하여 조회
3. 선택 일정 조회(선택한 일정 정보 불러오기)
- 선택한 일정 단건의 정보를 조회할 수 있습니다.
- 일정의 고유 식별자(ID)를 사용하여 조회합니다.
Level3. 일정 수정 및 삭제
- 선택한 일정 수정
- 선택한 일정 내용 중 할일, 작성자명만 수정 가능
- 서버에 일정 수정을 요청할 때 비밀번호를 함께 전달합니다.
- 작성일은 변경할 수 없으며, 수정일은 수정 완료 시, 수정한 시점으로 변경합니다.
- 선택한 일정 삭제
- 선택한 일정을 삭제할 수 있습니다.
- 서버에 일정 수정을 요청할 때 비밀번호를 함께 전달합니다.
1. API 명세서
기능 | Methods | URL | Request | Response | 상태 code |
일정 생성 | POST | /api/schedule | Request Body (JSON): {"title":"할일", "task":"내용", "author":"작성자명", "password":"비밀번호"} |
Response (JSON): { "id": 1, "title": "할일", "task": "내용", "author": "작성자명", "createdAt": "YYYY-MM-DD hh:mm:ss", "updatedAt": "YYYY-MM-DD hh:mm:ss" } |
201 (CREATED) |
전체 일정 조회 | GET | /api/schedule | Query Params (Optional): author, updatedAt |
Response (JSON): [ { "id": 1, "title": "할일", "task": "내용", "author": "작성자명", "createdAt": "YYYY-MM-DD hh:mm:ss", "updatedAt": "YYYY-MM-DD hh:mm:ss" } ] |
200 (OK) |
선택 일정 조회 | GET | /api/schedule/{id} | Path Variable: id |
Response (JSON): { "id": 1, "title": "할일", "task": "내용", "author": "작성자명", "createdAt": "YYYY-MM-DD hh:mm:ss", "updatedAt": "YYYY-MM-DD hh:mm:ss" } |
200 (OK) |
일정수정 | PUT | /api/schedule/{id} | Path Variable: id Request Body (JSON): { "title": "할일", "author": "작성자명" } Query Param: password=비밀번호 |
Response (JSON): { "id": 1, "title": "할일", "task": "내용", "author": "작성자명", "createdAt": "YYYY-MM-DD hh:mm:ss", "updatedAt": "YYYY-MM-DD hh:mm:ss" } |
200 (OK) |
일정 삭제 | DELETE | /api/schedule/{id} | Path Variable: id Query Param: password=비밀번호 |
Response: 내용 없음 |
204 (NO CONTENT) |
2. ERD
Entity name : Schedule
Attributes:
1. id: 고유 식별자
2. title: 할일 (일정의 제목)
3. task: 일정의 내용
4. author: 작성자명
5. password: 비밀번호
6. createdAt: 일정의 작성일
7. updatedAt: 일정의 수정일
3. MySQL Table 생성
create table schedule
(
id bigint primary key auto_increment not null,
title varchar(200) not null,
task text not null,
author varchar(50) not null,
password varchar(50) not null,
createdAt datetime not null,
updatedAt datetime not null
);
'Spring Boot' 카테고리의 다른 글
Spring Boot - JPA (Java Persistence API) 기초 (0) | 2024.10.08 |
---|---|
Spring Boot - Inversion of Control (IoC), Dependency Injection (DI) and Bean (0) | 2024.10.07 |
Schedule Management App - Troubleshooting (전체 일정 조회 문제) (0) | 2024.10.04 |
Spring Controller Annotations & CRUD (0) | 2024.09.30 |
Spring Boot - Lombok, MVC Pattern (0) | 2024.09.27 |