Spring Boot6 [Spring Boot] ๊ฐ๋จํ gRPC ๊ตฌํํ๊ธฐ ๋ชฉํ์คํ๋ง ๋ถํธ, java๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋จํ gRPC๋ฅผ ๊ตฌํํด ๋ด ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ธก์ ๋ง๋ค์ด ๋ณด๊ณ localhost์์ ์คํํด ๋ด ๋๋ค๊ฐ๋ฐ ํ๊ฒฝ Spring Boot version 3.4.0 java version Java 17 build tool Gradle 8.11 database h2 os macOS Sonoma 14.4.1 IDE IntelliJ IDEA CE 2023.3.3 ๐ฆ SERVER build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.3.6' id 'io.spring.dependency-management' version '1.1.6' id 'com.google.protobuf' version '0... 2024. 11. 26. [Spring Boot] AOP๋ฅผ ํ์ฉํ ์ปค์คํ ์ ๋ ธํ ์ด์ ๋ง๋ค๊ธฐ 2024.11.17 - [BE/๐ Spring] - [Spring Boot] AOP ๊ฐ๋ ์ ๋ฆฌ2024.11.18 - [BE/๐ Spring] - [Spring Boot] AOP ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ์์์ฝ๋ ํ์ฌ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์ ์ผ๋ถ API์์ ์์ฒญ/์๋ต ๋ฐ์ดํฐ๋ฅผ End-to-End ์ํธํ ํด์ ํต์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ Controller ํน์ ์๋ณตํธํ์ ๊ด๋ จ ์๋ ๋ก์ง์ ์ํธํ ๊ด๋ จ ์ฝ๋๊ฐ ๋ค์ด๊ฐ์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค. ์๋ณตํธํ๋ฅผ ์ํํ๋ static object๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ์ ํด์์๋๋ฐ, AOP๋ฅผ ์ด์ฉํด์ ์ด๋ฅผ ๊ฐ์ ํด ๋ณด๋ฉด ์ด๋จ๊น ์ถ์์ต๋๋ค. ์์ฒญ ๊ฐ์ฒด ์์ฒด๋ฅผ ๊ฐ๋ก์ฑ ๋ณตํธํ ํด์ ํ๋ฌธ๊ฐ์ ๋ฐ๋ก Controller์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ณ , ์๋ต์ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๊ธฐ ์ ์ ์๋ต ๊ฐ์ .. 2024. 11. 19. [Spring Boot] AOP ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ์์์ฝ๋ ์์กด์ฑ ์ถ๊ฐdependencies { implementation 'org.springframework.boot:spring-boot-starter-aop'} ์ฌ์ฉ ๋ฐฉ์Aspect ์ ์ : @Aspect ์ ๋ํ ์ด์ ์ ์ฌ์ฉํด์ Aspect ํด๋์ค๋ฅผ ์ ์ํ๋คAdvice ์ ์ฉ : @Before, @After, @Around ๋ฑ ๋ค์ํ Advice๋ฅผ ๋ฉ์๋์ ์ ์ฉํ๋ค. ํน์ ์์ ์ ์ด๋ค ์คํ ๋ก์ง์ ์คํํ ์ง ์ ์ํ๋ค.Pointcut ์ค์ : execution ํํ์ ๋ฑ์ ํตํด ํน์ ๋ฉ์๋, ํจํค์ง ๋ฑ์๋ง Aspect๊ฐ ์ ์ฉ๋๋๋ก ์ค์ ํ๋คAOP ํ์ฑํ : @EnableAspectJAuotProxy ์ ๋ํ ์ด์ ์ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ํด๋์ค์ ์ถ๊ฐํด AOP๋ฅผ ํ์ฑํ ํ๋ค @EnableAspectJA.. 2024. 11. 18. [Spring Boot] AOP ๊ฐ๋ ์ ๋ฆฌ ์์ ์ฝ๋์ ์์ธํ ์ฌ์ฉ๋ฒ์ ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃน๋๋ค. AOP๋Aspect-Orineted Programing, ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋์์ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํน์ ๊ด์ฌ์ฌ(๊ธฐ๋ฅ)์ ๋ถ๋ฆฌํ ํ์ฌ ์บก์ํ๋ชจ๋ํ ํฅ์cross-cutting concerns (ํก๋จ ๊ด์ฌ์ฌ) ์ฒ๋ฆฌ์ ์ ์ฉ๋ก๊น , ํธ๋์ญ์ ๊ด๋ฆฌ, ์ธ์ฆ/๊ถํ ๋ถ์ฌ, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๊ตฌํ๊ณผ ๊ฐ์ ํน์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ์ฌ์ฉ๋ ์ ์์ AOP๋ ์ ํ์ํ ๊น?๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํน์ ๊ธฐ๋ฅ์ธ ํก๋จ ๊ด์ฌ์ฌ๋ฅผ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌํ์ฌ ์ฝ๋์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ํด์คํก๋จ ๊ด์ฌ์ฌํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์๋ ๊ด์ฌ์ฌํก๋จ ๊ด์ฌ์ฌ๋ฅผ ๋ฉ์๋ ๋ง๋ค ์ถ๊ฐํ๊ฒ ๋๋ฉด ๋ฐ๋ณต๋๋ ์ฝ๋๋ก ์ธํด ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง๊ณ , ๋ณ๊ฒฝ์ ์ฌ๋ฌ ๊ณณ์ ๋ณ๊ฒฝํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ง๋ณด์.. 2024. 11. 17. [Spring Boot] Validation์ ๋ฐ์ํ ์ ์๋ ์๋ฌ ์์๋ณด๊ธฐ ์ด์ ๊ธ : 2024.11.07 - [BE/๐ Spring] - [Validation] spring boot validation ์ฌ์ฉ๋ฒ๊ณผ ์ข ๋ฅ :: Spring Boot :: v3.3.5 @Valid์ @ValidatedValid์ Validated ๊ฒ์ฆ ์คํจ์ exception ๋ฐ์ @Valid @Valid๋ jakarta.validation.Valid์ ์ํด ์๊ณ RequestBody๋ก ์ ๋ฌ๋ ์์ฒญ ๊ฐ์ฒด๋ฅผ ๊ฒ์ฆํ๋๋ฐ ์ฌ์ฉ๋จ @Validated @Validated๋ org.springframework.validation.annotation.Validated์ ์ํด ์๊ณ , AOP ๊ธฐ๋ฐ์ผ๋ก ๋์@RequestParam, @PathVariable์์ ์ ๋ฌ๋๋ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฆController๊ฐ ์.. 2024. 11. 8. [Validation] spring boot validation ์ฌ์ฉ๋ฒ๊ณผ ์ข ๋ฅ ValidationSpring Boot์์๋ Validation์ ํตํด ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ ์ ์กํ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฆํ๊ธฐ ์ํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค. ์ Validation์ ์ฌ์ฉํ ๊น์ฃผ๋ก Controller์์ ํด๋ผ์ด์ธํธ๋ก ๋ถํฐ ์ ์ก๋ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฆํจ์ ํจ์ฑ ๊ฒ์ฆ ์ฝ๋๋ฅผ ์ง์ ๊ตฌํํ ์ ์์ผ๋, request์ ๋ค์ด์ค๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํ ๊ฒ์ฆ ์ฝ๋๋ก ์ธํด ์ฝ๋์ ์์ด ๋ง์ ์ง ์ ์์ผ๋ฉฐ ์๋น์ค ๋ก์ง์ ๋ฐฉํด๋ ์ ์์์์ฒญ ํญ๋ชฉ์ด ๋ง์์ง ์๋ก ๊ฒ์ฆ ๊ณผ์ ์ด ๊ธธ์ด์ง์ฌ๋ฌ๋ช ์ ๊ฐ๋ฐ์๊ฐ ๊ฒ์ฆ ๋ก์ง์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ ์ผ๊ด์ฑ์ด ์์ด์ง ์ ์์Validation์ ์ฌ์ฉํ๋ฉด ๊ฒ์ฆ ๋ก์ง์ ์ผ๊ด์ฑ ์๊ฒ ๊ตฌํํ ์ ์์Validation์ ์ฌ์ฉํด์ ๊ฒ์ฆ ๋ก์ง์ ๋จ์ํ ์ํฌ ์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ ์ถ๊ฐimplement.. 2024. 11. 7. ์ด์ 1 ๋ค์