๐ Java & Kotlin & Spring64 [Spring] ApplicationEventPublisher ๋ฅผ ์ด์ฉํด์ Event ๋ฅผ ๋ฐํํ๋ฉด ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น ํด๋น ๊ธ์ ์ ์ฒด ์์ค์ฝ๋๋ github ์์ ํ์ธํ ์ ์์ต๋๋ค. README ๋ฅผ ์ฐธ์กฐํ์ธ์ ๋ชฉ์ฐจ ๋๊ธฐ There is No Magic in spring ๋๊ธฐ ์ต๊ทผ์ DDD ๋ฅผ ํ์ตํ๋ฉด์ ๋๋ฉ์ธ ์ด๋ฒคํธ๋ผ๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ๊ทธ๋ฌ๋ฉด์ Spring ์์ ํ VM ์์์ ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๊ณ ํด๋น ์ด๋ฒคํธ๋ฅผ handling ํ๋ ์ฝ๋๋ฅผ ์ ํ๊ณ , ๊ทธ์ ๊ด๋ จํด์ ์ฌ๋ฌ ์ค์ต์ ํด๋ณด๋ ์ค Spring ์์ ๋ฌด์ธ๊ฐ Magic ์ด ์ผ์ด๋๊ณ ์๋๊ฒ ๊ฐ์ ๋๋์ ๋ฐ์๋ค. ๊ธด ๋ง ํ์ ์์ด ์๋์ ์ฝ๋๋ฅผ ํ์ธํด๋ณด์. @Entity(name = "orders") public class Order { public static Order create() { return new Order(); } @Id private Long id; .. 2022. 8. 15. [Distributed Tracing] Messaging ํ๊ฒฝ์์์ ๋ถ์ฐ ์ถ์ ์ค์ต ๋ณธ ๊ธ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์ถ์ ์๋ฆฌ์ฆ๋ก ์ด๋ก ๊ณผ ์ค์ต์ด ํจ๊ป ํฌํจ๋ ์๋ฆฌ์ฆ์ ๋๋ค. ์๋ ๋ชฉ์ฐจ์ ํ์๋ ๊ธ์ ๋ชจ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ต๋๋ค. ๋ชฉ์ฐจ Distributed Tracing, ๋ถ์ฐ ์ถ์ ์ด๋? Spring Cloud Sleuth ์ Zipkin Sleuth ๋ก Http ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต Sleuth ๋ก Messaging ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต ์ค์ต์ ๋ํ ์์ค์ฝ๋๋ฅผ ํ์ธํ์๊ณ ์ถ๋ค๋ฉด ์ค์ต github์์ ํ์ธํ์ค ์ ์์ต๋๋ค. Messaging ํ๊ฒฝ ์์์ ๋ถ์ฐ ์ถ์ ์ค์ต ์ง๋ ์๊ฐ ์ฐ๋ฆฌ๋ HTTP ํ๊ฒฝ์์์ ๋ถ์ฐ ์ถ์ ์ ๋ํด์ ์์๋ณด์๋ค. ๋ค์ ํ๋ฒ ๊ฐ๋ต์ ์ธ ์ํคํ ์ฒ์ ๋ํด์ ํ์ธํด๋ณด์ ์ ์ํคํ ์ฒ๋ฅผ ๊ตฌ๋ถํ์๋ฉด 2๊ฐ์ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์๋ค. HTTP API Messaging ์ด๋ฒ์๋ HTTP.. 2022. 5. 1. [Distributed Tracing] HTTP ํ๊ฒฝ์์์ ๋ถ์ฐ ์ถ์ ์ค์ตํ๊ธฐ ๋ณธ ๊ธ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์ถ์ ์๋ฆฌ์ฆ๋ก ์ด๋ก ๊ณผ ์ค์ต์ด ํจ๊ป ํฌํจ๋ ์๋ฆฌ์ฆ์ ๋๋ค. ์๋ ๋ชฉ์ฐจ์ ํ์๋ ๊ธ์ ๋ชจ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ต๋๋ค. ๋ชฉ์ฐจ Distributed Tracing, ๋ถ์ฐ ์ถ์ ์ด๋? Spring Cloud Sleuth ์ Zipkin Sleuth ๋ก Http ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต Sleuth ๋ก Messaging ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต ์ค์ต์ ๋ํ ์์ค์ฝ๋๋ฅผ ํ์ธํ์๊ณ ์ถ๋ค๋ฉด ์ค์ต github์์ ํ์ธํ์ค ์ ์์ต๋๋ค. Spring Cloud Sleuth ๋ฅผ ์ด์ฉํ HTTP ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ด๋ฒ์ ์ง๋ ์๊ฐ์ ์์๋ณด์๋ ๋ถ์ฐ ์ถ์ ์ ๋ํ ์ค์ต์ ์งํํด๋ณด๋ ค ํ๋ค. ์ฐ์ ๊ฐ๋ต์ ์ธ ์ํคํ ์ฒ๋ ๋ค์๊ณผ ๊ฐ๋ค ์ ์ํคํ ์ฒ๋ฅผ ๊ตฌ๋ถํ์๋ฉด 2๊ฐ์ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์๋ค. HTTP API Messaging.. 2022. 5. 1. ๋คํ์ฑ์ ์ํ instanceof ๋ฅผ Generic ์ผ๋ก ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ ๋ชฉ์ฐจ ์๋ก instanceof ๋? ์ฝ๋์์ instanceof ๋ฅผ ๋๊ปด๋ณด์ Generic ์ ์ด์ฉํ์ฌ ์ฐ์ํ๊ฒ ์ ๊ฑฐํ๊ธฐ ๊ทธ๋ผ์๋ ์กด์ฌํ๋ ๋ฌธ์ ์ ํ์ง๋ง? ์๋ก ์๋ฐ์์ ๋คํ์ฑ์ ์ด์ฉํ ๊ฐ์ฒด์งํฅ์ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค๋ณด๋ฉด ์ข ์ข ํน์ ๊ฐ์ฒด๊ฐ ์ง์ ๋ ์ ํ์ ์ธ์คํด์ค์ธ์ง ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๊ทธ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๋ ์ฌ๋ฌ๊ฐ์ง ์ ํ์ง๊ฐ ์์ง๋ง, ์ค๋์ instanceof ์ ๋ํด ์ง์คํ๊ณ ์ด์ผ๊ธฐํด๋ณด๋ ค ํ๋ค. ๋คํ์ฑ์ ์ด์ฉํ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ํน์ ํ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ๋ช๊ฐ์ง ์์ ์ ํด์ผ ํ๋๋ฐ, ๊ทธ์ค ๋ํ์ ์ธ ๊ฒ์ด ๋ฐ๋ก instanceof ์ฐ์ฐ์์ด๋ค. instanceof ๋? ์์ ๋งํ๋ฏ Java ์์๋ ์ด๋ค ๊ฐ์ฒด์ ํน์ type ์ ๋ํด์ ๋์ผํ type ์ธ์ง ํ์ธํ ์ ์๋ ์ฐ์ฐ์ instanceof ์ฐ์ฐ์.. 2022. 4. 3. ์ด์ 1 2 3 4 ยทยทยท 16 ๋ค์