이지은님의 블로그
Java Spring 기반 일정관리 앱 - 3 Layered Architecture, JDBC 등을 이용한 CRUD 기능 본문
Java Spring 기반 일정관리 앱 - 3 Layered Architecture, JDBC 등을 이용한 CRUD 기능
queenriwon3 2025. 2. 3. 21:23👉 일정관리 앱 과제 소개
프로젝트 명 : Java Spring Boot로 일정관리 앱을 구현해보자.
배운 내용을 바탕으로 일정 관리 앱를 구현하는 과제입니다.
Postman을 이용한 요청 및 응답으로 일정을 CRUD 및 DB에 저장할 수 있습니다.
개발 기간 : 2025.01.27 ~ 2025.02.03 (약 8일)
github : https://github.com/queenriwon/scheduleProject
개발 환경
- environment : IntelliJ IDEA, git, github
- development : JAVA JDK 17, Spring Boot 3.4.2, JDBC, MySQL, swagger 2.3.0
👉 Lv.0 - API 명세서, ERD 다이어그램
상세 API 명세서, swagger사용
https://flaxen-swan-41e.notion.site/Lv-0-186b649ebbbd80f2a570ccd9ef43adb1
Lv. 0 기획단계 | Notion
Made with Notion, the all-in-one connected workspace with publishing capabilities.
flaxen-swan-41e.notion.site
👉 트러블슈팅
https://queenriwon3.tistory.com/101
250131 - Java Spring 일정관리 앱 구현과 트러블슈팅: API 명세서, JDBC 연결, DTO와 Entity, CRUD 구현, 동적
▷ 코드 문제풀이[JAVA] 코드카타 - (56)~(60) [JAVA] 코드카타 - (56)~(60)문제 (56) : 과일 장수과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k
queenriwon3.tistory.com
https://queenriwon3.tistory.com/102
250203 - Java Spring 일정관리 앱 구현과 트러블슈팅: API 명세서, 멀티table과 Repository, Paging, @ExceptionHan
▷ 오늘 배운 것Spring boot 일정관리 개인과제 프로젝트의 도전과제 수행과정을250131 - Java Spring 일정관리 앱 구현과 트러블슈팅: API 명세서, JDBC 연결, DTO와 Entity, CRUD 구현, 동적쿼리 사용 에 이어
queenriwon3.tistory.com
👉 구현 내용
필수 구현 사항
Lv.0
- README.md에 API 명세서 작성하기
- README.md에 ERD 다이어그램 작성하기
- schedule.sql에 테이블 생성에 필요한 쿼리문 작성하기
Lv.1
- 일정 작성 구현(할일, 작성자명, 비밀번호, 작성/수정일 저장)
- 전체 일정 조회(수정일과 작성자명에 따른 일정 목록 조회)
- 선택 일정 조회
Lv.2
- 선택한 일정 수정(비밀번호를 통한 할일, 작성자명 수정)
- 선택한 일정 삭제(비밀번호를 통해 삭제)
도전 구현 사항
Lv.3 (구현)
- 작성자에 대해 고유 식별자를 부여하여 동명이인을 구분
- 작성자는 이름, 이메일, 등록일, 수정일 정보를 가지고 있음
- 작성자 테이블을 생성하고 일정 테이블에 FK를 생성해 연관관계를 설정
Lv.4 (구현)
- 페이지네이션을 사용하여 등록된 일정 목록을 페이지 번호와 크기를 기준으로 모두 조회
Lv.5 (구현)
- 예외 상황에 대한 처리를 위해 HTTP 상태코드와 에러 메시지를 포함한 정보를 사용하여 예외를 관리
- 수정 삭제시 요청때 보내는 비밀번호가 일치하지 않을 때 예외 발생
- 잘못된 정보를 조회하려고 할 때 예외 발생
- 이미 삭제된 정보를 조회하려고 할 때 예외 발생
LV.6 (구현)
- 할일 200자 이내, 필수값 처리
- 비밀번호는 필수값 처리
- 이메일 형식이 유효한지 확인
👉 구현 핵심
- 공통응답과 공통예외처리, 페이징
- 자동으로 DTO와 Entity를 매핑하기(Mapstruct 사용)
- Optional로 null처리하기
- swagger로 api 명세서 생성하기
- 테이블 당 하나의 repository를 이용하여 유지보수와 코드 재사용성 늘리기
👉 부족하거나 아쉬운 점, 공부하고 싶은 내용
- 다양한 테스트를 거쳐 발견하지 못한 오류 발견하기
- 패키지 및 클래스 구성과 관리
- Soft delete 또는 보안에 신경쓰기
- 여러 개의 에러코드를 응답할 수 있도록 하기
👉 클래스 다이어그램
👉구현결과
작성(POST)
조건 조회(GET)
전체 조회(GET)
단일 조회(GET)
수정(PATCH)
삭제(PATCH)
'프로젝트' 카테고리의 다른 글
Java Spring 기반 뉴스피드 팀 프로젝트 - 3 Layered Architecture, JPA 등을 이용한 CRUD, 세션을 이용한 로그인 기능 (1) | 2025.02.20 |
---|---|
Java Spring 기반 일정관리 앱(develop) - 3 Layered Architecture, JPA 등을 이용한 CRUD 기능 (0) | 2025.02.13 |
Java 기반 키오스크 - enum, 제네릭, 람다와 스트림 등을 이용한 키오스크 기능 (1) | 2025.01.17 |
Java 기반 키오스크 - level6 구현 코드 및 설명 (0) | 2025.01.17 |
Java 기반 계산기 - 구현 코드 및 설명 (0) | 2025.01.09 |