Skip to content
BackEndSchoolPlus3thPublic

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

μˆ¨μ€ μ‚¬λžŒ 친ꡬ - Backend

개발 κΈ°κ°„ : 2025λ…„ 01μ›” 16일(λͺ©) ~ 02μ›” 14일(금)

πŸ’‘ν”„λ‘œμ νŠΈ κ°œμš”

  • ν”„λ‘œμ νŠΈλͺ…
    • μˆ¨μ€ μ‚¬λžŒ 친ꡬ
  • λͺ©μ 
    • μΆ•μ œ, 곡연 정보 제곡 및 λ™ν–‰μž λͺ¨μž„ 생성
  • 페λ₯΄μ†Œλ‚˜
    • 학생 김토끼 : μ’‹μ•„ν•˜λŠ” μ•„μ΄λŒ μ½˜μ„œνŠΈλ₯Ό κ°€κ³  싢은데, 혼자 κ°€κΈ°μ—λŠ” μ• λ§€ν•˜λ„€... 같이 갈 μ‚¬λžŒ μ–΄λ”” μ—†λ‚˜?
    • 직μž₯인 졜거뢁이 : λ‹€μŒ μ£Ό λ°μ΄νŠΈλ•Œ 뭘 ν•˜μ§€? 우리 동넀 μΆ•μ œλ‚˜ 곡연 정보λ₯Ό ν•œλˆˆμ— μ°Ύμ•„λ³Ό 수 μžˆμ„κΉŒ?

πŸ™‚ μ—­ν•  λΆ„λ°°

μ—­ν•  λΆ„λ°°

βš™οΈ 개발 ν™˜κ²½

BE Repo : λ°±μ—”λ“œ 레포 λ°”λ‘œκ°€κΈ°
FE Repo : ν”„λ‘ νŠΈ 레포 λ°”λ‘œκ°€κΈ°

  • FE : vite(react + typescript), axios
  • BE : SpringBoot, JPA, WebSocket
  • 버전 및 μ΄μŠˆκ΄€λ¦¬ : Github
  • ν˜‘μ—… 툴 : Discord, Notion, Jira
  • μ„œλΉ„μŠ€ 배포 ν™˜κ²½
    • FE: vercel
    • BE: terraform, gitAction, AWS
    • elasticsearch : ncloud, terraform
  • λ””μžμΈ : Figma,cursor

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

