개요
일반 사용자가 채용공고를 북마크할 수 있는 기능을 구현합니다. 사용자는 여러 채용공고를 북마크할 수 있어야 합니다.
작업 내용
1. 북마크 엔티티 생성
Bookmark 엔티티 생성
bookmarkId: 북마크 ID (PK)
user: 사용자 (FK)
jobPost: 채용공고 (FK)
createdAt: 북마크 생성 시간
2. 북마크 관련 DTO 생성
BookmarkRequestDto: 북마크 생성 요청 DTO
BookmarkResponseDto: 북마크 응답 DTO
BookmarkListResponseDto: 북마크 목록 응답 DTO
3. 북마크 서비스 및 레포지토리 구현
4. 북마크 컨트롤러 구현
BookmarkController 생성
- POST
/bookmarks: 북마크 생성
- DELETE
/bookmarks/{bookmarkId}: 북마크 삭제
- GET
/bookmarks/my: 내 북마크 목록 조회
API 엔드포인트
북마크 생성
POST /bookmarks
Request Body:
{
"jobPostId": 1
}
Response:
{
"bookmarkId": 1,
"jobPostId": 1,
"createdAt": "2024-04-21T10:00:00"
}
북마크 삭제
DELETE /bookmarks/{bookmarkId}
Response: 204 No Content
북마크 목록 조회
GET /bookmarks/my
Response:
{
"bookmarks": [
{
"bookmarkId": 1,
"jobPostId": 1,
"companyName": "회사명",
"jobName": "직무명",
"createdAt": "2024-04-21T10:00:00"
}
]
}
예외 처리
- 이미 북마크한 채용공고를 다시 북마크하려고 할 때 예외 처리
- 존재하지 않는 채용공고를 북마크하려고 할 때 예외 처리
- 다른 사용자의 북마크를 삭제하려고 할 때 예외 처리
테스트
- 북마크 생성 테스트
- 북마크 삭제 테스트
- 북마크 목록 조회 테스트
- 예외 처리 테스트
개요
일반 사용자가 채용공고를 북마크할 수 있는 기능을 구현합니다. 사용자는 여러 채용공고를 북마크할 수 있어야 합니다.
작업 내용
1. 북마크 엔티티 생성
Bookmark엔티티 생성bookmarkId: 북마크 ID (PK)user: 사용자 (FK)jobPost: 채용공고 (FK)createdAt: 북마크 생성 시간2. 북마크 관련 DTO 생성
BookmarkRequestDto: 북마크 생성 요청 DTOBookmarkResponseDto: 북마크 응답 DTOBookmarkListResponseDto: 북마크 목록 응답 DTO3. 북마크 서비스 및 레포지토리 구현
BookmarkRepository인터페이스 생성BookmarkService인터페이스 및 구현체 생성4. 북마크 컨트롤러 구현
BookmarkController생성/bookmarks: 북마크 생성/bookmarks/{bookmarkId}: 북마크 삭제/bookmarks/my: 내 북마크 목록 조회API 엔드포인트
북마크 생성
북마크 삭제
북마크 목록 조회
예외 처리
테스트