API를 통해 사용자가 면접 회고(리뷰)를 관리할 수 있도록 지원하는 서비스
Method | URI | Request Header | Query String | Request Body | Code |
---|---|---|---|---|---|
POST | /review/interview | Authorization: Bearer <token> |
PostInterviewReviewsDTO | 201: 성공 400: 잘못된 요청 401: 권한 없음 404: 면접 리뷰 없음 |
|
GET | /review/interview | Authorization: Bearer <token> |
reviewId: string | 200: 성공 400: 잘못된 요청 401: 권한 없음 404: 면접 리뷰 없음 |
|
DELETE | /review/interview | Authorization: Bearer <token> |
reviewId: string | 200: 성공 400: 잘못된 요청 401: 권한 없음 404: 면접 리뷰 없음 |
|
PUT | /review/interview | Authorization: Bearer <token> |
reviewId: string | PutInterviewReviewsDTO | 200: 성공 400: 잘못된 요청 401: 권한 없음 404: 면접 리뷰 없음 |
유즈케이스 다이어그램은 면접 회고 작성 기능을 중심으로, 사용자가 각 섹션별로 어떤 정보를 기록할 수 있는지를 나타냅니다. 면접 회고는 총 7개의 세부 항목(사전 준비, 면접 진행 과정, 질문 및 답변, 기술적 평가, 커뮤니케이션, 면접 후 분석, 다음 면접 준비)으로 구성되며, 사용자는 회고를 작성, 수정, 삭제할 수 있습니다.
다이어그램은 면접 회고 서비스의 데이터 흐름을 나타낸 것입니다. 사용자의 이벤트 발생(조회, 저장, 수정, 삭제)은 프론트엔드(React)를 통해 REST API로 전달되며, Spring Boot 서버는 JWT 기반 인증 후 MongoDB와 연동하여 데이터를 처리합니다. 처리 결과는 다시 사용자에게 반환됩니다.
# build
$ docker build -t my-image .
# run
$ docker run --env-file .env -p 8080:8080 my-image:latest
# Gradle 빌드 수행 (테스트 제외하고 빌드)
$ ./gradlew clean build -x test --no-daemon
# 빌드된 JAR 파일을 실행
$ java -jar review-0.0.1-SNAPSHOT.jar
Layered Archictecture
review
┣ .github
┃ ┣ rulesets
┃ ┃ ┗ Main-Rule.json
┃ ┣ workflows
┃ ┃ ┣ auto-assign.yml
┃ ┃ ┣ generate-swagger.yml
┃ ┃ ┗ gradle-build.yml
┃ ┣ auto-assign-config.yml
┃ ┗ swagger-index.html
┣ src
┃ ┣ main
┃ ┃ ┣ java
┃ ┃ ┃ ┗ com
┃ ┃ ┃ ┃ ┗ pickme
┃ ┃ ┃ ┃ ┃ ┗ review
┃ ┃ ┃ ┃ ┃ ┃ ┣ config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ security
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ JWTInterceptor.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ SwaggerConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ WebClientConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ WebConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ ReviewController.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ get
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetCommunicationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetInterviewAnalysisDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetInterviewDetailDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetInterviewProcessDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetInterviewReviewsDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetNextPreparationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetPreparationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetQuestionsAnswersDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GetReviewDetailDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ GetReviewDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ post
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostCommunicationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostInterviewAnalysisDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostInterviewDetailDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostInterviewProcessDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostInterviewReviewsDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostNextPreparationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostPreparationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PostQuestionsAnswersDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ PostReviewDetailDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ put
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutCommunicationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutInterviewAnalysisDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutInterviewDetailDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutInterviewProcessDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutInterviewReviewsDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutNextPreparationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutPreparationDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PutQuestionsAnswersDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ PutReviewDetailDTO.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ Review.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ReviewMongoQueryProcessor.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ ReviewRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ mapper
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ ReviewMapper.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ExternalApiService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ JWTService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ ReviewService.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ ReviewApplication.java
┃ ┃ ┗ resources
┃ ┃ ┃ ┣ static
┃ ┃ ┃ ┣ templates
┃ ┃ ┃ ┗ application.properties
┃ ┣ test
┃ ┃ ┗ java
┃ ┃ ┃ ┗ com
┃ ┃ ┃ ┃ ┗ pickme
┃ ┃ ┃ ┃ ┃ ┗ review
┃ ┃ ┃ ┃ ┃ ┃ ┗ ReviewApplicationTests.java
┃ ┗ .gitkeep
┣ .env
┣ .gitattributes
┣ .gitconfig
┣ .gitignore
┣ .gitmessage
┣ build.gradle
┣ Dockerfile
┣ gradlew
┣ gradlew.bat
┣ HELP.md
┣ review.iml
┣ settings.gradle
┣ setup.ps1
┗ setup.zsh