Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ ๐ŸŽ‰ deploy/#60] ํ„ฐ๋‹ API ์ตœ์ข… ๋ฐฐํฌ.v1.0.1 #61

Merged
merged 264 commits into from
Aug 12, 2024

Conversation

junggyo1020
Copy link
Contributor

๐Ÿ“„ Work Description

  • ํ„ฐ๋‹ API ์ตœ์ข… ๋ฐฐํฌ.v1.0.1

โš™๏ธ ISSUE

jsoonworld and others added 30 commits July 6, 2024 21:50
- getUserId ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด JWT ํ† ํฐ์—์„œ ์‚ฌ์šฉ์ž ID๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„.
- jwtTokenProvider์˜ getUserFromJwt ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ์ž ID๋ฅผ ๋ฐ˜ํ™˜.
- ์ด ๋ฉ”์†Œ๋“œ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ์ด๋‚˜ ์„ธ์…˜ ๊ด€๋ฆฌ ๋“ฑ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- UsernamePasswordAuthenticationToken์„ ์ƒ์†๋ฐ›์•„ UserAuthentication ํด๋ž˜์Šค ์ •์˜.
- ์‚ฌ์šฉ์ž์˜ ์‹ ์›๊ณผ ๊ถŒํ•œ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด principal, credentials, ๋ฐ authorities ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›๋Š” ์ƒ์„ฑ์ž ๊ตฌํ˜„.
- ์ด ํด๋ž˜์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŠน์ • ์ธ์ฆ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- doFilterInternal ๋ฉ”์†Œ๋“œ์— JWT ํ† ํฐ ์ถ”์ถœ ๋ฐ ๊ฒ€์ฆ ๋กœ์ง ๊ตฌํ˜„.
- ์œ ํšจํ•œ JWT๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, UserAuthentication ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  SecurityContextHolder์— ์ธ์ฆ ์ •๋ณด ์„ค์ •.
- ์ธ์ฆ ๊ณผ์ • ์ค‘ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋ฅผ ๋กœ๊น….
- ์š”์ฒญ ์ฒ˜๋ฆฌ ํ›„ ๋‹ค์Œ ํ•„ํ„ฐ ๋˜๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์š”์ฒญ์„ ์—ฐ์†ํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€.
- ์ด ๊ตฌํ˜„์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ ๊ฐ•ํ™”์— ๊ธฐ์—ฌํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
- INVALID_TOKEN, INVALID_KEY ์˜ค๋ฅ˜ ์ฝ”๋“œ ๋ฐ ๋ฉ”์‹œ์ง€ ์ถ”๊ฐ€.
  - 401 ์ƒํƒœ ์ฝ”๋“œ์™€ "์œ ํšจํ•˜์ง€ ์•Š์€ ํ† ํฐ์ž…๋‹ˆ๋‹ค.", "์œ ํšจํ•˜์ง€ ์•Š์€ ํ‚ค์ž…๋‹ˆ๋‹ค." ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜.
