πΒ Link : https://mogakjak-fe.vercel.app
νλͺ
λͺ°μ μ Deep Dive νκ² λ€λ ν¬λΆμ,
ν΄μμ§ Maldivesμ²λΌ νΈμνκ³ μ¦κ±°μ΄ λͺ°μ νκ²½μ λ§λ€κ² λ€λ
μ€μμ μλ―Έλ₯Ό λ΄μ νλͺ μ λλ€.
κΈ°μ‘΄μ μλΉμ€λ€μ μ μ λ€μ μλ°μ΄ νμν λͺ°μ μ λΆλ΄μ λλΌκ³ μμμ΅λλ€
-
κ·Έλ£Ή μ€μκ° μν 곡μ
λ©€λ²λ€μ μ§μ€/ν΄μ μν νμ, βμ½ μ°λ₯΄κΈ°β μλ¦Ό μ 곡 -
λͺ°μ μ§μ κΈ°λ₯
κ³΅κ° μ€μ , κ·Έλ£Ή νμ΄λ¨Έ, λͺ©ν λ¬μ±λ₯ , μΊλ¦ν° μ±μ₯ μμ€ν -
μΉ μ΅μ ν κΈ°λ₯
PIP λͺ¨λ, κ·Έλ£Ή μλ¦Ό, μ£ΌΒ·μ μ§μ€ 리ν¬νΈ μκ°ν
-
Spring Boot 3.3.2 + Java 21
LTS κΈ°λ°μΌλ‘ μ±λ₯κ³Ό νμ μμ μ±μ ν보νμ΅λλ€. -
Spring Data JPA
λ©μλ λ€μ΄λ° 쿼리, JPQL, Native Queryλ₯Ό μ¬μ©νκ³
JOIN FETCHλ‘ N+1 λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€. -
MySQL
μμ μ μΈ κ΄κ³ν λ°μ΄ν° ꡬ쑰μ μ ν©νμ¬ μ ννμ΅λλ€. -
Spring Security + JWT (jjwt 0.13.0)
OncePerRequestFilterκΈ°λ° JWT νν° μ²΄μΈκ³Ό Stateless μΈμ μΌλ‘
보μμ±κ³Ό νμ₯μ±μ ν보νμ΅λλ€. -
Redis + Pub/Sub
λ€μ 8κ° μ±λμ Pub/Sub κ΅¬μ‘°λ‘ μ΄μνλ©° μ€μκ° λ©μμ§μ μ²λ¦¬ν©λλ€:
chat,focus-notification,group-member-status,timer-completion,
poke-notification,cheer-notification,group-timer-event,user-active-status -
WebSocket (STOMP + SockJS)
ν ν° κΈ°λ° μΈμ¦ μΈν°μ ν°μ Simple Brokerλ‘
κ·Έλ£Ή νμ΄λ¨ΈΒ·μ±ν Β·μλ¦Ό λ± μ€μκ° κΈ°λ₯μ μ 곡ν©λλ€. -
AWS S3 SDK (NCP Object Storage νΈν)
μ΄λ―Έμ§ μ μ₯μλ‘ μ¬μ©νμ΅λλ€.
- CI μλν: PR μμ± μ μ»΄νμΌΒ·ν μ€νΈΒ·μ μ λΆμμ μλ μ€ννκ³ , μ€ν¨ μ merge μ°¨λ¨
- CD μλν:
develop β staging,main β productionνκ²½μΌλ‘ μλ λ°°ν¬ - 무μ€λ¨ λ°°ν¬(λΈλ£¨/κ·Έλ¦°): Docker μ΄λ―Έμ§ λΉλ β λ°°ν¬ β ν¬μ€μ²΄ν¬ ν νΈλν½ μ ν, μ€ν¨ μ μλ λ‘€λ°±
- λ¬Έμ : μ»€λ° μ μ WebSocket λΈλ‘λμΊμ€νΈ β νλ‘ νΈμμ μ΅μ μν λ―Έλ°μ
- ν΄κ²°:
afterCommit()μ¬μ©ν΄ νΈλμμ μλ£ ν λΈλ‘λμΊμ€νΈ μν
- λ¬Έμ : Redis Pub/Sub μ μ‘ μ Java 8 μκ° νμ μ§λ ¬ν μ€ν¨
- ν΄κ²°:
JavaTimeModuleλ±λ‘ + νμμ€ν¬ν λΉνμ±ν
- λ¬Έμ : κ·Έλ£Ή/λ©μ΄νΈ μ‘°ν λ±μμ N+1 λ°μ
- ν΄κ²°: JOIN FETCH + Native Queryλ‘ μ§κ³ μ²λ¦¬
- λ¬Έμ : 1μ΄λ§λ€ μ 체 νμ΄λ¨Έ μ‘°ν β μλ² λΆν
- ν΄κ²°: μ’ λ£ μμ κΈ°λ° μ΄λ²€νΈ μ€μΌμ€λ§μΌλ‘ μ ν
- λ¬Έμ : μ‘°ν 쿼리λ κΈ°λ³Έ νΈλμμ μ¬μ© β λ½Β·μ€λ²ν€λ μ¦κ°
- ν΄κ²°:
@Transactional(readOnly = true)μ μ©
- λ¬Έμ : λ¨μΌ μλ²λ§ λΈλ‘λμΊμ€νΈ κ°λ₯
- ν΄κ²°: Redis Pub/SubμΌλ‘ λͺ¨λ μΈμ€ν΄μ€ λκΈ°ν
- λ¬Έμ : μ¬λ¬ 쿼리 + μ ν리μΌμ΄μ μ§κ³λ‘ μλ΅ μ§μ°
- ν΄κ²°: Native Queryλ‘ ν λ²μ μ§κ³ μ‘°ν



