티스토리 뷰
개인과제로 Spring을 이용한 게시판 구현을 하였다.
서비스 요구사항은 다음과 같다.
- 전체 게시글 목록 조회 API
- 제목, 작성자명, 작성 내용, 작성 날짜를 조회하기
- 작성 날짜 기준 내림차순으로 정렬하기
- 게시글 작성 API
- 제목, 작성자명, 비밀번호, 작성 내용을 저장하고
- 저장된 게시글을 Client 로 반환하기
- 선택한 게시글 조회 API
- 선택한 게시글의 제목, 작성자명, 작성 날짜, 작성 내용을 조회하기 (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해주세요.)
- 선택한 게시글 수정 API
- 수정을 요청할 때 수정할 데이터와 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
- 제목, 작성자명, 작성 내용을 수정하고 수정된 게시글을 Client 로 반환하기
- 선택한 게시글 삭제 API
- 삭제를 요청할 때 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
- 선택한 게시글을 삭제하고 Client 로 성공했다는 표시 반환하기
# API 명세서를 만들어 보았다.
| Method | URL | Request | Response |
| Get | /api/posts | - |
{
"createdAt": "2022-12-09T14:45:34.5844743",
"modifiedAt": "2022-12-09T14:45:34.5844743",
"id": 1,
"name": "name1",
"text": "text1",
"password": "password1"
}
{
"createdAt": "2022-12-09T14:45:34.5844743",
"modifiedAt": "2022-12-09T14:45:34.5844743",
"id": 2,
"name": "name2",
"text": "text2",
"password": "password2"
}
|
| Get | /api/posts/{id} | - |
{
"createdAt": "2022-12-09T14:45:34.5844743",
"modifiedAt": "2022-12-09T14:45:34.5844743",
"id": 1,
"name": "name1",
"text": "text1",
"password": "password1"
}
|
| Post | /api/posts |
{
"name":"name1",
"text":"text1",
"password":"password1"
}
|
{
"createdAt": "2022-12-09T14:45:34.5844743",
"modifiedAt": "2022-12-09T14:45:34.5844743",
"id": 1,
"name": "name1",
"text": "text1",
"password": "password1"
}
|
| Put | /api/posts/{id} |
{
"name":"name2",
"text":"text2",
"password":"password2"
}
|
{
"createdAt": "2022-12-09T14:45:34.5844743",
"modifiedAt": "2022-12-09T14:45:34.5844743",
"id": 2,
"name": "name2",
"text": "text2",
"password": "password2"
}
|
| Delete | /api/posts/{id} | { "password":"password", } |
{ "success":"true", } |
# 중간 점검
- 수정, 삭제 API의 request를 어떤 방식으로 사용하셨나요? (param, query, body)
- 어떤 상황에 어떤 방식의 request를 써야하나요?
- RESTful한 API를 설계했나요? 어떤 부분이 그런가요? 어떤 부분이 그렇지 않나요?
- 적절한 관심사 분리를 적용하였나요? (Controller, Repository, Service)
- API 명세서 작성 가이드라인을 검색하여 직접 작성한 API 명세서와 비교해보세요!

#느낀점
- Spring에 대해서 처음 접하고 공부하면서 직접 구현하는것에 어려움을 느꼈다.
- 어노테이션의 사용방식이나 아키텍처의 규칙을 잘 이해하지 못하고 있다.
- 첫 시작은 어려웠지만 하나씩 채워가며 조금씩 이해할 수 있었다.
- 앞으로 남은 시간동안 꾸준히 쌓아가야겠다.
'개발 > Weekly I Learned' 카테고리의 다른 글
| WIL(Weekly I Learned)/22.12.25 (0) | 2022.12.25 |
|---|---|
| WIL(Weekly I Learned)/22.12.18/ # JWT 회원가입구현 (0) | 2022.12.18 |
| WIL(Weekly I Learned)/22.12.04/ # OOP 개념 정리 (0) | 2022.12.02 |
| WIL(Weekly I Learned)/22.11.27 (0) | 2022.11.28 |
| WIL(Weekly I Learned)/22.11.20 (2) | 2022.11.20 |
댓글