Keycloak ํ ํฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด๋ณด๊ธฐ #2
Keycloak ํ ํฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด๋ณด๊ธฐ #1 ํฌ์คํ ๊ณผ ์ด์ด์ง
Keycloak ํ ํฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด๋ณด๊ธฐ #1 ํฌ์คํ ๊ณผ ์ด์ด์ง
Spring Boot + Keycloak ํฌ์คํ ๊ณผ ์ด์ด์ง
์ง๊ธ ๋ค๋๊ณ ์๋ ์ง์ฅ์์ ์ ์ฌ ํ์ ๋ง์ Keycloak์ด๋ผ๋ OAuth2 ์ธ์ฆ ํ๋กํ ์ฝ์ ์ ์ฉ์ํค๋ผ๋ ๋ง์คํ ์๋ฌด๋ฅผ ๋ฐ์๊ธฐ์, ์ฐ์ฌ๊ณก์ ๋์ ์ ์ฉ์ํจ ์ผ์ง๋ฅผ ์ ์ด๋ณด๊ณ ์ ํ๋ค. ์ฌ๋ด์์ ์ง์ ๊ตฌ์ถํ OAuth ํด๋ผ์ด์ธํธ์ ์ธ๊ฐ ์๋ฒ๋ฅผ ๊ฑท์ด๋ด๋ฉด์ ์์ ํ๊ธฐ์ ๋ ํ๋ค์๋๊ฒ ๊ฐ๋ค.
๋ฌด์ง์ฑ์ผ๋ก ์๋น์ค ๊ฐ๋ฐ์ ํ๋ ์ค, ๋น๋๊ธฐ ์์ ์ ์ํด @Async ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด ์์
Bean & Injection
Repository? Service?
Bean & Injection
๋ฌด์ง์ฑ์ผ๋ก ์๋น์ค ๊ฐ๋ฐ์ ํ๋ ์ค, ๋น๋๊ธฐ ์์ ์ ์ํด @Async ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด ์์
When @PreUpdate Works?
Bean & Injection
Repository? Service?
1. Why Kotlin
Kotlin - Data class
์๋ ์ ํ์ฌ์์ Kotlin + WebFlux๋ฅผ ์ฌ์ฉํด ๋ค์ด๋ก๋ ์๋น์ค๋ฅผ ํ๋ ๋ง๋ค์ด ๋์๊ฒ ์๋๋ฐ, ์ผ์ ์์ ๋ฌธ์ ๋ก ๋ฏธ์์ฑ ๋ ์ํ๋ก ์ด์ ์๋ฒ์ ์ฌ๋ผ๊ฐ ๋ ์์ด ํ๋ ์์๋ค. ๋์ฉ๋ ํ์ผ ๋ค์ด๋ก๋ ์๋น์ค๋ผ๊ณ ๋ ๊ฑฐ์ฐฝํ ์ด๋ฆ์ด๊ธด ํ์ง๋ง, ๋ค์ด๋ก๋ ๋๊ธฐ์ด ๊ธฐ๋ฅ์กฐ์ฐจ ์์ด์ ์ฌ๋ฌ ํด๋ผ์ด์ธ...
์ง๊ธ ๋ค๋๊ณ ์๋ ์ง์ฅ์์ ์ ์ฌ ํ์ ๋ง์ Keycloak์ด๋ผ๋ OAuth2 ์ธ์ฆ ํ๋กํ ์ฝ์ ์ ์ฉ์ํค๋ผ๋ ๋ง์คํ ์๋ฌด๋ฅผ ๋ฐ์๊ธฐ์, ์ฐ์ฌ๊ณก์ ๋์ ์ ์ฉ์ํจ ์ผ์ง๋ฅผ ์ ์ด๋ณด๊ณ ์ ํ๋ค. ์ฌ๋ด์์ ์ง์ ๊ตฌ์ถํ OAuth ํด๋ผ์ด์ธํธ์ ์ธ๊ฐ ์๋ฒ๋ฅผ ๊ฑท์ด๋ด๋ฉด์ ์์ ํ๊ธฐ์ ๋ ํ๋ค์๋๊ฒ ๊ฐ๋ค.
1. Why Kotlin
Kotlin - Data class
Keycloak ํ ํฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด๋ณด๊ธฐ #1 ํฌ์คํ ๊ณผ ์ด์ด์ง
Spring Boot + Keycloak ํฌ์คํ ๊ณผ ์ด์ด์ง
์ง๊ธ ๋ค๋๊ณ ์๋ ์ง์ฅ์์ ์ ์ฌ ํ์ ๋ง์ Keycloak์ด๋ผ๋ OAuth2 ์ธ์ฆ ํ๋กํ ์ฝ์ ์ ์ฉ์ํค๋ผ๋ ๋ง์คํ ์๋ฌด๋ฅผ ๋ฐ์๊ธฐ์, ์ฐ์ฌ๊ณก์ ๋์ ์ ์ฉ์ํจ ์ผ์ง๋ฅผ ์ ์ด๋ณด๊ณ ์ ํ๋ค. ์ฌ๋ด์์ ์ง์ ๊ตฌ์ถํ OAuth ํด๋ผ์ด์ธํธ์ ์ธ๊ฐ ์๋ฒ๋ฅผ ๊ฑท์ด๋ด๋ฉด์ ์์ ํ๊ธฐ์ ๋ ํ๋ค์๋๊ฒ ๊ฐ๋ค.
Keycloak ํ ํฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด๋ณด๊ธฐ #1 ํฌ์คํ ๊ณผ ์ด์ด์ง
Spring Boot + Keycloak ํฌ์คํ ๊ณผ ์ด์ด์ง
์ง๊ธ ๋ค๋๊ณ ์๋ ์ง์ฅ์์ ์ ์ฌ ํ์ ๋ง์ Keycloak์ด๋ผ๋ OAuth2 ์ธ์ฆ ํ๋กํ ์ฝ์ ์ ์ฉ์ํค๋ผ๋ ๋ง์คํ ์๋ฌด๋ฅผ ๋ฐ์๊ธฐ์, ์ฐ์ฌ๊ณก์ ๋์ ์ ์ฉ์ํจ ์ผ์ง๋ฅผ ์ ์ด๋ณด๊ณ ์ ํ๋ค. ์ฌ๋ด์์ ์ง์ ๊ตฌ์ถํ OAuth ํด๋ผ์ด์ธํธ์ ์ธ๊ฐ ์๋ฒ๋ฅผ ๊ฑท์ด๋ด๋ฉด์ ์์ ํ๊ธฐ์ ๋ ํ๋ค์๋๊ฒ ๊ฐ๋ค.
When @PreUpdate Works?
๋ฌด์ง์ฑ์ผ๋ก ์๋น์ค ๊ฐ๋ฐ์ ํ๋ ์ค, ๋น๋๊ธฐ ์์ ์ ์ํด @Async ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด ์์
์๋ ์ ํ์ฌ์์ Kotlin + WebFlux๋ฅผ ์ฌ์ฉํด ๋ค์ด๋ก๋ ์๋น์ค๋ฅผ ํ๋ ๋ง๋ค์ด ๋์๊ฒ ์๋๋ฐ, ์ผ์ ์์ ๋ฌธ์ ๋ก ๋ฏธ์์ฑ ๋ ์ํ๋ก ์ด์ ์๋ฒ์ ์ฌ๋ผ๊ฐ ๋ ์์ด ํ๋ ์์๋ค. ๋์ฉ๋ ํ์ผ ๋ค์ด๋ก๋ ์๋น์ค๋ผ๊ณ ๋ ๊ฑฐ์ฐฝํ ์ด๋ฆ์ด๊ธด ํ์ง๋ง, ๋ค์ด๋ก๋ ๋๊ธฐ์ด ๊ธฐ๋ฅ์กฐ์ฐจ ์์ด์ ์ฌ๋ฌ ํด๋ผ์ด์ธ...
์๋ ์ ํ์ฌ์์ Kotlin + WebFlux๋ฅผ ์ฌ์ฉํด ๋ค์ด๋ก๋ ์๋น์ค๋ฅผ ํ๋ ๋ง๋ค์ด ๋์๊ฒ ์๋๋ฐ, ์ผ์ ์์ ๋ฌธ์ ๋ก ๋ฏธ์์ฑ ๋ ์ํ๋ก ์ด์ ์๋ฒ์ ์ฌ๋ผ๊ฐ ๋ ์์ด ํ๋ ์์๋ค. ๋์ฉ๋ ํ์ผ ๋ค์ด๋ก๋ ์๋น์ค๋ผ๊ณ ๋ ๊ฑฐ์ฐฝํ ์ด๋ฆ์ด๊ธด ํ์ง๋ง, ๋ค์ด๋ก๋ ๋๊ธฐ์ด ๊ธฐ๋ฅ์กฐ์ฐจ ์์ด์ ์ฌ๋ฌ ํด๋ผ์ด์ธ...