ν”„λ‘œμ νŠΈ ꡬ쑰
hfBackend
β”œβ”€ .DS_Store
β”œβ”€ Dockerfile
β”œβ”€ GITCONVENTION.md
β”œβ”€ README.md
β”œβ”€ db_dev.trace.db
β”œβ”€ gradle
β”‚  └─ wrapper
β”‚     β”œβ”€ gradle-wrapper.jar
β”‚     └─ gradle-wrapper.properties
β”œβ”€ gradlew
β”œβ”€ gradlew.bat
β”œβ”€ infraScript
β”‚  └─ zero_downtime_deploy.py
β”œβ”€ readme-photo
└─ src
   β”œβ”€ .DS_Store
   β”œβ”€ main
   β”‚  β”œβ”€ .DS_Store
   β”‚  β”œβ”€ generated
   β”‚  β”‚  └─ com
   β”‚  β”‚     └─ ll
   β”‚  β”‚        └─ hfback
   β”‚  β”‚           β”œβ”€ domain
   β”‚  β”‚           β”‚  β”œβ”€ board
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ comment
   β”‚  β”‚           β”‚  β”‚  β”‚  └─ entity
   β”‚  β”‚           β”‚  β”‚  β”‚     └─ QBoardComment.java
   β”‚  β”‚           β”‚  β”‚  └─ notice
   β”‚  β”‚           β”‚  β”‚     └─ entity
   β”‚  β”‚           β”‚  β”‚        └─ QBoard.java
   β”‚  β”‚           β”‚  β”‚           ...
   β”‚  β”œβ”€ java
   β”‚  β”‚  └─ com
   β”‚  β”‚     └─ ll
   β”‚  β”‚        └─ hfback
   β”‚  β”‚           β”œβ”€ HfbackApplication.java
   β”‚  β”‚           β”œβ”€ domain
   β”‚  β”‚           β”‚  β”œβ”€ board
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ comment
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ApiV1BoardCommentController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ dto
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ BoardCommentDto.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ BoardComment.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ BoardCommentRepository.java
   β”‚  β”‚           β”‚  β”‚  β”‚  └─ service
   β”‚  β”‚           β”‚  β”‚  β”‚     └─ BoardCommentService.java
   β”‚  β”‚           β”‚  β”‚  └─ notice
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ApiV1BoardController.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ dto
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ BoardDto.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ entity
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ Board.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ BoardRepository.java
   β”‚  β”‚           β”‚  β”‚     └─ service
   β”‚  β”‚           β”‚  β”‚        └─ BoardService.java
   β”‚  β”‚           β”‚  β”œβ”€ festival
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ api
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ scheduler
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ FetchApisScheduler.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ FetchKopisScheduler.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ service
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ApiService.java
   β”‚  β”‚           β”‚  β”‚  β”‚  └─ serviceImpl
   β”‚  β”‚           β”‚  β”‚  β”‚     └─ ApiServiceImpl.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ comment
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ApiV1CommentController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ dto
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ CommentDto.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ Comment.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ form
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ AddCommentForm.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ UpdateCommentForm.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ CommentRepository.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ service
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ CommentService.java
   β”‚  β”‚           β”‚  β”‚  β”‚  └─ serviceImpl
   β”‚  β”‚           β”‚  β”‚  β”‚     └─ CommentServiceImpl.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ post
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ApiV1PostController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ dto
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ DetailPostDto.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ PostDto.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ Post.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ PostRepository.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ service
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ PostService.java
   β”‚  β”‚           β”‚  β”‚  β”‚  └─ serviceImpl
   β”‚  β”‚           β”‚  β”‚  β”‚     └─ PostServiceImpl.java
   β”‚  β”‚           β”‚  β”‚  └─ search
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ApiV1PostDocController.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ document
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ MainPostDoc.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ dto
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ResponseFestivalSearch.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ PostDocRepository.java
   β”‚  β”‚           β”‚  β”‚     └─ service
   β”‚  β”‚           β”‚  β”‚        └─ PostDocService.java
   β”‚  β”‚           β”‚  β”œβ”€ group
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ chat
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ chatMessageK6Test
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”‚  └─ ApiV1ChatMessageK6TestController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ service
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚     └─ ChatMessageK6TestService.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ ApiV1ChatFileController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ApiV1ChatMessageController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ ChatMessage.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ChatRoomUser.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ enums
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ChatRoomUserStatus.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ ChatMessageRepository.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ChatRoomUserRepository.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ request
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ MessageReadStatusRequest.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ MessageSearchKeywordsRequest.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ RequestMessage.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ response
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ ResponseMemberStatus.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ ResponseMessage.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ResponseMessageCount.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ search
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”‚  └─ ApiV1ChatMessageDocController.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ document
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”‚  └─ ChatMessageDoc.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”‚  └─ ChatMessageDocRepository.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ service
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”‚  └─ ChatMessageDocService.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ serviceImpl
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚     └─ ChatMessageDocServiceImpl.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”œβ”€ service
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  β”œβ”€ ChatMessageService.java
   β”‚  β”‚           β”‚  β”‚  β”‚  β”‚  └─ ChatS3Service.java
   β”‚  β”‚           β”‚  β”‚  β”‚  └─ serviceImpl
   β”‚  β”‚           β”‚  β”‚  β”‚     β”œβ”€ ChatMessageServiceImpl.java
   β”‚  β”‚           β”‚  β”‚  β”‚     └─ ChatS3ServiceImpl.java
   β”‚  β”‚           β”‚  β”‚  └─ chatRoom
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ controller
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ApiV1ChatRoomController.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ converter
   β”‚  β”‚           β”‚  β”‚     β”‚  β”œβ”€ StringDoubleListConverter.java
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ StringListConverter.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ dto
   β”‚  β”‚           β”‚  β”‚     β”‚  β”œβ”€ ChatRoomDto.java
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ DetailChatRoomDto.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ entity
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ChatRoom.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ form
   β”‚  β”‚           β”‚  β”‚     β”‚  β”œβ”€ CreateChatRoomForm.java
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ UpdateChatRoomForm.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ repository
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ChatRoomRepository.java
   β”‚  β”‚           β”‚  β”‚     β”œβ”€ service
   β”‚  β”‚           β”‚  β”‚     β”‚  └─ ChatRoomService.java
   β”‚  β”‚           β”‚  β”‚     └─ serviceImpl
   β”‚  β”‚           β”‚  β”‚        └─ ChatRoomServiceImpl.java
   β”‚  β”‚           β”‚  β”œβ”€ home
   β”‚  β”‚           β”‚  β”‚  └─ main
   β”‚  β”‚           β”‚  β”‚     └─ controller
   β”‚  β”‚           β”‚  β”‚        └─ MainController.java
   β”‚  β”‚           β”‚  └─ member
   β”‚  β”‚           β”‚     β”œβ”€ alert
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ ApiV1AlertController.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ dto
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AlertRequest.java
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ AlertResponse.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ Alert.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ enums
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AlertType.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ BoardAlertType.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ ...
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ events
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AlertEvent.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AlertEventHandler.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ ...
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ AlertRepository.java
   β”‚  β”‚           β”‚     β”‚  └─ service
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ AlertEventPublisher.java
   β”‚  β”‚           β”‚     β”‚     └─ AlertService.java
   β”‚  β”‚           β”‚     β”œβ”€ auth
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ config
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AsyncConfig.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ EmailConfig.java
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ SmsConfig.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ ApiV1AuthController.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ dto
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ EmailInfo.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ EmailRequest.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ EmailVerifyRequest.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ ...
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ SocialAccount.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ SocialAccountRepository.java
   β”‚  β”‚           β”‚     β”‚  └─ service
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ AuthService.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ AuthTokenService.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ ...
   β”‚  β”‚           β”‚     β”œβ”€ member
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ controller
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ ApiV1FriendController.java
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ ApiV1MemberController.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ dto
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AddPasswordRequest.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ AddressResponse.java
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ ...
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ entity
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ Friend.java
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ Member.java
   β”‚  β”‚           β”‚     β”‚  β”œβ”€ repository
   β”‚  β”‚           β”‚     β”‚  β”‚  β”œβ”€ FriendRepository.java
   β”‚  β”‚           β”‚     β”‚  β”‚  └─ MemberRepository.java
   β”‚  β”‚           β”‚     β”‚  └─ service
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ FriendService.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ MemberService.java
   β”‚  β”‚           β”‚     β”‚     β”œβ”€ ...
   β”‚  β”‚           β”‚     └─ report
   β”‚  β”‚           β”‚        β”œβ”€ controller
   β”‚  β”‚           β”‚        β”‚  └─ ApiV1ReportController.java
   β”‚  β”‚           β”‚        β”œβ”€ dto
   β”‚  β”‚           β”‚        β”‚  β”œβ”€ ReportListResponse.java
   β”‚  β”‚           β”‚        β”‚  β”œβ”€ ReportRequest.java
   β”‚  β”‚           β”‚        β”‚  β”œβ”€ ...
   β”‚  β”‚           β”‚        β”œβ”€ entity
   β”‚  β”‚           β”‚        β”‚  └─ Report.java
   β”‚  β”‚           β”‚        β”œβ”€ repository
   β”‚  β”‚           β”‚        β”‚  └─ ReportRepository.java
   β”‚  β”‚           β”‚        └─ service
   β”‚  β”‚           β”‚           └─ ReportService.java
   β”‚  β”‚           β”œβ”€ global
   β”‚  β”‚           β”‚  β”œβ”€ app
   β”‚  β”‚           β”‚  β”‚  └─ AppConfig.java
   β”‚  β”‚           β”‚  β”œβ”€ aspect
   β”‚  β”‚           β”‚  β”‚  └─ ResponseAspect.java
   β”‚  β”‚           β”‚  β”œβ”€ chatS3
   β”‚  β”‚           β”‚  β”‚  └─ ChatS3Config.java
   β”‚  β”‚           β”‚  β”œβ”€ exceptions
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ ErrorCode.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ GlobalExceptionHandler.java
   β”‚  β”‚           β”‚  β”‚  └─ ServiceException.java
   β”‚  β”‚           β”‚  β”œβ”€ initData
   β”‚  β”‚           β”‚  β”‚  └─ NotProd.java
   β”‚  β”‚           β”‚  β”œβ”€ jpa
   β”‚  β”‚           β”‚  β”‚  └─ BaseEntity.java
   β”‚  β”‚           β”‚  β”œβ”€ oauth2
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ CustomAuthorizationRequestResolver.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ ...
   β”‚  β”‚           β”‚  β”œβ”€ redis
   β”‚  β”‚           β”‚  β”‚  └─ RedisConfig.java
   β”‚  β”‚           β”‚  β”œβ”€ rq
   β”‚  β”‚           β”‚  β”‚  └─ Rq.java
   β”‚  β”‚           β”‚  β”œβ”€ rsData
   β”‚  β”‚           β”‚  β”‚  └─ RsData.java
   β”‚  β”‚           β”‚  β”œβ”€ security
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ ApiSecurityConfig.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ CustomAuthenticationFilter.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ ...
   β”‚  β”‚           β”‚  β”œβ”€ storage
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ FileStorageHandler.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ FileUploadRequest.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ ...
   β”‚  β”‚           β”‚  β”œβ”€ web
   β”‚  β”‚           β”‚  β”‚  └─ WebConfig.java
   β”‚  β”‚           β”‚  β”œβ”€ webMvc
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ CustomWebMvcConfig.java
   β”‚  β”‚           β”‚  β”‚  β”œβ”€ LoginUser.java
   β”‚  β”‚           β”‚  β”‚  └─ LoginUserArgumentResolver.java
   β”‚  β”‚           β”‚  └─ websocket
   β”‚  β”‚           β”‚     β”œβ”€ ChatMessageHandler.java
   β”‚  β”‚           β”‚     └─ WebSocketConfig.java
   β”‚  β”‚           └─ standard
   β”‚  β”‚              β”œβ”€ base
   β”‚  β”‚              β”‚  └─ Empty.java
   β”‚  β”‚              └─ util
   β”‚  β”‚                 └─ Ut.java
   β”‚  └─ resources
   β”‚     β”œβ”€ application-dev.yml
   β”‚     β”œβ”€ application-prod.yml
   β”‚     β”œβ”€ ...
   β”‚     β”œβ”€ elasticsearch
   β”‚     β”‚  β”œβ”€ mappings.json
   β”‚     β”‚  └─ settings.json
   β”‚     β”œβ”€ static
   β”‚     └─ templates
   └─ test
   

