Nellie's Blog

[항해99][과제] Spring 입문주차 - 스프링 부트로 로그인 기능이 없는 블로그 백엔드 서버 만들기 본문

회고록/항해99

[항해99][과제] Spring 입문주차 - 스프링 부트로 로그인 기능이 없는 블로그 백엔드 서버 만들기

Nellie Kim 2022. 12. 4. 01:44
728x90

학습 과제의 목표

  1. Java를 활용하여 필요한 클래스를 구상할 수 있어요.
  2. Lombok과 JPA를 이용하여 원하는 데이터베이스를 만들고 활용할 수 있어요.
  3. Spring Boot를 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포함된 REST API를 만들 수 있어요.

과제 주의사항

  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 로 성공했다는 표시 반환하기

API 명세서 예시

Method URL Request Response
GET
(전체글조회)
/api/post - {
{
"createdAt": "2022-07-25T12:43:01.226062”,
"modifiedAt": "2022-07-25T12:43:01.226062”,
"id": 1,
"title": "title2",
"content": "content2",
"author": "author2"
},

{ "createdAt": "2022-07-25T12:43:01.226062”,
"modifiedAt": "2022-07-25T12:43:01.226062”,
"id": 2,
"title": "title",
"content": "content",
"author": "author"
}

}
GET
(선택글조회)
/api/post/{id} - {
"createdAt": "2022-07-25T12:43:01.226062”,
"modifiedAt": "2022-07-25T12:43:01.226062”,
"id": 1,
"title": "title2",
"content": "content2",
"author": "author2"
}
POST
(글작성)
/api/post {
"title" : "title",
"content" : "content",
"author" : "author",
"password" : "password"
}
{
"createdAt": "2022-07-25T12:43:01.226062”,
"modifiedAt": "2022-07-25T12:43:01.226062”,
"id": 1,
"title": "title",
"content": "content",
"author": "author"
}
PUT
(글수정)
/api/post/{id} {
"title" : "title2",
"content" : "content2",
"author" : "author2",
"password" :"password2"
}
{
"createdAt": "2022-07-25T12:43:01.226062”,
"modifiedAt": "2022-07-25T12:43:01.226062”,
"id": 1,
"title": "title2",
"content": "content2",
"author": "author2"
}
DELETE
(글삭제)
/api/post/{id} {
"password" :"password"
}
{
"success": true,
}

 

 

 


코드 한눈에 보기

 

 

 

POSTMAN으로 데이터 전송 잘 되는지 확인하기

 

 

https://github.com/hyeonju-kim/hanghae3w_blog

 

GitHub - hyeonju-kim/hanghae3w_blog: Spring 입문주차 과제 - 스프링 부트로 로그인 기능이 없는 블로그 백

Spring 입문주차 과제 - 스프링 부트로 로그인 기능이 없는 블로그 백엔드 서버 만들기 - GitHub - hyeonju-kim/hanghae3w_blog: Spring 입문주차 과제 - 스프링 부트로 로그인 기능이 없는 블로그 백엔드 서버

github.com