Skip to content

BackEndSchoolPlus3th/hfBackend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

570 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

Watchers

Forks

Packages

No packages published

Contributors 6

Languages