-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
EunHyo Park edited this page Jun 11, 2025
·
2 revisions
| 분류 | 기술 |
|---|---|
| Backend | Spring Boot, JPA, MySQL, OAuth (Kakao), EC2/RDS |
| AI | OpenAI GPT API 기반 코멘트 및 일기 생성 |
| 기타 | GitHub Actions, Netlify, Swagger, Notion, Figma |
📦src
┣ 📂main
┃ ┣ 📂java
┃ ┃ ┗ 📂com.openketchupsource.soulmate
┃ ┃ ┣ 📂apiPayload
┃ ┃ ┃ ┣ 📂exception
┃ ┃ ┃ ┃ ┣ 📂handler
┃ ┃ ┃ ┃ ┃ ┣ 📜DiaryHandler.java
┃ ┃ ┃ ┃ ┃ ┣ 📜LoginHandler.java
┃ ┃ ┃ ┃ ┃ ┣ 📜SettingHandler.java
┃ ┃ ┃ ┃ ┣ 📜ExceptionAdvice.java
┃ ┃ ┃ ┃ ┗ 📜GeneralException.java
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂form
┃ ┃ ┃ ┃ ┣ 📂status
┃ ┃ ┃ ┃ ┃ ┣ 📜ErrorStatus.java
┃ ┃ ┃ ┃ ┃ ┗ 📜SuccessStatus.java
┃ ┃ ┃ ┃ ┣ 📜BaseCode.java
┃ ┃ ┃ ┃ ┣ 📜ReasonDTO.java
┃ ┃ ┃ ┗ 📜ApiResponse.java
┃ ┃ ┃
┃ ┃ ┣ 📂auth
┃ ┃ ┃ ┣ 📂jwt
┃ ┃ ┃ ┃ ┣ 📜JwtTokenProvider.java
┃ ┃ ┃ ┃ ┗ 📜JwtValidationType.java
┃ ┃ ┃ ┣ 📜JwtAuthenticationFilter.java
┃ ┃ ┃ ┣ 📜MemberAuthentication.java
┃ ┃ ┃ ┗ 📜PrincipalHandler.java
┃ ┃ ┃
┃ ┃ ┣ 📂config
┃ ┃ ┃ ┣ 📜SecurityConfig.java
┃ ┃ ┃ ┗ 📜WebConfig.java
┃ ┃ ┃
┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┣ 📂chat
┃ ┃ ┃ ┃ ┗ 📜ChatController.java
┃ ┃ ┃ ┣ 📂diary
┃ ┃ ┃ ┃ ┣ 📜CommentController.java
┃ ┃ ┃ ┃ ┣ 📜DiaryController.java
┃ ┃ ┃ ┃ ┗ 📜HashTagController.java
┃ ┃ ┃ ┣ 📂login
┃ ┃ ┃ ┃ ┣ 📜AuthCheckController.java
┃ ┃ ┃ ┃ ┣ 📜HealthCheckController.java
┃ ┃ ┃ ┃ ┗ 📜KakaoLoginController.java
┃ ┃ ┃ ┣ 📂member
┃ ┃ ┃ ┃ ┗ 📜SettingController.java
┃ ┃ ┃
┃ ┃ ┣ 📂converter
┃ ┃ ┃ ┗ 📜CommentConverter.java
┃ ┃ ┃
┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┣ 📂common
┃ ┃ ┃ ┃ ┗ 📜BaseTimeEntity.java
┃ ┃ ┃ ┣ 📂mapping
┃ ┃ ┃ ┃ ┗ 📜DiaryToHashtag.java
┃ ┃ ┃ ┣ 📜Character.java
┃ ┃ ┃ ┣ 📜Chat.java
┃ ┃ ┃ ┣ 📜ChatMessage.java
┃ ┃ ┃ ┣ 📜Comment.java
┃ ┃ ┃ ┣ 📜Diary.java
┃ ┃ ┃ ┣ 📜HashTag.java
┃ ┃ ┃ ┗ 📜Member.java
┃ ┃ ┃
┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┣ 📂chat
┃ ┃ ┃ ┃ ┣ 📜ChatInitResponseDto.java
┃ ┃ ┃ ┃ ┣ 📜ChatMessageDto.java
┃ ┃ ┃ ┃ ┣ 📜ChatReply2ClientDto.java
┃ ┃ ┃ ┃ ┣ 📜ChatRequestDto.java
┃ ┃ ┃ ┃ ┗ 📜ChatResponseDto.java
┃ ┃ ┃ ┣ 📂diary
┃ ┃ ┃ ┃ ┣ 📜ClientDiaryCreateRequest.java
┃ ┃ ┃ ┃ ┣ 📜ClientDiaryResponse.java
┃ ┃ ┃ ┃ ┣ 📜ClientDiaryUpdateRequest.java
┃ ┃ ┃ ┃ ┣ 📜ClientGptDiaryCreateRequest.java
┃ ┃ ┃ ┃ ┣ 📜CommentListResponse.java
┃ ┃ ┃ ┃ ┣ 📜CommentRequest.java
┃ ┃ ┃ ┃ ┣ 📜CommentResponse.java
┃ ┃ ┃ ┃ ┣ 📜DiaryListResponse.java
┃ ┃ ┃ ┃ ┣ 📜DiaryResponse.java
┃ ┃ ┃ ┃ ┣ 📜GptDiaryPrompt.java
┃ ┃ ┃ ┃ ┣ 📜GptDiaryResponse.java
┃ ┃ ┃ ┃ ┣ 📜HashTagDTO.java
┃ ┃ ┃ ┃ ┗ 📜StoredCommentResponse.java
┃ ┃ ┃ ┣ 📂kakao
┃ ┃ ┃ ┃ ┣ 📜SocialLoginRequest.java
┃ ┃ ┃ ┃ ┗ 📜SocialLoginResponse.java
┃ ┃ ┃ ┗ 📜TokenResponse.java
┃ ┃ ┃
┃ ┃ ┣ 📂external.oauth
┃ ┃ ┃ ┣ 📂kakao
┃ ┃ ┃ ┃ ┣ 📂clientInfo
┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoAccount.java
┃ ┃ ┃ ┃ ┃ ┗ 📜Profile.java
┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoInfoRequest.java
┃ ┃ ┃ ┃ ┃ ┗ 📜KakaoTokenRequest.java
┃ ┃ ┃ ┃ ┣ 📂response
┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoInfoResponse.java
┃ ┃ ┃ ┃ ┃ ┗ 📜KakaoTokenResponse.java
┃ ┃ ┃ ┗ 📜KakaoProperties.java
┃ ┃ ┃
┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┣ 📂character
┃ ┃ ┃ ┃ ┗ 📜CharacterRepository.java
┃ ┃ ┃ ┣ 📂chat
┃ ┃ ┃ ┃ ┣ 📜ChatMessageRepository.java
┃ ┃ ┃ ┃ ┗ 📜ChatRepository.java
┃ ┃ ┃ ┣ 📂diary
┃ ┃ ┃ ┃ ┣ 📜CommentRepository.java
┃ ┃ ┃ ┃ ┣ 📜DiaryRepository.java
┃ ┃ ┃ ┃ ┗ 📜HashTagRepository.java
┃ ┃ ┃ ┗ 📂member
┃ ┃ ┃ ┗ 📜MemberRepository.java
┃ ┃ ┃
┃ ┃ ┣ 📂service
┃ ┃ ┃ ┣ 📂chat
┃ ┃ ┃ ┃ ┗ 📜ChatAIService.java
┃ ┃ ┃ ┣ 📂diary
┃ ┃ ┃ ┃ ┣ 📜CommentService.java
┃ ┃ ┃ ┃ ┗ 📜DiaryService.java
┃ ┃ ┃ ┣ 📂kakao
┃ ┃ ┃ ┃ ┣ 📜KakaoLoginService.java
┃ ┃ ┃ ┃ ┗ 📜LoginService.java
┃ ┃ ┃ ┗ 📂member
┃ ┃ ┃ ┣ 📜MemberService.java
┃ ┃ ┃ ┗ 📜SettingService.java
┃ ┃ ┃
┃ ┃ ┗ 📜SoulmateApplication.java
┃ ┃
┃ ┃
┃ ┗ 📂resources
┃ ┣ 📜application.properties
┃ ┗ 📜application.yml
┗ 📂test.java.com.openketchupsource.soulmate
┣ 📂service.kakao
┃ ┗ 📜LoginService.Test
┃
┗ 📜SoulmateApplicationTests
| 라이브러리 | 설명 |
|---|---|
| spring-boot-starter-web | REST API 서버 구축 |
| spring-boot-starter-data-jpa | JPA 기반 ORM 처리 |
| spring-boot-starter-security | 인증 및 보안 설정 |
| spring-boot-starter-validation | @Valid 기반 입력값 검증 |
| lombok | 반복 코드 제거 (getter/setter 등) |
| mysql-connector-j | MySQL DB 연결 |
| spring-cloud-starter-openfeign | 외부 API 호출 (OpenAI, Kakao 등) |
| jjwt (api, impl, jackson) | JWT 인증 토큰 발급/검증 |
| jackson-databind | JSON 직렬화/역직렬화 |
| 라이브러리 | 설명 |
|---|---|
| spring-boot-starter-test | 단위 테스트 (JUnit) |
| spring-security-test | 인증 테스트 지원 |
| h2 | 로컬 개발용 인메모리 DB |