Back-end
- 로그인 구현 (포스팅)
- Spring Security + OAuth2 + Session, Cookie 방식 로그인 구현
- API 명세서 작성 (포스팅)
- Spring Rest Docs 를 활용해 API 명세서 작성
- 게시글 CRUD API (포스팅)
게시글 전체 조회
- 게시글 전체 조회시퀀스 다이어그램
- OFFSET 방식으로 Paging 처리되도록 구현
- Querydsl 을 활용해 Paging, Search 값이 동적으로 활용될 수 있도록 구현 (포스팅)
내가 작성한 게시글 전체 조회
- 내가 작성한 게시글 전체 조회 시퀀스 다이어그램
- 다른 조회 API 와는 다르게 비로그인 상태에서 API 호출 시 로그인 페이지로 Redirect 되도록 구현
게시글 삭제
- 게시글 삭제 시퀀스 다이어그램
- 게시글 삭제 시 Soft Delete 되도록 구현
게시글 등록
게시글 수정
게시글 검색
- 제목, 내용, 닉네임으로 게시글을 검색할 수 있도록 구현
- 댓글 CRUD API (포스팅)
댓글 조회
- 댓글 조회 시퀸스 다이어그램
- 한 게시물의 상위 댓글 조회 시 NO OFFSET 방식으로 Paging 처리되도록 구현
- 상위 댓글의 하위 댓글 목록은 OFFSET 방식으로 Paging 처리되도록 구현
댓글 삭제
댓글 등록
- 댓글 등록 시퀀스 다이어그램
- 대댓글은 하나 이상 등록하지 못하도록 구현
댓글 수정
- Junit5 를 활용해 Controller, Service 테스트 코드 작성
nGrinder 를 활용해 API 성능 테스트 실시
1. BackEnd
- Java 11
- Gradle
- MySQL 8
- Spring Boot 2.X
- Spring Data JPA (Hibernate)
- Querydsl
- Spring Security
- Spring Rest Docs
- Junit5
2. Devops
- AWS EC2
- GitHub Actions
- Docker
3. Tools
- IntelliJ
- Git, GitHub
Domain | Method | Description | URI |
---|---|---|---|
게시글 | POST | 게시글 등록 | POST /posts |
DELETE | 게시글 삭제 | DELETE /posts/{postId} | |
PUT | 게시글 수정 | PUT /posts/{postId} | |
GET | 게시글 단건 조회 | GET /posts/{postId} | |
GET | 게시글 전체 조회 | GET /posts | |
GET | 전체 조회 페이징 처리 | GET /posts?page=?&size=? | |
GET | 전체 조회 검색 처리 | GET /posts?searchType=?&keyword=? | |
GET | 전체 조회 페이징 + 검색 | GET /posts/?page=?&size=?&searchType=?&keyword=? | |
GET | 내가 작성한 게시글 조회 | GET /posts/my_posts | |
POST | 게시글 좋아요 | POST /posts/{postId}/like | |
댓글 | POST | 댓글 등록 | POST /posts/{postId}/comments |
POST | 대댓글 등록 | POST /posts/{postId}/comments/{commentId}/reply | |
DELETE | 댓글 삭제 | DELETE /comments/{commentId} | |
PUT | 댓글 수정 | PUT /comments{commentId} | |
GET | 댓글 전체 조회 | GET /posts/{postId}/comments | |
GET | 대댓글 전체 조회 | GET /posts/{postId}/comments/{commentId} |