- CustomJwtAuthenticationEntryPoint ํด๋ž˜์Šค์— ์ธ์ฆ ์‹คํŒจ ์‹œ ํ˜ธ์ถœ๋  ๋กœ์ง ๊ตฌํ˜„.
- ์ธ์ฆ๋˜์ง€ ์•Š์€ ์š”์ฒญ์— ๋Œ€ํ•ด JSON ํ˜•์‹์˜ 401 Unauthorized ์‘๋‹ต ๋ฐ˜ํ™˜.
- ์‘๋‹ต์—๋Š” INVALID_TOKEN ์˜ค๋ฅ˜์˜ ์ƒํƒœ ์ฝ”๋“œ์™€ ๋ฉ”์‹œ์ง€๋ฅผ ํฌํ•จ.
- ObjectMapper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ JSON ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜.
- ์ด ๊ตฌํ˜„์€ ์ธ์ฆ ์‹คํŒจ ์‹œ ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ณ  ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- CSRF ๋ณดํ˜ธ์™€ ํผ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ API ๋ณด์•ˆ ๊ฐ•ํ™”.
- STATELESS ์„ธ์…˜ ์ •์ฑ…์„ ์ ์šฉํ•˜์—ฌ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ ๊ตฌ์ถ•.
- CustomJwtAuthenticationEntryPoint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ์‹คํŒจ ์‹œ ์‚ฌ์šฉ์ž ์ •์˜ ์‘๋‹ต ์ฒ˜๋ฆฌ.
- /api/v1/auth/** ๋ฐ /error ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œํ•œ ์—†์ด ์„ค์ •.
- JwtAuthenticationFilter๋ฅผ ํ•„ํ„ฐ ์ฒด์ธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•œ ์ธ์ฆ ์ ˆ์ฐจ ๊ฐ•ํ™”.
- User ํด๋ž˜์Šค ์ƒ์„ฑ์ž์— @builder ์–ด๋…ธํ…Œ์ด์…˜ ์ ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๊ฐ„์†Œํ™”.
- ์ธ์ฆ ์œ ํ˜•๊ณผ ID๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ƒ์„ฑ์ž ๊ตฌํ˜„.
- ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€.
  - updateRefreshToken ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๊ฐ’์„ ๊ฐฑ์‹ .
  - resetRefreshToken ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์ดˆ๊ธฐํ™”.
- UserRepository ์ธํ„ฐํŽ˜์ด์Šค์— findByAuthTypeAndAuthId ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„.
- ํŠน์ • AuthType๊ณผ AuthId๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€.
- ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ Optional<User>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ.
- ์‚ฌ์šฉ์ž ์ธ์ฆ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด SignInRequest ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- ์ธ์ฆ ์œ ํ˜•(AuthType)์„ ์ €์žฅํ•˜๋Š” ๋ถˆ๋ณ€ ํ•„๋“œ ์ •์˜.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด authType ํ•„๋“œ์˜ null ๋ฐฉ์ง€.
- of ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ํƒ€์ž… ์•ˆ์ „ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- ์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ Token ํด๋ž˜์Šค ์ถ”๊ฐ€.
- ๋ถˆ๋ณ€ ํ•„๋“œ๋กœ accessToken๊ณผ refreshToken ์ •์˜.
- Lombok์˜ @getter์™€ @EqualsAndHashCode ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ๊ฐ์†Œ.
- @builder๋ฅผ ํ†ตํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„์œผ๋กœ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ ์ฆ๊ฐ€.
- ๋กœ๊ทธ์ธ ์‘๋‹ต์šฉ SignInResponse ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€, ์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ํ•„๋“œ๋กœ ํฌํ•จ.
- Lombok์˜ @builder ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์ œํ•œํ•˜๋Š” ๋นŒ๋” ํŒจํ„ด ๊ตฌํ˜„.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด Token ๊ฐ์ฒด์—์„œ ํ† ํฐ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๊ณ  SignInResponse ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ง€์›.
- ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์ €์žฅ์šฉ TokenGetRequest ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉํ•ด refreshToken ํ•„๋“œ์˜ null ๋ฐฉ์ง€.
- PRIVATE ์ ‘๊ทผ ๋ ˆ๋ฒจ์˜ @builder๋กœ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅ.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- ์•ก์„ธ์Šค ํ† ํฐ ์‘๋‹ต์šฉ TokenGetResponse ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉํ•ด accessToken ํ•„๋“œ์˜ null ๋ฐฉ์ง€.
- PRIVATE ์ ‘๊ทผ ๋ ˆ๋ฒจ์˜ @builder๋กœ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅ.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- ์‚ฌ์šฉ์ž ์ธ์ฆ ๊ด€๋ จ ์ฃผ์š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” AuthService ์ธํ„ฐํŽ˜์ด์Šค ์ถ”๊ฐ€.
- signIn, signOut, withdraw ๋ฐ reissueToken ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์› ํƒˆํ‡ด, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ์„ ์„ ์–ธ.
- ๊ฐ ๋ฉ”์†Œ๋“œ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ API์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
- ์ธ์ฆ ์„œ๋น„์Šค ์š”์ฒญ์„ ์œ„ํ•œ SignInServiceRequest ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- authAccessToken ๋ฐ authType ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ธ์ฆ ์š”์ฒญ์— ํ•„์š”ํ•œ ์ •๋ณด ์ €์žฅ.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์ˆ˜ ํ•„๋“œ์˜ null ๋ฐฉ์ง€.
- PRIVATE ์ ‘๊ทผ ๋ ˆ๋ฒจ์˜ @builder๋กœ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ ๊ฐ€๋Šฅ.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„์œผ๋กœ ์•ˆ์ „ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- ์ธ์ฆ ์„œ๋น„์Šค ์‘๋‹ต์šฉ SignInServiceResponse ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด accessToken๊ณผ refreshToken ํ•„๋“œ์˜ null ๋ฐฉ์ง€.
- PRIVATE ์ ‘๊ทผ ๋ ˆ๋ฒจ์˜ @builder๋กœ ๋‚ด๋ถ€์—์„œ๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ ๊ฐ€๋Šฅ.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด Token ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ํ† ํฐ ์ •๋ณด ์ถ”์ถœ ๋ฐ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- RuntimeException์„ ์ƒ์†๋ฐ›๋Š” UserException ํด๋ž˜์Šค๋ฅผ ์ •์˜.
- ErrorMessage ์—ด๊ฑฐํ˜•์„ ํ™œ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ์ƒํ™ฉ๋ณ„ ๋ฉ”์‹œ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ.
- ์ƒ์„ฑ์ž์—์„œ ErrorMessage ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ฉฐ, ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ์ƒ์„ธ ์ •๋ณด ์ œ๊ณต.
- @getter ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด errorMessage ํ•„๋“œ์˜ ์ ‘๊ทผ์ž ๋ฉ”์†Œ๋“œ ์ž๋™ ์ƒ์„ฑ.
- ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์š”์ฒญ์„ ์œ„ํ•œ TokenGetServiceRequest ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- PRIVATE ์ ‘๊ทผ ๋ ˆ๋ฒจ์˜ @builder๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅ.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด refreshToken ํ•„๋“œ๊ฐ€ null์ด ์•„๋‹˜์„ ๋ณด์žฅ.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- ํ† ํฐ ์„œ๋น„์Šค ์‘๋‹ต์„ ์œ„ํ•œ TokenGetServiceResponse ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€.
- PRIVATE ์ ‘๊ทผ ๋ ˆ๋ฒจ์˜ @builder๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅ.
- @nonnull ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด accessToken ํ•„๋“œ๊ฐ€ null์ด ์•„๋‹˜์„ ๋ณด์žฅ.
- of ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด ์ƒ์„ฑ ์ง€์›.
- AuthServiceImpl ํด๋ž˜์Šค์—์„œ signIn, signOut, withdraw, reissueToken ๋“ฑ์˜ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„.
- ์‚ฌ์šฉ์ž ์ธ์ฆ, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์› ํƒˆํ‡ด, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉ์ ์œผ๋กœ ์ œ๊ณต.
- ๊ฐ ์ธ์ฆ ์œ ํ˜•์— ๋”ฐ๋ฅธ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ํฌํ•จ.
- JwtTokenProvider๋ฅผ ํ™œ์šฉํ•œ ํ† ํฐ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„.
- UserService ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” UserServiceImpl ํด๋ž˜์Šค์— deleteUser ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€.
- UserRepository๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋‹ฌ๋œ User ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ญ์ œ.
- ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ์‹œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด @transactional ์–ด๋…ธํ…Œ์ด์…˜ ์ ์šฉ.
- UserService ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์‚ญ์ œ ๊ธฐ๋Šฅ์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณต.
- deleteUser ๋ฉ”์†Œ๋“œ๋Š” User ๊ฐ์ฒด๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„, ๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์š”๊ตฌ.
jsoonworld and others added 29 commits July 18, 2024 17:19
- ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…์‹œ ํ† ํฐ userId๋กœ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •
- ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ dto์— ํ•„๋“œ๋ฉด accessToken์—์„œ refreshToken์œผ๋กœ ์ˆ˜์ •
- ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ atk, rtk ๊ฐ™์ด ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ •
- ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์‹œ atk, rtk ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ •
[Refactor/#67] ์Šคํฌ๋žฉ, ๊ณต๊ณ  ์ƒ์„ธ, ํ•„ํ„ฐ๋ง ๊ด€๋ จ ์œ ์ € ๊ด€๋ฆฌ ๋กœ์ง ์ˆ˜์ • & ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๋กœ์ง ์ˆ˜์ •
- UserFilterRequestDto์—์„œ userId ํ•„๋“œ ์‚ญ์ œ
[๐Ÿ”จfix/#82]: ํ•„ํ„ฐ๋ง ์žฌ์„ค์ • dto ์ˆ˜์ •
[๐Ÿ”ฅ!hotfix/#84] ํ™ˆ > ๋‚˜์—๊ฒŒ ๋”ฑ๋งž๋Š” ์ธํ„ด ๊ณต๊ณ  ์กฐํšŒ ์‘๋‹ต ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ
- ํ•„ํ„ฐ๋ง ์„ค์ • ์•ˆ ํ•œ ์œ ์ €๊ฐ€ ์žฌ์„ค์ •์‹œ ์˜ค๋ฅ˜๋‚˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ
[๐Ÿ”จ fix/#82]: ํ•„ํ„ฐ๋ง ์žฌ์„ค์ • ๋กœ์ง ์˜ค๋ฅ˜ ์ˆ˜์ •
- ์‚ฌ์šฉ์ž ํ•„ํ„ฐ๋ง ์žฌ์„ค์ • ๋กœ์ง ์ˆ˜์ •
[๐Ÿ”จfix/#82]: ํ•„ํ„ฐ๋ฆด ์žฌ์„ค์ • ๋กœ์ง ์ˆ˜์ •
[๐Ÿ”ฅ!hotfix/#88] ํƒ์ƒ‰ > ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ™”๋ฉด ์‘๋‹ต ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ
[๐Ÿ”ฅ !hotfix/#91]: ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๊ณต๊ณ ๋ฅผ ์ด๋ฏธ ์Šคํฌ๋žฉํ–ˆ์„ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€
@junggyo1020 junggyo1020 merged commit e4a0a2a into main Aug 12, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
๐ŸŽ‰deploy CI/CD ๊ด€๋ จ ์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€ ๐Ÿฐ์ •์œค๐Ÿฐ ๐Ÿถ์ •๊ต๐Ÿถ ๐Ÿ”€ย merge ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ๋ณ‘ํ•ฉ ๐ŸฆŠ์žฅ์ˆœ๐ŸฆŠ
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[ ๐ŸŽ‰ deploy] ํ„ฐ๋‹ API ์ตœ์ข… ๋ฐฐํฌ.v1.0.1
3 participants