πŸ“‹ ERD

erd

πŸ“„ API λͺ…μ„Έμ„œ

λͺ…μ„Έ

πŸ“„ GitConvention

GitConvention에 μ‹œκ°„μ„ λ„ˆλ¬΄ μŸμ§€ μ•Šλ„λ‘ λͺ¨λ‘μ—κ²Œ μ΅μˆ™ν•œ κΉƒμ»¨λ²€μ…˜ 채택

main
β”œβ”€ dev
β”‚  └─ 개인 브랜치

πŸ”§ 기술 μŠ€νƒ

κΈ°μˆ μŠ€νƒ

FE

React + TypeScript

  • ν”„λ‘ νŠΈ μ„œλ²„λ₯Ό λΆ„λ¦¬ν•˜λ©΄μ„œ νž˜μ„ μ΅œλŒ€ν•œ 덜 듀이기 μœ„ν•΄ κ°€μž₯ 유λͺ…ν•˜κ³  μ΅μˆ™ν•œ λ¦¬μ•‘νŠΈλ₯Ό μ„ μ •.
  • μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ³€μˆ˜ 데이터 νƒ€μž…μ΄ 동적이기 λ•Œλ¬Έμ— μΆ”ν›„ μ°Ύμ§€ λͺ»ν•  νƒ€μž… μ—λŸ¬λ₯Ό λ°©μ§€ν•΄ νƒ€μž… 슀크립트 μΆ”κ°€
  • κ°„νŽΈν•œ API μš”μ²­μ„ μœ„ν•΄ axios μ‚¬μš©

