IT32 Spring Boot์ ๋ก๊น (Logging) ์๋ฒฝ ๊ฐ์ด๋: Logback, Log4j2 ์ค์ ๋ฐ ๋ก๊ทธ ๊ด๋ฆฌ ์ ๋ต ๋ก๊น (Logging) ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. Spring Boot ๋ ๋ค์ํ ๋ก๊น ํ๋ ์์ํฌ๋ฅผ ์ง์ํ๋ฉฐ, ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ง ํ๊ณ ๋ฌธ์ ํด๊ฒฐ ์ ๋์์ ์ค๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ Logback๊ณผ Log4j2์ ์ค์ ๋ฐฉ๋ฒ , ๋ก๊ทธ ํ์ผ ๊ด๋ฆฌ ์ ๋ต , ๊ทธ๋ฆฌ๊ณ ๋ก๊ทธ ํํฐ๋ง๊ณผ ๋ชจ๋ํฐ๋ง ๋ฐฉ๋ฒ ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ชฉ์ฐจ Spring Boot์ ๋ก๊น ๊ฐ์ Logback vs. Log4j2: ์ด๋ค ๋ก๊น ํ๋ ์์ํฌ๋ฅผ ์ ํํ ๊น? ๋ก๊ทธ ํ์ผ ๊ด๋ฆฌ ์ ๋ต๊ณผ ์ค์ ๋ฐฉ๋ฒ ๋ก๊ทธ ํํฐ๋ง ๋ฐ ๋ชจ๋ํฐ๋ง ๋ฐฉ๋ฒ ๋ก๊น ์ ์ค์์ฑ๊ณผ ์ต์ ํธ๋ ๋ 1. Spring Boot์ ๋ก๊น ๊ฐ์Spring Boot๋ ๊ธฐ๋ณธ์ ์ผ๋ก Logback์ ๋ด์ฅ ํ๊ณ ์์ด, ๋ณ๋์ ์ค์ ์.. IT 2024. 10. 21. ๋๋ณด๊ธฐ โบโบ ์คํ๋ง ๋ถํธ์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์๋ฒฝ ๊ฐ์ด๋: @Async์ CompletableFuture ํ์ฉ๋ฒ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐ ํ์์ ์ธ ๊ธฐ์ ์ ๋๋ค. Spring Boot ์์๋ @Async ์ CompletableFuture ๋ฅผ ์ฌ์ฉํด ๋น๋๊ธฐ ๋ฉ์๋๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ๋น๋๊ธฐ ๋ฉ์๋ ๊ตฌํ ๋ฐฉ๋ฒ , CompletableFuture ๋ก ๋น๋๊ธฐ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ , ๊ทธ๋ฆฌ๊ณ ๋น๋๊ธฐ ์์ ์์ ๋ฐ์ํ๋ ์์ธ ์ฒ๋ฆฌ ์ ๋ต ๊น์ง ์์ธํ ๋ค๋ฃน๋๋ค. ๋ชฉ์ฐจ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ? @Async์ ๋น๋๊ธฐ ๋ฉ์๋ ๊ตฌํํ๊ธฐ CompletableFuture๋ฅผ ์ด์ฉํ ๋น๋๊ธฐ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ๋น๋๊ธฐ ์์ ์์ธ ์ฒ๋ฆฌ ์ ๋ต ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ํธ๋ ๋์ ์ฅ์ 1. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ?๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค๋ฅธ .. IT 2024. 10. 21. ๋๋ณด๊ธฐ โบโบ Spring Boot์์ ํ ์คํธ ์ฝ๋ ์์ฑํ๊ธฐ: ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ, MockMvc ํ์ฉ๋ฒ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ ์คํธ ์ฝ๋๋ ํ์์ ์ธ ์์์ ๋๋ค. ํ ์คํธ๋ ์ฝ๋ ํ์ง์ ๋ณด์ฅ ํ๊ณ , ๊ฐ๋ฐ์๊ฐ ์ฝ๋ ๋ณ๊ฒฝ ์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌ ํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ์ ์ฐจ์ด , @SpringBootTest ์ MockBean ์ฌ์ฉ๋ฒ , ๊ทธ๋ฆฌ๊ณ MockMvc๋ฅผ ํ์ฉํ REST API ํ ์คํธ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค. ๋ชฉ์ฐจ ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ์ ์ฐจ์ด @SpringBootTest์ MockBean ํ์ฉ๋ฒ MockMvc๋ก REST API ํ ์คํธํ๊ธฐ ํ ์คํธ ์ฝ๋์ ์ค์์ฑ๊ณผ ํธ๋ ๋ ํ ์คํธ ์์ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ 1. ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ์ ์ฐจ์ดํ ์คํธ ์ฝ๋๋ ํฌ๊ฒ ๋จ์ ํ ์คํธ(Unit Test) .. IT 2024. 10. 21. ๋๋ณด๊ธฐ โบโบ Spring Boot์ ์์ธ ์ฒ๋ฆฌ ์๋ฒฝ ๊ฐ์ด๋: ๊ธ๋ก๋ฒ ์์ธ ์ฒ๋ฆฌ ์ ๋ต๊ณผ ์ปค์คํ ์๋ฌ ๋ฉ์์ง ๊ตฌํ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ ์๋ฌ ์ฒ๋ฆฌ(์์ธ ์ฒ๋ฆฌ) ์ ๋๋ค. ์ ์ ํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ์ ์ฉํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๊ณต ํ๊ณ , ์๋น์ค์ ์์ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ @ControllerAdvice ์ @ExceptionHandler ๋ฅผ ํ์ฉํ ์์ธ ์ฒ๋ฆฌ , ๊ธ๋ก๋ฒ ์์ธ ์ฒ๋ฆฌ ์ ๋ต , ๊ทธ๋ฆฌ๊ณ API ์๋ต์ ์ปค์คํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ ์ ์์๋ด ๋๋ค. ๋ชฉ์ฐจ Spring Boot ์์ธ ์ฒ๋ฆฌ์ ๊ธฐ๋ณธ ๊ฐ๋ @ControllerAdvice ์ @ExceptionHandler ๋ฅผ ํ์ฉํ ์์ธ ์ฒ๋ฆฌ ๊ธ๋ก๋ฒ ์์ธ ์ฒ๋ฆฌ ์ ๋ต API ์๋ต์ ์ปค์คํ ์๋ฌ ๋ฉ์์ง ์ ๋ฌํ๊ธฐ ์๋ฌ ์ฒ๋ฆฌ.. IT 2024. 10. 21. ๋๋ณด๊ธฐ โบโบ ์คํ๋ง ๋ถํธ์ ์คํ๋ง ์ํ๋ฆฌํฐ ํตํฉ: JWT์ OAuth2๋ก ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๊ตฌํํ๊ธฐ ์คํ๋ง ๋ถํธ(Spring Boot) ์ ์คํ๋ง ์ํ๋ฆฌํฐ(Spring Security) ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ(Authentication) ๊ณผ ์ธ๊ฐ(Authorization) ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ์ธ์ฆ๊ณผ ์ธ๊ฐ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ , JWT(Json Web Token)๋ฅผ ํ์ฉํ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ์ OAuth 2.0์ ์ด์ฉํ ์์ ๋ก๊ทธ์ธ ๊ตฌํ ๋ฐฉ๋ฒ์ ์์ ์ ํจ๊ป ์์๋ด ๋๋ค. ๋ชฉ์ฐจ ์คํ๋ง ์ํ๋ฆฌํฐ์ ์ธ์ฆ๊ณผ ์ธ๊ฐ ๊ฐ๋ JWT๋ฅผ ํ์ฉํ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ OAuth 2.0 ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ ์ธ์ฆ๊ณผ ์ธ๊ฐ์ ์ต์ ํธ๋ ๋์ ์ค์์ฑ JWT์ OAuth 2.0 ์์ ์ฝ๋ ๋ฐ ์คํ ๋ฐฉ๋ฒ 1. ์คํ๋ง ์ํ๋ฆฌํฐ์ ์ธ์ฆ๊ณผ ์ธ๊ฐ ๊ฐ๋ ์คํ๋ง ์ํ๋ฆฌํฐ ๋ ์คํ๋ง ํ๋ ์์.. IT 2024. 10. 21. ๋๋ณด๊ธฐ โบโบ ์ด์ 1 2 3 4 ยทยทยท 7 ๋ค์