ํ๋ก๋์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ๊ฐ๋ฐ. ์ ์ ํ ๊ฐ์์ฑ(observability) ๋ฐ ๋ฐฐํฌ ์๋ํ๋ฅผ ๊ฐ์ถ ์ด๋ฒคํธ ์ค์ฌ์ ์ปจํ ์ด๋ํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์์คํ ์ ์ค๊ณํ๊ณ ๊ตฌ์ถํฉ๋๋ค.
์์ํ๊ธฐ
์ ๋๋ก ๊ตฌ์ถ๋ ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ ๋ฆฝ์ ์ธ ํ ํ์ฅ๊ณผ ๋ฐฐํฌ ์๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์๋ชป ๊ตฌ์ถ๋๋ฉด ๋ถ์ฐ ๋ณต์ก์ฑ ์ ๋ชฝ์ ์ด๋ํฉ๋๋ค. ์ ํฌ๋ Domain-Driven Design์ ๊ธฐ๋ฐํ๊ณ , ์ ์ ํ ์ธํ๋ผ๋ก ๋ท๋ฐ์นจ๋๋ฉฐ, ํฌ๊ด์ ์ธ ๊ฐ์์ฑ(observability)์ผ๋ก ์ด์๋๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ์ฌ, ์ผ๋ฐ์ ์ธ ํผ๋ ์์ด ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
์ ํฌ๋ AWS/GCP์์ Kubernetes๋ฅผ, ๋ฉ์์ง์ ์ํด Apache Kafka ๋๋ NATS๋ฅผ, ๊ณ ์ฑ๋ฅ ๋ด๋ถ API๋ฅผ ์ํด gRPC๋ฅผ, ์ธ๋ถ API๋ฅผ ์ํด REST/GraphQL์ ์ฌ์ฉํ์ฌ ๊ตฌ์ถํฉ๋๋ค. ๊ฐ ์๋น์ค๋ Docker๋ก ์ปจํ ์ด๋ํ๋๊ณ ArgoCD๋ฅผ ํตํด ๋ฐฐํฌ๋๋ฉฐ, ๋ถ์ฐ ์ถ์ (distributed tracing)์ผ๋ก ๋ชจ๋ํฐ๋ง๋ฉ๋๋ค.
์ฒ์๋ถํฐ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํด์ผ ํ๋ ์๋ก์ด ์์คํ ์ ๊ตฌ์ถํ๋ ์์ง๋์ด๋ง ํ ๋๋ ์๋น์ค ์์จ์ฑ์ด ํ์ํ ์ฌ๋ฌ ํ์ ๋ณด์ ํ ์กฐ์ง์ ์ํ ์๋น์ค์ ๋๋ค. ๋ํ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์๋ํ์ง๋ง "๋ถ์ฐ ๋ชจ๋๋ฆฌ์ค(distributed monolith)"๋ก ๋๋ ํ์ ์ง์ํ์ฌ, ์ค์ ๋ง์ดํฌ๋ก์๋น์ค์ ์ด์ ์ ์ ๊ณตํ๋๋ก ์ํคํ ์ฒ๋ฅผ ์์ ํฉ๋๋ค.
๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋ชจ๋ธ๋งํ๊ณ , ์๋น์ค ๊ฒฝ๊ณ๋ฅผ ์๋ณํ๋ฉฐ, ์์ ๊ถ ๋ฐ ํต์ ๊ณ์ฝ์ ์ ์ํฉ๋๋ค.
์ธํ๋ผ ํ๋ซํผ(Kubernetes ํด๋ฌ์คํฐ, CI/CD, Service Mesh, ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)์ ์ค๊ณํฉ๋๋ค.
์ ์ ํ ํ ์คํธ, ์ปจํ ์ด๋ํ ๋ฐ ๋ฐฐํฌ ์๋ํ๋ฅผ ํตํด ํต์ฌ ์๋น์ค๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
์๋น์ค ๊ฐ ํต์ , ๊ณ์ฝ ํ ์คํธ ๋ฐ ์นด์ค์ค ์์ง๋์ด๋ง ๊ฒ์ฆ์ ๊ตฌํํฉ๋๋ค.
์ต์ ๋ฒ๋น๋ฆฌํฐ๋ฅผ ๋ฐฐํฌํ๊ณ , SLO๋ฅผ ์๋ฆฝํ๋ฉฐ, ์ํคํ ์ฒ ๊ฒฐ์ ์ ๋ฌธ์ํํ๊ณ , ์ด์ ๋ฐ๋ถ์ ์์ฑํฉ๋๋ค.
๋ถ์ฐ๋ ํผ๋ ์์ด ๋ ๋ฆฝ์ฑ๊ณผ ์๋๋ฅผ ์ ๊ณตํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ค๊ณํด ๋ด ์๋ค.
์ ํฌ๋ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ๋ฅผ ์ ์ฉํ์ฌ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ฅผ ์๋ณํ๊ณ , ์๋น์ค ๊ฒฝ๊ณ๋ฅผ ์ ์ํ๋ฉฐ, OpenAPI ๋๋ protobuf๋ฅผ ์ฌ์ฉํ์ฌ API ๊ณ์ฝ์ ์๋ฆฝํ๊ณ , ์๋น์ค ๊ฐ ํต์ ํจํด์ ์ค๊ณํ๋ฉฐ, Kubernetes๋ฅผ ํตํด ๋ฐฐํฌ ์ ๋ต์ ์๋ฆฝํฉ๋๋ค.
์ ํฌ๋ REST ๋ฐ gRPC๋ฅผ ํตํ ๋๊ธฐ์ ํต์ , Kafka ๋ฐ RabbitMQ๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ๋ฉ์์ง, CQRS ๋ฐ ์ด๋ฒคํธ ์์ฑ์ ํตํ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ, ๊ทธ๋ฆฌ๊ณ ๋ถ์ฐ ํธ๋์ญ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฌ๊ฐ(saga) ํจํด์ ๊ตฌํํฉ๋๋ค.
๋ค, ์ ํฌ๋ ์คํธ๋ญ๊ธ๋ฌ ํผ๊ทธ(strangler fig) ํจํด์ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ์ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋น์ค๋ฅผ ์ ์ง์ ์ผ๋ก ์ถ์ถํฉ๋๋ค. ๊ฐ์ฅ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ ๊ฐ๋ฅํ ๋๋ฉ์ธ๋ถํฐ ์์ํ๋ฉฐ, ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ณ ์ค์ ์ฌ์ฉ์์๊ฒ ์ด๋ ํ ์ค๋จ๋ ๋ฐ์ํ์ง ์๋๋ก ํฉ๋๋ค.
์ ํฌ๋ Consul ๋๋ Kubernetes DNS๋ฅผ ํตํด ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ์ค์ ํ๊ณ , Kong, AWS API Gateway, ๋๋ ์ฌ์ฉ์ ์ ์ NestJS/Express ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ API ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ฉฐ, ์ฌ๊ธฐ์๋ ์๋ ์ ํ, ์ธ์ฆ, ์์ฒญ ๋ผ์ฐํ ๋ฐ ์ํท ๋ธ๋ ์ดํน ๊ธฐ๋ฅ์ด ํฌํจ๋ฉ๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ ๋น์ฉ์ ์๊ฐ๋น $10์์ $50์ด๋ฉฐ, ์ํคํ ์ฒ ์ค๊ณ ๋ฐ ์ด๊ธฐ ์๋น์ค ๋ถํด๋ ์ผ๋ฐ์ ์ผ๋ก 4์ฃผ์์ 8์ฃผ๊ฐ ์์๋ฉ๋๋ค. ๊ทธ ํ ์ ์ง์ ์ธ ์๋น์ค ์ถ์ถ์ด ์์๋ฉ๋๋ค.