BE

SpringBoot + JPA + QueryDSL

  • λΉ λ₯Έ ν”„λ‘œμ νŠΈ μ‹œμž‘μ„ μœ„ν•΄ WASκ°€ λ‚΄μž₯λ˜μ–΄μžˆλŠ” SpringBoot μ„ μ •
  • 데이터 λ§€ν•‘ μžλ™ν™”λ₯Ό μœ„ν•œ JPA λ„μž… 및 QueryDSL μ‚¬μš©

WebSocket STOMP

  • μ±„νŒ… κΈ°λŠ₯ κ΅¬ν˜„μ„ μœ„ν•œ WebSocket STOMP 라이브러리 μ‚¬μš©

JWT

  • νšŒμ› 정보 토큰 인증, 인가 μ‚¬μš©μ„ μœ„ν•œ JWT 채택

DBMS

Mysql, Redis

  • 짧은 개발 기간을 κ³ λ €ν•˜μ—¬ λͺ¨λ‘μ—κ²Œ μ΅μˆ™ν•œ Mysql 채택
  • 이메일, νœ΄λŒ€ν° 인증 μ—¬λΆ€ 확인을 μœ„ν•œ Redis 채택

elasticsearch

  • μΆ•μ œ, μ±„νŒ… λ°μ΄ν„°μ˜ λΉ λ₯Έ 검색을 μœ„ν•œ elasticsearch λ„μž…

