TIL 2023-11-07 Spring 개인과제 01

장규빈·2023년 11월 7일

TIL

목록 보기
19/59

spring-board 개인 과제

학습목표

  1. 구현하고자 하는 서비스의 전체적인 흐름을 파악하고 필요한 기능을 설계할 수 있습니다.(Use Case Diagram, API 명세서, ERD를 작성할 수 있습니다.)
  2. Spring Boot를 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포함된 REST API를 만들 수 있습니다.

필수 요구 사항

  • 게시글 작성 기능
    • 제목, 작성자명, 비밀번호, 작성 내용, 작성일을 저장할 수 있습니다.
    • 저장된 게시글의 정보를 반환 받아 확인할 수 있습니다.
      • 반환 받은 게시글의 정보에 비밀번호는 제외 되어있습니다.
  • 선택한 게시글 조회 기능
    • 선택한 게시글의 정보를 조회할 수 있습니다.
      • 반환 받은 게시글의 정보에 비밀번호는 제외 되어있습니다.
  • 게시글 목록 조회 기능
    • 등록된 게시글 전체를 조회할 수 있습니다.
      • 반환 받은 게시글의 정보에 비밀번호는 제외 되어있습니다.
    • 조회된 게시글 목록은 작성일 기준 내림차순으로 정렬 되어있습니다.
  • 선택한 게시글 수정 기능
    • 선택한 게시글의 제목, 작성자명, 작성 내용을 수정할 수 있습니다.
      • 서버에 게시글 수정을 요청할 때 비밀번호를 함께 전달합니다.
      • 선택한 게시글의 비밀번호와 요청할 때 함께 보낸 비밀번호가 일치할 경우에만 수정이 가능합니다.
    • 수정된 게시글의 정보를 반환 받아 확인할 수 있습니다.
      • 반환 받은 게시글의 정보에 비밀번호는 제외 되어있습니다.
  • 선택한 게시글 삭제 기능
    • 선택한 게시글을 삭제할 수 있습니다.
      • 서버에 게시글 삭제를 요청할 때 비밀번호를 함께 전달합니다.
      • 선택한 게시글의 비밀번호와 요청할 때 함께 보낸 비밀번호가 일치할 경우에만 삭제가 가능합니다.

추가 요구 사항

  • 선택한 게시글 수정 및 삭제 요청 시 비밀번호가 일치하지 않을 경우 API 요청 실패(예외상황)에 대해 판단할 수 있는 Status Code, Error 메시지등의 정보를 반환합니다.

1. Use Case Diagram

링크 : https://app.diagrams.net/#G184is9FzfZg01rvKNC-hzMSh6N2J7RIL1
image

2. ERD

링크 : https://www.erdcloud.com/d/gTEftvyRw8TESBFqx
image

3. API 명세서

링크 : https://documenter.getpostman.com/view/30872998/2s9YXfb3Wf#9670828e-196c-4bd9-9945-e29e46eca95b
image

4. 코드

링크 : https://github.com/Binsreoun/spring-board
image

느낀점

과제기간과 교육과정의 특성상 백엔드만 구현하게 되었습니다. 일단 교육기간 내에 처음으로 만들어보는 스프링 프로젝트여서 최대한 강의에서 배운 내용을 활용하려고 노력했습니다. Controller,Service,Repository로 나누어 각자의 역활에 맞게 코딩을 하려고 했으며 Restful API형태로 만들기 위해 상황에 맞는 GET,POST,DELETE를 활용하였습니다. 원래도 알고 있었지만 실제로 스프링으로 게시판을 만들어보니 확실히 php로 만들었던 전보다 해야할 것이 많다는 것을 느꼈습니다. 데이터를 주고받기 위해 DTO를 만드는 거나 JPA를 사용하기 위한 Entitiy와 Repository설정 등 기능을 만들기 전에 준비해야 하는 과정들이 조금 더 길었던것 같습니다. 이제 한걸음 나아갔을 뿐인데 그래도 조금은 뿌듯했습니다. 앞으로 배워야할 기능들이 훨씬 많지만 계속해서 반복하면서 구조를 익혀나가는것이 먼저일것 같습니다.

profile
나다운사람

0개의 댓글