๐ฌweb application39 CQRS ํจํด์ ๋ํ ์คํด ํ๊ธฐ ๋ชฉ์ฐจ ๋์ Query ์ Command ๋? CQRS ๋ CQRS ์ ์ฅ๋จ์ ๋์ ํ์ฌ ์์คํ ์ด ์ ํต์ ์ธ CRUD ์ ํ๋ฆฌ์ผ์ด์ ์์ Event ๊ธฐ๋ฐ์ ์์คํ ์ผ๋ก ๋ฐ๋์ด ๊ฐ๋ ๊ณผ์ ์ ํ์ ํฉ๋ฅ๋ฅผ ํ๊ฒ ๋์ด ๋์ ์ต๊ทผ ๊ฐ์ฅ ํฐ ๊ด์ฌ์ฌ๊ฐ ๋ฐ๋ก ์ด CQRS ์ด๋ค. ํ๋ถ ์์ ์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ณต๋ถํ๋ฉฐ ์ ๊น ์ ๊น ๋ดค๋ CQRS ๋ ์ด๋ฆ ๋ถํฐ ์์ํ๊ธฐ์ ๊ฒ์ ๋จน์๋ ๊ธฐ์ต์ด ๋๋ค. ํ์ง๋ง CQRS ์ ์๋ฆฌ ์์ฒด๋ ์ฌ์ค ๋๊ฒ ๊ฐ๋จํ๋ค Command ์ Query ๋ฅผ ๋ถ๋ฆฌํ์! Command ์ Query ๋ฅผ ๋จผ์ ์ ์ํ๊ณ ์ด์ผ๊ธฐ๋ฅผ ๊ณ์ ํด๋ณด์ Query ์ Command ๋? Query ์ Command ์ ๋ํด์ ์ด์ผ๊ธฐ ํ๊ธฐ ์ํด์๋ CQS ์ ๋ํด์ ๋จผ์ ์์๋ณผ ํ์๊ฐ ์๋ค. CQS ๋ Design By Contr.. 2022. 6. 11. [Distributed Tracing] Zipkin ๊ณผ Spring Cloud Sleuth ์ ๋ํด์ ๋ณธ ๊ธ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์ถ์ ์๋ฆฌ์ฆ๋ก ์ด๋ก ๊ณผ ์ค์ต์ด ํจ๊ป ํฌํจ๋ ์๋ฆฌ์ฆ์ ๋๋ค. ์๋ ๋ชฉ์ฐจ์ ํ์๋ ๊ธ์ ๋ชจ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ต๋๋ค. ๋ชฉ์ฐจ Distributed Tracing, ๋ถ์ฐ ์ถ์ ์ด๋? Spring Cloud Sleuth ์ Zipkin Sleuth ๋ก Http ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต Sleuth ๋ก Messaging ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต ์ค์ต์ ๋ํ ์์ค์ฝ๋๋ฅผ ํ์ธํ์๊ณ ์ถ๋ค๋ฉด ์ค์ต github์์ ํ์ธํ์ค ์ ์์ต๋๋ค. Zipkin ์ ๋ํด์ Zipkin ์ ํธ์ํฐ์์ ๊ฐ๋ฐํ๊ณ ์ฌ์ฉํ Distributed Tracing Tool ์ด๋ค Zipkin ์์๋ ์ง๋ ์๊ฐ ์์๋ ์ด์ผ๊ธฐํ์๋ Dapper ๋ฅผ ์ด์ฉํ์ฌ ๋ถ์ฐ ํ๊ฒฝ์์ ๋ฉ์์ง๋ฅผ ์ถ์ ํ๋ค. Zipkin ์์๋ Tracer ์ ํจ๊ปํด์ผ ํ๋ค.. 2022. 5. 1. [Distributed Tracing] ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์ถ์ ์ด๋ ๋ฌด์์ธ๊ฐ [Distributed Tracing] ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์ถ์ ์ด๋ ๋ฌด์์ธ๊ฐ ๋ณธ ๊ธ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์ถ์ ์๋ฆฌ์ฆ๋ก ์ด๋ก ๊ณผ ์ค์ต์ด ํจ๊ป ํฌํจ๋ ์๋ฆฌ์ฆ์ ๋๋ค. ์๋ ๋ชฉ์ฐจ์ ํ์๋ ๊ธ์ ๋ชจ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ต๋๋ค. ๋ชฉ์ฐจ Distributed Tracing, ๋ถ์ฐ ์ถ์ ์ด๋? Spring Cloud Sleuth ์ Zipkin Sleuth ๋ก Http ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต Sleuth ๋ก Messaging ํ๊ฒฝ์ ๋ถ์ฐ ์ถ์ ์ค์ต ์ค์ต์ ๋ํ ์์ค์ฝ๋๋ฅผ ํ์ธํ์๊ณ ์ถ๋ค๋ฉด ์ค์ต github์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๋ถ์ฐ ์ถ์ ์ด ์ ํ์ํ๊ฐ? ์ด์ ์ ์น ์๋น์ค๋ 3-tier ์ํคํ ์ฒ์ 2-tier ์ํคํ ์ฒ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ์์๋ค. ํ์ง๋ง ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๊ฐ ์ธ์์ ๋์ค๊ณ ์ด๋ฅผ ์๋ํ๊ณ ์ฑ๊ณตํ๋ ๊ธฐ์ ์ ์ฌ๋ก๊ฐ .. 2022. 5. 1. [Event-Driven-Architecture] Message Oriented Middleware๊ณผ Message Broker์ ์ฐจ์ด ๋ฐ ์๋ฆฌ ๋ชฉ์ฐจ ๋ฏธ๋ค์จ์ด๋? MOM ์ด๋? MOM ๊ตฌ์ฑ์์ MOM vs without MOM Messaging ์ 2๊ฐ์ง ๋ฐฉ์ PTP Messaging Pub/Sub Messaging Message Broker ๋ํ์ ์ธ MOM ์๋ฃจ์ ์ค๋์ ์์ฆ ๋ง์ ๋ถ์ผ์์ ์ฑํ๋์ด ์ฌ์ฉ๋๊ณ ์๋ Message Oriented Middleware ์ ๋ํด์ ์์๋ณด๋ ค ํ๋ค. Message Oriented Middleware, MOM ์ด๋ ํ๋์ ์ํํธ์จ์ด๋ ์๋ฃจ์ ๋ณด๋ค๋ ๋ ์์ ๊ฐ๋ ์ผ๋ก ์ํคํ ์ฒ ํจํด์ด๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ํด๋นํ๋ค๊ณ ์๊ฐํ๋ค. ๋ฌผ๋ก MOM์ ์ํคํผ๋์์์๋ ์์ฉ ์ํํธ์จ์ด ๊ฐ์ ๋ฐ์ดํฐ ํต์ ์ ์ํ ์ํํธ์จ์ด๋ผ๊ณ ๋ถ๋ฅด์ง๋ง ์ฐ๋ฆฌ๋ ์กฐ๊ธ ๋ ํฐ ๊ฐ๋ ์์ ์ดํดํด๋ณด์. ์ด๋ฐ MOM ์ ์ดํดํ๊ธฐ ์ํด์๋ ์ฐ์ Middlew.. 2021. 5. 19. ๋ง์ดํฌ๋ก์๋น์ค์์ ์๋น์ค๊ฐ ํต์ ์ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ ๋น๊ต (2) [OpenFeign vs Rest Template] - ๊ฐ๊ฐ์ ๋น๊ต ์ด ๊ธ์ 2๊ฐ์ ๊ธ๋ก ๋๋์ด์ ธ ์์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค์์ ์๋น์ค๊ฐ ํต์ ์ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ ๋น๊ต [OpenFeign vs Rest Template] - ์๋น์ค ๊ตฌํ ๋ง์ดํฌ๋ก์๋น์ค์์ ์๋น์ค๊ฐ ํต์ ์ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ ๋น๊ต [OpenFeign vs Rest Template] - ๊ฐ๊ฐ์ ๋น๊ต ํด๋น ๊ธ์์ ๋์ค๋ ์ค์ต ๋ด์ฉ์ Spring Cloud๋ฅผ ์ด์ฉํ MSA ๊ตฌ์ฑ์ ์ ๋ฐ์ ์ธ ์ดํด๊ฐ ํ์ํ ๋ด์ฉ์ ๋๋ค. ์ค์ต์ Eureka + Gateway + Microservices (2)๋ฅผ ์ด์ฉํ ํ๊ฒฝ์ผ๋ก ํด๋น ๊ธ์์๋ Eureka์ Gateway ์ค์ ์ ๋ํด์๋ ์ธ๊ธํ์ง ์ง๋ง ๋ง์ฝ Eureka๋ Gateway์ ์ดํด๊ฐ ๋ถ์กฑํ์ ๋ถ๋ค์ด๋ ๋ ์์๋ณด๊ณ ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผ ํด๋ณด๊ณ ์ถ์ ์ฌ๋์ ์๋์ ์ค์ต ๊ณผ์ ์ ์กด์ฌํ๋ UR.. 2021. 4. 29. ๋ง์ดํฌ๋ก์๋น์ค์์ ์๋น์ค๊ฐ ํต์ ์ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ ๋น๊ต (1) [OpenFeign vs Rest Template] - ์๋น์ค ๊ตฌํ ์ด ๊ธ์ 2๊ฐ์ ๊ธ๋ก ๋๋์ด์ ธ ์์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค์์ ์๋น์ค๊ฐ ํต์ ์ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ ๋น๊ต [OpenFeign vs Rest Template] - ์๋น์ค ๊ตฌํ ๋ง์ดํฌ๋ก์๋น์ค์์ ์๋น์ค๊ฐ ํต์ ์ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ ๋น๊ต [OpenFeign vs Rest Template] - ๊ฐ๊ฐ์ ๋น๊ต ํด๋น ๊ธ์์ ๋์ค๋ ์ค์ต ๋ด์ฉ์ Spring Cloud๋ฅผ ์ด์ฉํ MSA ๊ตฌ์ฑ์ ์ ๋ฐ์ ์ธ ์ดํด๊ฐ ํ์ํ ๋ด์ฉ์ ๋๋ค. ์ค์ต์ Eureka + Gateway + Microservices (2)๋ฅผ ์ด์ฉํ ํ๊ฒฝ์ผ๋ก ํด๋น ๊ธ์์๋ Eureka์ Gateway ์ค์ ์ ๋ํด์๋ ์ธ๊ธํ์ง ์ง๋ง ๋ง์ฝ Eureka๋ Gateway์ ์ดํด๊ฐ ๋ถ์กฑํ์ ๋ถ๋ค์ด๋ ๋ ์์๋ณด๊ณ ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผ ํด๋ณด๊ณ ์ถ์ ์ฌ๋์ ์๋์ ์ค์ต ๊ณผ์ ์ ์กด์ฌํ๋ UR.. 2021. 4. 29. ์ด์ 1 2 3 4 5 6 7 ๋ค์