2023.08.29 - 1주차 과제

mjjin·2023년 8월 28일
0

1주차 과제

스프링 부트로 로그인 기능이 없는 나만의 항해 블로그 백엔드 서버 만들기

주의사항

  1. Entity를 그대로 반환하지 말고, DTO에 담아서 반환해주세요!
  2. 프론트엔드와 백엔드가 느슨하게 결합하는 환경이 ”최근에는” 더 일반적이라고 말씀드렸죠? 앞으로 남은 강의 예제와 실습에서는 html/css/js 즉 뷰도 같이 반환 하겠지만, 과제에는 여러분들이 서버 로직에 더 집중하실 수 있도록 JSON을 반환하는 API형태로 진행하려고 합니다.
  3. 눈으로 직접 확인 할 수 있었던 view와는 다르게, 여러분들이 과제를 진행하시려면 서버가 반환하는 결과값을 더 쉽게 확인 하실 수 있는 도구가 필요합니다. 바로 PostMan 입니다. 사용법은 아래 페이지에서 꼭 확인해주세요!

요구사항

  1. 아래의 요구사항을 기반으로 Use Case 그려보기
  2. 전체 게시글 목록 조회 API
    • 제목, 작성자명, 작성 내용, 작성 날짜를 조회하기
    • 작성 날짜 기준 내림차순으로 정렬하기
  3. 게시글 작성 API
    • 제목, 작성자명, 비밀번호, 작성 내용을 저장하고
    • 저장된 게시글을 Client 로 반환하기
  4. 선택한 게시글 조회 API
    • 선택한 게시글의 제목, 작성자명, 작성 날짜, 작성 내용을 조회하기
      (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해주세요.)
  5. 선택한 게시글 수정 API
    • 수정을 요청할 때 수정할 데이터와 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
    • 제목, 작성자명, 작성 내용을 수정하고 수정된 게시글을 Client 로 반환하기
  6. 선택한 게시글 삭제 API
    • 삭제를 요청할 때 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
    • 선택한 게시글을 삭제하고 Client 로 성공했다는 표시 반환하기

1. Use Case 그려보기

Goal이 로그인기능이 없는 나만의 항해 블로그 백엔드 서버 만들기로 적혀져 있었다.
이번 Lv.1에서는 게시글 관련 API들로 이루어져 있었으므로
블로그의 기능 중, 게시판에서 사용 될 API들이라고 유추해보았다.
근데 진짜 진심으로 이게 맞는건지 정말 모르겠다
내 미적 센스는 둘째 치더라도
이게 맞는건지 진짜로 모르겠다. 이것 하나 그리겠다고 두시간을 투자하고 있는 내가 맞는건가?

2. API 명세서 작성하기

MethodURLRequestResponse
GET/api/board-{"id":1,\n"username":"username","title":"title","contents":"content","createdAt":"2023-08-28T17:24:36.809784","modifiedAt":"2023-08-28T17:24:36.809784"}
POST/api/board{"title" : "title","contents" : "content","username" : "username","password" : "12345"}{"id": 1, "username": "username", "title": "title", "contents": "contents", "createdAt": "2023-08-28T17:24:36.809784", "modifiedAt": "2023-08-28T17:24:36.809784"}
GET/api/board/contents-[{"id":2,"username":"hey1","title":"titletest1","contents":"contentstest1","createdAt":"2023-08-28T17:36:57.603422","modifiedAt":"2023-08-28T17:36:57.603422"}]
PUT/board/{id}{"title" : "titletest3","contents" : "수정했지롱","username" : "hey3","password" : "12345"}{"id":1,"username":"hey3","title":"titletest3","contents":"수정했지롱","createdAt":"2023-08-28T17:24:36.809784","modifiedAt":"2023-08-28T17:24:36.809784"}
Delete/board/{id}{"password" :"password"}-

3. 깃허브

https://github.com/heypoppop/blog

0개의 댓글