πŸ”§ 아킀텍쳐

μ•„ν‚€ν…μ²˜ cicdνŒŒμ΄ν”„λΌμΈ

πŸ’β€β™‚ κ΅¬ν˜„ κΈ°λŠ₯

μ•Œλ¦Ό

  • 친ꡬ μΆ”κ°€, μ±„νŒ…λ°©, 곡지사항 λ“± μ•Œλ¦Ό κΈ°λŠ₯

둜그인 및 λ§ˆμ΄νŽ˜μ΄μ§€ κΈ°λŠ₯

  • 자체 νšŒμ›κ°€μž…, 자체 둜그인 κΈ°λŠ₯
  • μ†Œμ…œ 둜그인 κΈ°λŠ₯
  • λ§ˆμ΄νŽ˜μ΄μ§€
    • νšŒμ› ν”„λ‘œν•„ μˆ˜μ • κΈ°λŠ₯
    • μ†Œμ…œ 계정 연동 κΈ°λŠ₯
    • 친ꡬ μΆ”κ°€ κΈ°λŠ₯

μΆ•μ œ κ²Œμ‹œκΈ€ λŒ“κΈ€&λ‹΅κΈ€ 및 λͺ¨μž„(μ±„νŒ…λ°©) κΈ°λŠ₯

  • 메일 3μ‹œ μŠ€μΌ€μ€„λŸ¬λ₯Ό ν†΅ν•œ μΆ•μ œ/곡연 API 정보 νŒŒμ‹±
  • μΆ•μ œ/곡연 κ²Œμ‹œκΈ€ 및 λŒ“κΈ€κ³Ό λ‹΅κΈ€ κΈ°λŠ₯
  • μΆ•μ œ/곡연 κ²Œμ‹œκΈ€μ— λͺ¨μž„(μ±„νŒ…λ°©) 생성 κΈ°λŠ₯
  • λͺ¨μž„(μ±„νŒ…λ°©) 관리 κΈ°λŠ₯
    • λ°©μž₯ κΆŒν•œ μœ„μž„
    • μ°Έμ—¬ 수락 및 μ°Έμ—¬μž 강퇴 κΈ°λŠ₯

