도전 기능 - 요구 사항 정의
Lv3. 연관 관계 설정
- 작성자와 일정의 연결
- 작성자를 할 일과 분리해서 관리
- 작성자 테이블을 생성하고 일정 테이블에 FK를 생성해 연관관계를 설정한다.
- 작성자는 이름 외에 이메일, 등록일, 수정일 정보를 가지고 있다.
- 작성자의 고유 식별자를 통해 일정이 검색이 될 수 있도록 전체 일정 조회 코드 수정.
- 작성자의 고유 식별자가 일정 테이블의 외래키
Lv4. 페이지네이션
- 많은 양의 데이터를 효율적으로 표시하기 위해 데이터를 여러 페이지로 나눈다.
- 페이지 번호와 페이지 크기를 쿼리 파라미터로 전달하여 요청하는 항목을 나타낸다.
- Paging 객체를 활용할 수 있음
Lv5. 예외 발생 처리
- 예외 상황에 대한 처리를 위해 HTTP 상태 코드(링크)와 에러 메시지를 포함한 정보를 사용하여 예외 관리
- 필요에 따라 사용자 정의 예외 클래스를 생성하여 예외 처리를 수행할 수 있다.
- @ExceptionHandler를 활용하여 공통 예외 처리를 구현할 수도 있다.
- 예외가 발생할 경우 적절한 HTTP 상태 코드와 함께 사용자에게 메시지를 전달하여 상황을 관리한다.
Lv6. null 체크 및 특정 패턴에 대한 검증 수행
- 유효성 검사
- @Valid 어노테이션을 이용
- 할일은 최대 200자 이내로 제한, 필수값 처리
- 비밀번호는 필수값 처리
- 담당자의 이메일 정보가 형식에 맞는지 확인
API 명세서
Postman
https://documenter.getpostman.com/view/44635744/2sB2j9687J
일정 관리 앱
`필수 기능` - Lv 0. API 명세 및 ERD 작성 - Lv 1. 일정 생성 및 조회 - Lv 2. 일정 수정 및 삭제 `도전 기능` - Lv 3. 연관 관계 설정 - Lv 4. 페이지네이션 - Lv 5. 예외 발생 처리 - Lv 6. null 체크 및 특정 패턴
documenter.getpostman.com
ERD 설계 및 구현
개념적 설계
논리적 설계 - ERD
물리적 설계
CREATE DATABASE IF NOT EXISTS todoV2;
USE todoV2;
CREATE TABLE authors (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE todos (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
contents TEXT,
author_id BIGINT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (author_id) REFERENCES authors(id) ON DELETE CASCADE
);
'내일배움캠프(Spring 7기) > 내일배움캠프' 카테고리의 다른 글
[CH 3 일정 관리 앱 Develop] 요구 사항 정의 및 설계 (0) | 2025.05.21 |
---|---|
[CH 3 일정 관리 앱 만들기] 정리 & 회고 (0) | 2025.05.13 |
[CH 3 일정 관리 앱 만들기] 필수 기능 - 요구사항 정의 및 설계 (7) | 2025.05.08 |
[CH 2 키오스크 과제] 정리 & 회고 (0) | 2025.04.29 |
[CH 2 키오스크 과제] 요구사항 정의 (1) | 2025.04.29 |