Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 카프카
- Spring
- 데이터베이스
- docker
- java
- 스파르타코딩클럽
- DB
- JavaScript
- AWS
- CentOS
- JWT
- 생성자 주입
- Kafka
- 스웨거
- 패스트캠퍼스
- visualvm
- 프로그래머스
- 시큐리티
- 웹개발
- 개인프로젝트
- 쇼트유알엘
- @jsonproperty
- WEB SOCKET
- MYSQL
- EC2
- 항해99
- Spring Security
- 남궁성과 끝까지 간다
- emqx
- 스프링의 정석
Archives
- Today
- Total
Nellie's Blog
[항해99][과제] Spring 입문주차 - 스프링 부트로 로그인 기능이 없는 블로그 백엔드 서버 만들기 본문
728x90
학습 과제의 목표
- Java를 활용하여 필요한 클래스를 구상할 수 있어요.
- Lombok과 JPA를 이용하여 원하는 데이터베이스를 만들고 활용할 수 있어요.
- Spring Boot를 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포함된 REST API를 만들 수 있어요.
과제 주의사항
- Entity를 그대로 반환하지 말고, DTO에 담아서 반환해주세요!
- 프론트엔드와 백엔드가 느슨하게 결합하는 환경이 ”최근에는” 더 일반적이라고 말씀드렸죠? 앞으로 남은 강의 예제와 실습에서는 html/css/js 즉 뷰도 같이 반환 하겠지만, 과제에는 여러분들이 서버 로직에 더 집중하실 수 있도록 JSON을 반환하는 API형태로 진행하려고 합니다.
- 눈으로 직접 확인 할 수 있었던 view와는 다르게, 여러분들이 과제를 진행하시려면 서버가 반환하는 결과값을 더 쉽게 확인 하실 수 있는 도구가 필요합니다. 바로 PostMan 입니다. 사용법은 아래 페이지에서 꼭 확인해주세요!
서비스 완성 요구사항
- 아래의 요구사항을 기반으로 Use Case 그려보기
- 손으로 그려도 됩니다.
- cf. https://narup.tistory.com/70
- 전체 게시글 목록 조회 API
- 제목, 작성자명, 작성 내용, 작성 날짜를 조회하기
- 작성 날짜 기준 내림차순으로 정렬하기
- 게시글 작성 API
- 제목, 작성자명, 비밀번호, 작성 내용을 저장하고
- 저장된 게시글을 Client 로 반환하기
- 선택한 게시글 조회 API
- 선택한 게시글의 제목, 작성자명, 작성 날짜, 작성 내용을 조회하기 (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해주세요.)
- 선택한 게시글 수정 API
- 수정을 요청할 때 수정할 데이터와 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
- 제목, 작성자명, 작성 내용을 수정하고 수정된 게시글을 Client 로 반환하기
- 선택한 게시글 삭제 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
'회고록 > 항해99' 카테고리의 다른 글
[항해99][강의정리] Spring 숙련주차(W4) - JPA 심화 정리 (0) | 2022.12.05 |
---|---|
[항해99][과제] Spring 숙련주차 - 스프링 부트로 회원가입, 로그인, 댓글 작성/조회/수정/삭제 기능이 추가된 블로그 백엔드 서버 만들기(JWT사용) (0) | 2022.12.05 |
[항해99] Spring 입문주차 1주차 정리 - JPA기초, 메모장 만들기 (0) | 2022.11.30 |
[항해99 10기] 알고리즘 모의고사 - 3번. 소수의 개수와 덧셈 (0) | 2022.11.24 |
[항해99 10기] 알고리즘 모의고사 - 신대륙 발견 (0) | 2022.11.22 |