μ‹€μ‹œκ°„ μ±„νŒ… (WebSocket STOMP + REST API)

  • WebSocket + STOMPλ₯Ό μ‚¬μš©ν•œ μ‹€μ‹œκ°„ μ±„νŒ… 솑/μˆ˜μ‹ 
  • λ©”μ‹œμ§€λ₯Ό 읽지 μ•Šμ€ μ‚¬λžŒ 수 ν‘œμ‹œ (μΉ΄μΉ΄μ˜€ν†‘μ˜ 1)
  • μ±„νŒ…λ°© 멀버 온라인/μ˜€ν”„λΌμΈ μƒνƒœ ν‘œμ‹œ
  • AWS S3λ₯Ό μ‚¬μš©ν•œ 이미지 μ—…λ‘œλ“œ, μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„ (Gif, Png, Jpg, Jpeg)

검색 κΈ°λŠ₯ (V1: MySQL, V2: Elasticsearch)

μ±„νŒ…

  • V1 : 동적 쿼리λ₯Ό μ‚¬μš©ν•œ μ±„νŒ…λ°© λ‚΄ λ©”μ‹œμ§€ 검색 κΈ°λŠ₯ (QueryDSL)
  • V2 : Elasticsearchλ₯Ό μ΄μš©ν•œ μ±„νŒ…λ°© λ‚΄ λ©”μ‹œμ§€ 검색 κΈ°λŠ₯

μΆ•μ œ/곡연

  • V1 : 동적 쿼리λ₯Ό μ‚¬μš©ν•œ μΆ•μ œ/곡연 ν‚€μ›Œλ“œ, μž₯λ₯΄ 검색 κΈ°λŠ₯ (QueryDSL)
  • V2 : Elasticsearchλ₯Ό μ΄μš©ν•œ
    • μΆ•μ œ/곡연 ν‚€μ›Œλ“œ, μž₯λ₯΄ 검색 κΈ°λŠ₯
    • λ‚ μ§œλ‚˜ μ‚¬μš©μž 지역에 맞좘 메인 λ°°λ„ˆ κΈ°λŠ₯

κ΄€λ¦¬μž νŽ˜μ΄μ§€ 및 곡지사항 κΈ°λŠ₯

  • κ΄€λ¦¬μž κΆŒν•œμ„ κ°€μ§„ μ‚¬μš©μžλ§Œ μ§„μž…ν•  수 μžˆλŠ” κ΄€λ¦¬μž νŽ˜μ΄μ§€
    • νšŒμ› 쑰회 κΈ°λŠ₯
    • λͺ¨μž„ 쑰회 및 μ‚­μ œ κΈ°λŠ₯
    • 곡지사항 μž‘μ„± κΈ°λŠ₯
  • κ΄€λ¦¬μžκ°€ μž‘μ„±ν•œ 곡지사항 쑰회 및 λŒ“κΈ€ μž‘μ„± κΈ°λŠ₯

πŸ”§ κΈ°μˆ κ΅¬ν˜„(단체)

[λ°œν‘œ μ˜μƒ μ˜¬λ¦΄μ˜ˆμ •]

🎞️ μ‹œμ—° μ˜μƒ

μ‚¬μš©μž, μ•Œλ¦Ό

μ‹œμ—°1

λ°°λ„ˆ, μΆ•μ œ/곡연 검색

μ‹œμ—°2

λͺ¨μž„(μ±„νŒ…λ°©), λŒ“κΈ€

μ‹œμ—°3

단체 μ±„νŒ…

μ‹œμ—°4

곡지사항, κ΄€λ¦¬μž νŽ˜μ΄μ§€

μ‹œμ—°5

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages