λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ–₯️ μ΄μ»€λ¨ΈμŠ€ν”„λ‘œμ νŠΈ/✏️ TIL

[TIL] λ‹€μ‹œ μ‹œμž‘ν•΄λ³΄λŠ” ν”„λ‘œμ νŠΈ TIL 5일차..

by carrot0911 2025. 4. 25.

🌞 μ˜€λŠ˜μ€ μ–΄λ–€ ν•˜λ£¨μ˜€μ§€..

정신없이 μ§€λ‚˜κ°„ ν•˜λ£¨μ˜€λ‹€..

μ˜€λžœλ§Œμ— κ°œλ°œμ„ μ‹œμž‘ν•˜λ €κ³  ν•˜λ‹ˆ 뭐뢀터 ν•΄μ•Ό ν• μ§€ λ§‰λ§‰ν•΄μ„œ 계속 ν—€λ§Έλ‹€. 처음 κ°œλ°œν•  λ•Œλ‘œ λŒμ•„κ°„ λŠλ‚Œμ΄λΌμ„œ 이것저것 λ‹€μ‹œ 찾아보고, 기얡을 λ”λ“¬μœΌλ©° 인증/인가와 μ‚¬μš©μž λΆ€λΆ„ CRUDλ₯Ό μ‹œμž‘ν–ˆλ‹€.

μš°μ„  μ΅œμ’…μ μœΌλ‘œλŠ” Spring Securityλ₯Ό μ μš©ν•˜λŠ” 것이 λͺ©ν‘œμ΄μ§€λ§Œ, 아직 Spring Security에 λŒ€ν•΄ 잘 λͺ¨λ₯΄κΈ°λ„ ν•˜κ³  λͺ¨λ₯΄λŠ” μƒνƒœμ—μ„œ λ¬΄μž‘μ • ν•˜λ©΄ λͺ©ν‘œ κΈ°κ°„ μ•ˆμ— MVP κ΅¬ν˜„μ„ μ‹€νŒ¨ν•  것 κ°™μ•„μ„œ JWT 토큰을 ν™œμš©ν•΄μ„œ κ΅¬ν˜„ν•˜λŠ” 것을 MVP λͺ©ν‘œλ‘œ μž‘μ•˜λ‹€.

전에 ν–ˆλ˜ ν”„λ‘œμ νŠΈμ˜ JWT 뢀뢄을 λ³΄λ©΄μ„œ μ΄ν•΄ν•˜κ³  μ½”λ“œ μž‘μ„±ν•˜λŠ” μ‹μœΌλ‘œ μ§„ν–‰ν•˜λ©΄μ„œ νšŒμ›κ°€μž…, 둜그인 뢀뢄을 ν•˜λ£¨ 쒅일 작고 μžˆμ—ˆκ³ , κ·Έ 뒀에 μ‚¬μš©μž RUDλ₯Ό κ°œλ°œν–ˆλŠ”λ° μ΄κ²ƒλ§ˆμ € 쉽지 μ•Šμ•˜λ‹€.
μ°¨λ‘€λŒ€λ‘œ ν•΄λ‚˜κ°„λ‹€κ³  μƒκ°ν–ˆλŠ”λ° 막상 λ’€λŒμ•„λ³΄λ©΄ λ’€μ£½λ°•μ£½ 엉망인 μƒνƒœμ˜€λ‹€.. κ·Έλž˜λ„ 내일 μ˜€μ „ μ€‘μœΌλ‘œ νšŒμ› CRUDλŠ” λ§ˆλ¬΄λ¦¬ν•  수 μžˆμ„ 것 κ°™μ•„μ„œ 닀행이라고 μƒκ°ν•œλ‹€.

내일도 μ„±μž₯ν•˜λŠ” ν•˜λ£¨κ°€ λ˜μ—ˆμœΌλ©΄ μ’‹κ² λ‹€.

 

πŸ’‘ μƒˆλ‘­κ²Œ μ•Œκ²Œ 된 λ‚΄μš©μ€ 뭐가 μžˆλ”λΌ..?!

νŒ¨ν‚€μ§€ 방식

common
β”œβ”€β”€ dto              # 곡톡 응닡 DTO (ApiResponseDto, PageResponseDto λ“±)
β”œβ”€β”€ exception        # ErrorCode, CustomException, GlobalExceptionHandler λ“±
β”œβ”€β”€ security         # JwtProvider, TokenInfo, SecurityUtil λ“±
β”œβ”€β”€ util             # DateUtil, StringUtil, EnumMapper λ“±
β”œβ”€β”€ annotation       # @CurrentUser, @Encrypted λ“± μ»€μŠ€ν…€ μ–΄λ…Έν…Œμ΄μ…˜
└── converter        # 곡톡 Enum <-> λ¬Έμžμ—΄ λ³€ν™˜κΈ° λ“±
domain
β”œβ”€β”€ user
β”‚   β”œβ”€β”€ controller
β”‚   β”œβ”€β”€ service
β”‚   β”œβ”€β”€ repository
β”‚   β”œβ”€β”€ entity
β”‚   └── dto
β”œβ”€β”€ product
β”‚   β”œβ”€β”€ controller
β”‚   β”œβ”€β”€ service
β”‚   β”œβ”€β”€ repository
β”‚   β”œβ”€β”€ entity
β”‚   └── dto
└── ...
global
β”œβ”€β”€ config           # SecurityConfig, SwaggerConfig, RedisConfig λ“±
β”œβ”€β”€ security         # JwtFilter, AuthenticationEntryPoint λ“±
β”œβ”€β”€ filter           # LoggingFilter, RequestFilter λ“±
β”œβ”€β”€ interceptor      # 인증 체크 인터셉터 λ“±
β”œβ”€β”€ resolver         # HandlerMethodArgumentResolver (@CurrentUser 처리 λ“±)
└── aop              # λ‘œκΉ…, νŠΈλžœμž­μ…˜ AOP λ“±

JWT

JWTλŠ” λ”°λ‘œ λΈ”λ‘œκ·Έμ— μ •λ¦¬ν•΄μ„œ μ˜¬λ¦¬λŠ” 것이 쒋을 것 κ°™λ‹€.

 

πŸ—“οΈ 내일은 뭐 ν•˜μ§€?!

βœ”οΈ ν”„λ‘œμ νŠΈ μ§„ν–‰ (MVP κ΅¬ν˜„)
βœ”οΈ μ½”ν…Œ 1문제 ν’€κ³  정리
βœ”οΈ μš΄λ™
βœ”οΈ TIL μž‘μ„±