κ°λ° κΈ°κ° : 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
GitConventionμ μκ°μ λ무 μμ§ μλλ‘ λͺ¨λμκ² μ΅μν κΉμ»¨λ²€μ μ±ν
main
ββ dev
β ββ κ°μΈ λΈλμΉ
React + TypeScript
- νλ‘ νΈ μλ²λ₯Ό λΆλ¦¬νλ©΄μ νμ μ΅λν λ λ€μ΄κΈ° μν΄ κ°μ₯ μ λͺ νκ³ μ΅μν 리μ‘νΈλ₯Ό μ μ .
- μλ°μ€ν¬λ¦½νΈμ λ³μ λ°μ΄ν° νμ μ΄ λμ μ΄κΈ° λλ¬Έμ μΆν μ°Ύμ§ λͺ»ν νμ μλ¬λ₯Ό λ°©μ§ν΄ νμ μ€ν¬λ¦½νΈ μΆκ°
- κ°νΈν API μμ²μ μν΄ axios μ¬μ©
SpringBoot + JPA + QueryDSL
- λΉ λ₯Έ νλ‘μ νΈ μμμ μν΄ WASκ° λ΄μ₯λμ΄μλ SpringBoot μ μ
- λ°μ΄ν° λ§€ν μλνλ₯Ό μν JPA λμ λ° QueryDSL μ¬μ©
WebSocket STOMP
- μ±ν κΈ°λ₯ ꡬνμ μν WebSocket STOMP λΌμ΄λΈλ¬λ¦¬ μ¬μ©
JWT
- νμ μ 보 ν ν° μΈμ¦, μΈκ° μ¬μ©μ μν JWT μ±ν
Mysql, Redis
- μ§§μ κ°λ° κΈ°κ°μ κ³ λ €νμ¬ λͺ¨λμκ² μ΅μν Mysql μ±ν
- μ΄λ©μΌ, ν΄λν° μΈμ¦ μ¬λΆ νμΈμ μν Redis μ±ν
- μΆμ , μ±ν λ°μ΄ν°μ λΉ λ₯Έ κ²μμ μν elasticsearch λμ
- μΉκ΅¬ μΆκ°, μ±ν λ°©, 곡μ§μ¬ν λ± μλ¦Ό κΈ°λ₯
- μ체 νμκ°μ , μ체 λ‘κ·ΈμΈ κΈ°λ₯
- μμ λ‘κ·ΈμΈ κΈ°λ₯
- λ§μ΄νμ΄μ§
- νμ νλ‘ν μμ κΈ°λ₯
- μμ κ³μ μ°λ κΈ°λ₯
- μΉκ΅¬ μΆκ° κΈ°λ₯
- λ©μΌ 3μ μ€μΌμ€λ¬λ₯Ό ν΅ν μΆμ /κ³΅μ° API μ 보 νμ±
- μΆμ /κ³΅μ° κ²μκΈ λ° λκΈκ³Ό λ΅κΈ κΈ°λ₯
- μΆμ /κ³΅μ° κ²μκΈμ λͺ¨μ(μ±ν λ°©) μμ± κΈ°λ₯
- λͺ¨μ(μ±ν
λ°©) κ΄λ¦¬ κΈ°λ₯
- λ°©μ₯ κΆν μμ
- μ°Έμ¬ μλ½ λ° μ°Έμ¬μ κ°ν΄ κΈ°λ₯
- WebSocket + STOMPλ₯Ό μ¬μ©ν μ€μκ° μ±ν μ‘/μμ
- λ©μμ§λ₯Ό μ½μ§ μμ μ¬λ μ νμ (μΉ΄μΉ΄μ€ν‘μ 1)
- μ±ν λ°© λ©€λ² μ¨λΌμΈ/μ€νλΌμΈ μν νμ
- AWS S3λ₯Ό μ¬μ©ν μ΄λ―Έμ§ μ λ‘λ, μμ κΈ°λ₯ ꡬν (Gif, Png, Jpg, Jpeg)
μ±ν
- V1 : λμ 쿼리λ₯Ό μ¬μ©ν μ±ν λ°© λ΄ λ©μμ§ κ²μ κΈ°λ₯ (QueryDSL)
- V2 : Elasticsearchλ₯Ό μ΄μ©ν μ±ν λ°© λ΄ λ©μμ§ κ²μ κΈ°λ₯
μΆμ /곡μ°
- V1 : λμ 쿼리λ₯Ό μ¬μ©ν μΆμ /κ³΅μ° ν€μλ, μ₯λ₯΄ κ²μ κΈ°λ₯ (QueryDSL)
- V2 : Elasticsearchλ₯Ό μ΄μ©ν
- μΆμ /κ³΅μ° ν€μλ, μ₯λ₯΄ κ²μ κΈ°λ₯
- λ μ§λ μ¬μ©μ μ§μμ λ§μΆ λ©μΈ λ°°λ κΈ°λ₯
- κ΄λ¦¬μ κΆνμ κ°μ§ μ¬μ©μλ§ μ§μ
ν μ μλ κ΄λ¦¬μ νμ΄μ§
- νμ μ‘°ν κΈ°λ₯
- λͺ¨μ μ‘°ν λ° μμ κΈ°λ₯
- 곡μ§μ¬ν μμ± κΈ°λ₯
- κ΄λ¦¬μκ° μμ±ν 곡μ§μ¬ν μ‘°ν λ° λκΈ μμ± κΈ°λ₯
[λ°ν μμ μ¬λ¦΄μμ ]










