유미의 기록들

[개인 과제 -Spring숙련] JPA를 활용한 일정관리 앱 서버 설계 (Level 1) 본문

대외활동 기록/내일배움캠프

[개인 과제 -Spring숙련] JPA를 활용한 일정관리 앱 서버 설계 (Level 1)

지유미 2024. 8. 22. 14:32
728x90
반응형
💡JPA를 활용하여 CRUD를 구현하고, 이를 통해 객체 지향적으로 데이터를 다룰 수 있다
💡JPA를 활용하여 데이터베이스를 관리하고 영속성에 대해서 이해할 수 있다
💡회원가입, 로그인을 통해 인증/인가를 이해하고 JWT를 활용할 수 있다
💡RestTemplate을 통해 외부 정보를 호출하고 활용할 수 있다

 

📌 요구사항 분석

일정 도메인 모델

  • 작성 유저명
  • 할일 제목
  • 할일 내용
  • 작성일
  • 수정일

일정 관리 기능

  • 일정 저장
  • 단건 조회
    • 담당 유저들의 고유 식별자, 유저명, 이메일이 추가로 포함
  • 일정 수정
  • 일정 페이징 조회
    • 페이지 번호와 페이지 크기를 쿼리 파라미터로 전달하여 요청
    • 할일 제목, 할일 내용, 댓글 개수, 일정 작성일, 일정 수정일, 일정 작성 유저명 조회
    • 페이지크기는 10을 디폴트로 적용
    • 일정 수정일 기준으로 내림차순 정렬
  • 일정 삭제
    • 일정 댓글로 함께 삭제

댓글 도메인 모델

  • 댓글 내용
  • 작성일
  • 수정일
  • 작성 유저명

댓글 관리 기능

  • 댓글 저장
  • 댓글 단건 조회
  • 댓글 전체 조회
  • 댓글 수정
  • 댓글 삭제

사용자 도메인 모델

  • 유저명
  • 이메일
  • 작성일
  • 수정일

사용자 관리 기능

  • 유저 저장
  • 단건 조회
  • 전체 조회
  • 유저 수정
  • 유저 삭제

* 일정은 유저명 필드 대신 유저 고유 식별자 필드를 가짐

* 일정을 작성한 유저는 추가로 일정 담당 유저들을 배치할 수 있다

 

 

💻 개발 과정

스프링 부트 스타터 사이트에서 스프링 프로젝트 생성

프로젝트 선택

  • Project : Gradle - Groovy
  • Language : Java
  • Spring Boot : 3.3.2

Project Metadata

  • Group: com.sparta
  • Artifact: schedulemanagement
  • Package name: com.sparta.schedulemanagement
  • Packaging : Jar
  • Java : 17

Dependencies

  • Spring Web
  • Thymeleaf
  • Lombok

 

 

 

API 명세서 작성

 

 

 

ERD 설계

 

 

728x90
반응형
Comments