📅 ScheduleApp-Server 📅 |
---|
⚒ 프로젝트
1. 프로젝트 이름
- " ScheduleApp-Server "
2. 프로젝트 소개
- 이 프로젝트는 일정과 작성자를 관리할 수 있는 백엔드 API 서버입니다.
- Spring Boot와 MySQL, JDBC 를 사용하여 일정 및 작성자의 CRUD 기능을 제공합니다.
- git brunch 중 "essentail" 은 필수과제, "challenge" 는 도전과제를 뜻합니다.
📌 API 명세
1. 일정 API
2. 작성자 API
🗄️ 데이터베이스 스키마 (SQL Query)
1. [필수] schedule Table
CREATE TABLE schedule (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '식별자',
task TEXT COMMENT '할일',
author CHAR(10) COMMENT '작성자명',
pwd CHAR(20) COMMENT '비밀번호',
created DATETIME COMMENT '작성일',
updated DATETIME COMMENT '수정일'
);
2. [도전] Plan Table
create table plan
(
id bigint auto_increment comment '할일 식별자'
primary key,
authorId bigint comment '작성자 식별자',
task text comment '할일',
pwd char(20) comment '비밀번호',
created timestamp comment '작성일',
updated timestamp comment '수정일',
constraint authorId_FK
foreign key (authorId) references author (id)
on update cascade on delete cascade
);
3. [도전] Author Table
create table author
(
id bigint auto_increment comment '작성자 식별자'
primary key,
name char(10) null comment '작성자명',
email char(100) null comment '이메일',
created datetime null comment '작성일',
updated datetime null comment '수정일',
constraint check_name
check (true)
);
📝 요구사항 체크
Lv 1. 일정 생성 및 조회 完
- 일정 생성(일정 작성하기)
- 일정 생성 시, 포함되어야할 데이터 (할일, 작성자명, 비밀번호, 작성/수정일)
- 작성/수정일은 날짜와 시간을 모두 포함한 형태
- 각 일정의 고유 식별자(ID)를 자동으로 생성하여 관리
- 최초 입력 시, 수정일은 작성일과 동일
- 전체 일정 조회(등록된 일정 불러오기)
- 다음 조건을 바탕으로 등록된 일정 목록을 전부 조회
수정일
(형식 : YYYY-MM-DD)작성자명
- 조건 중 한 가지만을 충족하거나, 둘 다 충족을 하지 않을 수도, 두 가지를 모두 충족할 수도 있습니다.
수정일
기준 내림차순으로 정렬하여 조회
- 선택 일정 조회(선택한 일정 정보 불러오기)
- 선택한 일정 단건의 정보를 조회할 수 있습니다.
- 일정의 고유 식별자(ID)를 사용하여 조회합니다.
Lv 2. 일정 수정 및 삭제 完
- 선택한 일정 수정
- 선택한 일정 내용 중
할일
,작성자명
만 수정 가능- 서버에 일정 수정을 요청할 때
비밀번호
를 함께 전달합니다. 작성일
은 변경할 수 없으며,수정일
은 수정 완료 시, 수정한 시점으로 변경합니다.
- 서버에 일정 수정을 요청할 때
- 선택한 일정 삭제
- 선택한 일정을 삭제할 수 있습니다.
- 서버에 일정 수정을 요청할 때
비밀번호
를 함께 전달합니다.
Lv 3. 연관 관계 설정 - 작성자와 일정의 연결 完
- 작성자 테이블은
이름
외에이메일
,등록일
,수정일
정보를 가지고 있습니다.- 작성자의 정보는 추가로 받을 수 있습니다.(조건만 만족한다면 다른 데이터 추가 가능)
- 작성자의 고유 식별자를 통해 일정이 검색이 될 수 있도록 전체 일정 조회 코드 수정.
- 작성자의 고유 식별자가 일정 테이블의 외래키가 될 수 있도록 합니다.
=> 새로운 ERD 생성
Lv 4. 페이지네이션 完
- 등록된 일정 목록을
페이지 번호
와크기
를 기준으로 모두 조회 - 조회한 일정 목록에는
작성자 이름
이 포함 - 범위를 넘어선 페이지를 요청하는 경우 빈 배열을 반환
- Paging 객체를 활용할 수 있음
해당 페이지네이션 해결한 블로그 링크
2025.03.25 - [백엔드 부트캠프/TIL] - [내일배움캠프Spring-26일차] JDBC 페이징
[내일배움캠프Spring-26일차] JDBC 페이징
1️⃣ 요구사항먼저 요구사항부터 확인 해보자 !1) 설명많은 양의 데이터를 효율적으로 표시하기 위해 데이터를 여러 페이지로 나눕니다.페이지 번호와 페이지 크기를 쿼리 파라미터로 전달하
sintory-04.tistory.com
Lv 5. 예외 발생 처리 完
- 수정, 삭제 시 요청할 때 보내는
비밀번호
가 일치하지 않을 때 예외가 발생합니다. - 선택한 일정 정보를 조회할 수 없을 때 예외가 발생합니다.
Lv 6. null 체크 및 특정 패턴에 대한 검증 수행 完
할일
은 최대 200자 이내로 제한, 필수값 처리비밀번호
는 필수값 처리- 담당자의
이메일
정보가 형식에 맞는지 확인
✅ 오늘의 회고
- 오늘은 과제 제출날이다. 어제 미리 API 문서랑 ERD 를 만들어둬서 오늘은 Readme 만 조금 작성하면 됐다.
- 어제 들었던 스탠다드 예외 처리 강의 덕분에 lv.5 와 lv.6 이 금방 끝나버렸다. 어떻게 하다보니 6레벨 까지 전부다 풀어버렸다.
- 확실히 저번에 포스팅 했던 , Layer 이해하기 와 JDBC CRUD 이해하기 를 작성하면서 전반적인 스프링 과정을 이해할 수 있었다.
- 아직은 조금 부족하다 생각하지만, 조금은 발전한게 아닐까 ~ 싶다.😎
'백엔드 부트캠프 > TIL' 카테고리의 다른 글
[내일배움캠프Spring-29일차] CH 3 일정 관리 앱 Develop Lv0~Lv1 (2) | 2025.03.28 |
---|---|
[내일배움캠프Spring-28일차] Spring DI/IoC (1) | 2025.03.27 |
[내일배움캠프Spring-26일차] JDBC 페이징 (2) | 2025.03.25 |
[내일배움캠프Spring-25일차] 일정 관리 과제 도전 Lv3 (0) | 2025.03.24 |
[내일배움캠프Spring-24일차] 일정 관리 과제 필수 기능 구현 (2) | 2025.03.21 |