2019๋ ๋ถํฐ ๋ฌ์์์๋ ์๋ฌด ๋ผ๋ฒจ๋ง์ ๊ดํ ๋ฒ๋ฅ ์ด ์ ์ ๋์์ต๋๋ค. ์ด ๋ฒ์ ๋ชจ๋ ์ํ ๊ทธ๋ฃน์ ์ ์ฉ๋์ง ์์ผ๋ฉฐ, ์ํ ๊ทธ๋ฃน์ ๋ํ ์๋ฌด ํ์์ ๋ฐํจ์ผ์ด ๋ค๋ฆ ๋๋ค. ์๋ฌดํ์ ๋์ ํ๋ชฉ์ ๋ด๋ฐฐ, ์ ๋ฐ, ์์ฝํ์ด ์ฐ์ ์ด๊ณ , ํฅ์, ์ฌ์ , ์ฐ์ ๋ฑ๋ ์ถํ ์ถ๊ฐ๋ ์์ ์ด๋ค. ์ด๋ฌํ ์ ๋ฒ ํ์ ์ผ๋ก ์ธํด ์ต์ข ์๋น์์ ์์ฐ๋ถํฐ ๊ตฌ๋งค๊น์ง ์ ํ์ ์ ์ฒด ๋ผ์ดํ ์ฒด์ธ์ ํ๋ก์ธ์ค์ ๋ชจ๋ ์ฐธ์ฌ์(๊ตญ๊ฐ ์์ฒด ๋ฐ ์ ํ์ ํ๋งคํ๋ ๋ชจ๋ ์กฐ์ง ๋ชจ๋)๊น์ง ์ถ์ ํ ์ ์๋ ์๋ก์ด IT ์๋ฃจ์ ์ด ๊ฐ๋ฐ๋์์ต๋๋ค. ํ์ ๋ผ๋ฒจ๋ง.
X5์์๋ ๋ผ๋ฒจ์ด ๋ถ์ ์ํ์ ์ถ์ ํ๊ณ ์ฃผ ๋ฐ ๊ณต๊ธ์ ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ์์คํ ์ "Marcus"๋ผ๊ณ ํฉ๋๋ค. ์ด๋ป๊ฒ, ๋๊ฐ ๊ฐ๋ฐํ๋์ง, ๊ธฐ์ ์คํ์ ๋ฌด์์ธ์ง, ์ฐ๋ฆฌ๊ฐ ์๋์ค๋ฌ์ํ ๋งํ ์ด์ ๊ฐ ์๋์ง ์์๋๋ก ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ค์ ๊ณ ๋ถํ
"Marcus"๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๊ทธ ์ค ๊ฐ์ฅ ์ค์ํ ๋ฌธ์ ๋ X5 ์ ๋ณด ์์คํ ๊ณผ ๋ผ๋ฒจ๋ง๋ ์ ํ์ ๋ํ ์ํ ์ ๋ณด ์์คํ (GIS MP) ๊ฐ์ ํตํฉ ์ํธ์์ฉ์ผ๋ก ๋ผ๋ฒจ๋ง๋ ์ ํ์ ์ด๋์ ์ถ์ ํ๋ ๊ฒ์ ๋๋ค. ๋ํ ํ๋ซํผ์ ๋น์ฌ๊ฐ ์์ ํ ๋ชจ๋ ๋ผ๋ฒจ๋ง ์ฝ๋์ ๊ฐ์ฒด ๊ฐ ์ด๋ฌํ ์ฝ๋ ์ด๋์ ์ ์ฒด ๋ด์ญ์ ์ ์ฅํ๊ณ ๋ผ๋ฒจ๋ง๋ ์ ํ์ ๋ฑ๊ธ ์ฌ์ง์ ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ผ๋ฒจ ์ ํ ๊ทธ๋ฃน์ ํฌํจ๋ ๋ด๋ฐฐ ์ ํ์ ์๋ฅผ ์ฌ์ฉํ๋ฉด, ๋จ ํ ํธ๋ญ ๋ถ๋์ ๋ด๋ฐฐ์๋ ์ฝ 600๊ฐ์ด ๋ค์ด ์์ผ๋ฉฐ ๊ฐ ๋ด๋ฐฐ์๋ ๊ณ ์ ํ ์ฝ๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ ์์คํ ์ ์๋ฌด๋ ์ฐฝ๊ณ ์ ๋งค์ฅ ๊ฐ ๊ฐ ํฉ์ ์ด๋์ ๋ํ ํฉ๋ฒ์ฑ์ ์ถ์ ํ๊ณ ํ์ธํ๋ฉฐ ๊ถ๊ทน์ ์ผ๋ก ์ต์ข ๊ตฌ๋งค์์๊ฒ ํ๋งค๊ฐ ํ์ฉ๋๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์๊ฐ๋น ์ฝ 000๊ฑด์ ํ๊ธ ๊ฑฐ๋๋ฅผ ๊ธฐ๋กํ๊ณ , ๊ฐ ํฉ์ด ์ด๋ป๊ฒ ๋งค์ฅ์ ๋ค์ด์๋์ง๋ ๊ธฐ๋กํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฌผ์ฒด ๊ฐ์ ๋ชจ๋ ์์ง์์ ๊ณ ๋ คํ๋ฉด ์ฐ๊ฐ ์๋ฐฑ์ต ๊ฑด์ ๊ธฐ๋ก์ด ์์๋ฉ๋๋ค.
Mํ
Marcus๋ X5 ๋ด์ ํ๋ก์ ํธ๋ก ๊ฐ์ฃผ๋๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ์ ํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๊ตฌํ๋๊ณ ์์ต๋๋ค. ํ์ Scrum์ ๋ฐ๋ผ ์์ ํฉ๋๋ค. ํ๋ก์ ํธ๋ ์ง๋ ์ฌ๋ฆ์ ์์๋์์ง๋ง ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ๋ 16์์์ผ ๋์์ต๋๋ค. ์ฐ๋ฆฌ ํ์ ์์ ํ ๊ตฌ์ฑ๋์๊ณ ์์คํ ์ํคํ ์ฒ๊ฐ ๊ฐ๋ฐ๋์์ผ๋ฉฐ ์ฅ๋น๋ฅผ ๊ตฌ์ ํ์ต๋๋ค. ์ด์ ํ์ XNUMX๋ช ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ๊ทธ ์ค XNUMX๋ช ์ ๋ฐฑ์๋ ๋ฐ ํ๋ฐํธ์๋ ๊ฐ๋ฐ์ ์ฐธ์ฌํ๊ณ ์์ผ๋ฉฐ ๊ทธ ์ค XNUMX๋ช ์ ์์คํ ๋ถ์์ ์ฐธ์ฌํ๊ณ ์์ต๋๋ค. ์๋, ๋ก๋, ์๋ ํ ์คํธ ๋ฐ ์ ํ ์ ์ง ๊ด๋ฆฌ์ XNUMX๋ช ์ ์ธ๋ ฅ์ด ๋ ์ฐธ์ฌํ๊ณ ์์ต๋๋ค. ๋ํ SRE ์ ๋ฌธ๊ฐ๋ ์์ต๋๋ค.
์ฐ๋ฆฌ ํ์์๋ ๊ฐ๋ฐ์๋ค๋ง์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ด ์๋ ํ ์คํธ, ๋ก๋ ์คํฌ๋ฆฝํธ ๋ฐ ์๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก๊ทธ๋๋ฐํ๊ณ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค. ์ ํ ์ง์์๋ ๋์ ์์ค์ ์๋ํ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ด์ ํน๋ณํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํญ์ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์๋ ๋๋ฃ๋ค์๊ฒ ์กฐ์ธ๊ณผ ๋์์ ์ฃผ๊ณ ์ ๋ ธ๋ ฅํ๋ฉฐ, ๊ทธ๋ค์๊ฒ ์์ ์์ ์ ์ ๊ณตํฉ๋๋ค.
์ฝ๋ก๋๋ฐ์ด๋ฌ์ค ํฌ๋ฐ๋ฏน์ผ๋ก ์ธํด ์ฐ๋ฆฌ๋ ํ ์ ์ฒด๋ฅผ ์๊ฒฉ ์์ ์ผ๋ก ์ ํํ์ผ๋ฉฐ, ๊ฐ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ ๋๊ตฌ์ ๊ฐ์ฉ์ฑ, Jira ๋ฐ GitLab์ ๊ตฌ์ถ๋ ์ํฌํ๋ก ๋๋ถ์ ์ด ๋จ๊ณ๋ฅผ ์ฝ๊ฒ ํต๊ณผํ ์ ์์์ต๋๋ค. ์๊ฒฉ์ผ๋ก ๋ณด๋ธ ๋ช ๋ฌ ๋์ ๊ฒฐ๊ณผ์ ์ผ๋ก ํ์ ์์ฐ์ฑ์ ์ ํ๋์ง ์์์ผ๋ฉฐ, ๋ง์ ์ฌ๋๋ค์๊ฒ ์ง์ฅ์์์ ํธ์ํจ์ ์ฆ๊ฐํ์ง๋ง ๋๋ฝ๋ ์ ์ผํ ๊ฒ์ ์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ์ด์์ต๋๋ค.
์๊ฒฉ ํ ํ์
์๊ฒฉ ๊ทผ๋ฌด ์ค ํ์
์๋ฃจ์ ์ ๊ธฐ์ ์คํ
X5์ ํ์ค ์ ์ฅ์ ๋ฐ CI/CD ๋๊ตฌ๋ GitLab์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์ฝ๋ ์ ์ฅ, ์ง์์ ์ธ ํ ์คํธ, ํ ์คํธ ๋ฐ ํ๋ก๋์ ์๋ฒ ๋ฐฐํฌ์ ์ฌ์ฉํฉ๋๋ค. ๋ํ ๊ฐ๋ฐ์๊ฐ ์ฝ๋์ ์ ์ฉํ ๋ณ๊ฒฝ ์ฌํญ์ ์ต์ 2๋ช ์ ๋๋ฃ๊ฐ ์น์ธํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฝ๋ ๊ฒํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ ์ ์ฝ๋ ๋ถ์๊ธฐ์ธ SonarQube์ JaCoCo๋ ์ฝ๋๋ฅผ ๊นจ๋ํ๊ฒ ์ ์งํ๊ณ ํ์ํ ์์ค์ ๋จ์ ํ ์คํธ ์ ์ฉ ๋ฒ์๋ฅผ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฝ๋์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ฌํ ๊ฒ์ฌ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์๋์ผ๋ก ์คํ๋๋ ๋ชจ๋ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ ์ดํ์ ์๋ํ๋ฉ๋๋ค.
"Marcus"์ ์ฑ๊ณต์ ์ธ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๊ตฌํ์ ์ํด ์ฐ๋ฆฌ๋ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ์ ์ ๋ฌธ์ ๋ฅผ ๊ฐ๊ฐ ์์๋๋ก ํด๊ฒฐํด์ผ ํ์ต๋๋ค.
๊ณผ์ 1. ์์คํ ์ ์ํ์ ํ์ฅ์ฑ์ ํ์์ฑ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์ํคํ ์ฒ์ ๋ํ ๋ง์ดํฌ๋ก์๋น์ค ์ ๊ทผ ๋ฐฉ์์ ์ ํํ์ต๋๋ค. ๋์์ ์๋น์ค์ ์ฑ ์ ์์ญ์ ์ดํดํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก์ธ์ค์ ํน์ฑ์ ๊ณ ๋ คํ์ฌ ์ด๋ฅผ ๋น์ฆ๋์ค ์ด์์ผ๋ก ๋๋๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฐฝ๊ณ ์์์ ์ธ์๋ ๋น๋ฒํ์ง ์์ง๋ง ๋งค์ฐ ๋๊ท๋ชจ ์์ ์ด๋ฏ๋ก ํ ๋ฒ์ ๋ฐฐ์ก์ผ๋ก 600000์ ๋๋ฌํ๋ ์น์ธ๋๋ ์ํ ๋จ์์ ๋ํ ์ ๋ณด๋ฅผ ์ฃผ ๊ท์ ๊ธฐ๊ด์ผ๋ก๋ถํฐ ์ ์ํ๊ฒ ์ป์ด์ผ ํฉ๋๋ค. , ์ด ์ ํ์ ์ฐฝ๊ณ ์ ์์ฉํ ์ ์๋์ง ํ์ธํ๊ณ ์ฐฝ๊ณ ์๋ํ ์์คํ ์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฐํํ์ญ์์ค. ๊ทธ๋ฌ๋ ์ฐฝ๊ณ ์์์ ๋ฐฐ์ก์ ํจ์ฌ ๋ ๊ฐ๋๊ฐ ๋์ง๋ง ๋์์ ์ ์ ์์ ๋ฐ์ดํฐ๋ก ์ด์๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ชจ๋ ์๋น์ค๋ฅผ ๋ฌด์ํ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๊ณ ์ฌ์ง์ด Kafka ์์ฒด ์ฃผ์ ๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ์ฌ์ฉํ์ฌ ๋ด๋ถ ์์ ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ์ด๋ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ์์ ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฆฌ์์ค ์ง์ฝ์ ์ธ ์์ ์ ๋ํ ๋ก๋ ๊ท ํ์ ๋ง์ถ๊ณ ์ ํ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ ์ ์์ต๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋์ค์ ์ค๋ช ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ธ๋ถ ์์คํ ๊ณผ์ ์ํธ ์์ฉ์ ์ํ ๋ชจ๋์ ๋ณ๋์ ์๋น์ค๋ก ๋ถ๋ฆฌํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฅผ ํตํด ๋น์ฆ๋์ค ๊ธฐ๋ฅ์ ๊ฐ์ถ ์๋น์ค์ ๊ฑฐ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ์ธ๋ถ ์์คํ ์ API๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ๋์์ต๋๋ค.
๋ชจ๋ ๋ง์ดํฌ๋ก์๋น์ค๋ OpenShift ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋์ด ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ํ์ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํ์ฌ ์๋น์ค ๊ฒ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค.
์์ 2. ํ๋ซํผ ์๋น์ค ๊ฐ ๋์ ๋ก๋์ ๋งค์ฐ ์ง์ค์ ์ธ ๋ฐ์ดํฐ ๊ตํ์ ์ ์งํด์ผ ํ๋ ํ์์ฑ: ํ๋ก์ ํธ ์์ ๋จ๊ณ์์๋ง ์ด๋น ์ฝ 600๊ฐ์ ์์ ์ด ์ํ๋ฉ๋๋ค. ์๋งค์ ์ด ์ฐ๋ฆฌ ํ๋ซํผ์ ์ฐ๊ฒฐ๋๋ฉด ์ด ๊ฐ์ด 5000ops/sec๋ก ์ฆ๊ฐํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ Kafka ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๊ณ ํ๋ซํผ์ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ ๋๊ธฐ์ ์ํธ ์์ฉ์ ๊ฑฐ์ ์์ ํ ํฌ๊ธฐํจ์ผ๋ก์จ ํด๊ฒฐ๋์์ต๋๋ค. ๋ชจ๋ ์์
์ด ๋น๋๊ธฐ์์ผ ์๋ ์์ผ๋ฏ๋ก ์ด๋ฅผ ์ํด์๋ ์์คํ
์๊ตฌ ์ฌํญ์ ๋งค์ฐ ์ ์คํ๊ฒ ๋ถ์ํด์ผ ํฉ๋๋ค. ๋์์ ๋ธ๋ก์ปค๋ฅผ ํตํด ์ด๋ฒคํธ๋ฅผ ์ ์กํ ๋ฟ๋ง ์๋๋ผ ํ์ํ ๋ชจ๋ ๋น์ฆ๋์ค ์ ๋ณด๋ฅผ ๋ฉ์์ง๋ก ์ ์กํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฉ์์ง ํฌ๊ธฐ๋ ์๋ฐฑ ํฌ๋ก๋ฐ์ดํธ์ ์ด๋ฅผ ์ ์์ต๋๋ค. Kafka์ ๋ฉ์์ง ํฌ๊ธฐ ์ ํ์ ๋ฉ์์ง ํฌ๊ธฐ๋ฅผ ์ ํํ๊ฒ ์์ธกํด์ผ ํ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ถํ ํ์ง๋ง ๋น์ฆ๋์ค ์ด์๊ณผ ๊ด๋ จํ์ฌ ๋ถํ ์ ๋
ผ๋ฆฌ์ ์
๋๋ค.
์๋ฅผ ๋ค์ด, ์๋์ฐจ์ ๋์ฐฉํ ๋ฌผํ์ ์์๋ก ๋๋๋๋ค. ๋๊ธฐ์ ์์
์ ๊ฒฝ์ฐ ๋ณ๋์ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ํ ๋น๋๊ณ ์ฒ ์ ํ ๋ก๋ ํ
์คํธ๊ฐ ์ํ๋ฉ๋๋ค. Kafka๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋ค๋ฅธ ๊ณผ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. Kafka ํตํฉ์ ๊ณ ๋ คํ์ฌ ์๋น์ค ์ด์์ ํ
์คํธํ๋ฉด ๋ชจ๋ ๋จ์ ํ
์คํธ๊ฐ ๋น๋๊ธฐํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ Embedded Kafka Broker๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ์ ํธ๋ฆฌํฐ ๋ฉ์๋๋ฅผ ์์ฑํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด๋ก ์ธํด ๊ฐ๋ณ ๋ฉ์๋์ ๋ํ ๋จ์ ํ
์คํธ๋ฅผ ์์ฑํ ํ์๊ฐ ์์ด์ง์ง๋ ์์ง๋ง Kafka๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ์ฌ๋ก๋ฅผ ํ
์คํธํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
์๋น์ค ์ด์ ์ค ์์ธ๊ฐ ๋ฐ์ํ๊ฑฐ๋ Kafka ๋ฐฐ์น ์์ ์ TraceId๊ฐ ์์ค๋์ง ์๋๋ก ์ถ์ ๋ก๊ทธ์ ๋ง์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ํน๋ณํ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ์ผ๊ด ์ฒ๋ฆฌ์ ํจ๊ป ์ ๊ณต๋๋ ๋ชจ๋ TraceId๋ฅผ ๊ธฐ๋กํ๊ณ ํ๋๋ฅผ ์ ํํ์ฌ ์ถ์ ์ ๊ณ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์๋ TraceId๋ก ๊ฒ์ํ๋ฉด ์ฌ์ฉ์๋ ์ด๋ค ์ถ์ ์ด ๊ณ์๋์๋์ง ์ฝ๊ฒ ์ ์ ์์ต๋๋ค.
์์ 3. ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํ๋ ํ์์ฑ: ๋ด๋ฐฐ์๋ง ์ฐ๊ฐ 1์ต ๊ฐ ์ด์์ ๋ผ๋ฒจ์ด X5์ ์ ๊ณต๋ฉ๋๋ค. ์ง์์ ์ด๊ณ ๋น ๋ฅธ ์ก์ธ์ค๊ฐ ํ์ํฉ๋๋ค. ์ ์ฒด์ ์ผ๋ก ์์คํ ์ ์ด๋ฌํ ๋ผ๋ฒจ์ด ๋ถ์ฐฉ๋ ์ํ์ ์ด๋ ๊ธฐ๋ก์ ๋ํ ์ฝ 10์ต ๊ฐ์ ๊ธฐ๋ก์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ธ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค MongoDB๊ฐ ์ ํ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ 5๊ฐ์ ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ์ค๋๋ฅผ ๊ตฌ์ถํ์ผ๋ฉฐ ๊ฐ ๋ ธ๋์๋ 3๊ฐ์ ์๋ฒ๋ก ๊ตฌ์ฑ๋ ๋ณต์ ๋ณธ ์ธํธ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์คํ ์ ์ํ์ผ๋ก ํ์ฅํ๊ณ ํด๋ฌ์คํฐ์ ์ ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ ๋ด๊ฒฐํจ์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์ํ์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ ๋ง์ดํฌ๋ก์๋น์ค์ ์ฌ์ฉ์ ๊ณ ๋ คํ์ฌ mongo ํด๋ฌ์คํฐ์ ํธ๋์ญ์ ์ฑ์ ๋ณด์ฅํ๋ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋น์ฌ ์์คํ ์ ์์ ์ค ํ๋๋ ๋์ผํ ๋ผ๋ฒจ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ์ฌํ๋งคํ๋ ค๋ ์๋๋ฅผ ์๋ณํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์์๋ ๊ณ์ฐ์์ ์๋ชป๋ ์ค์บ์ด๋ ์๋ชป๋ ์กฐ์์ผ๋ก ์ค๋ฒ๋ ์ด๊ฐ ๋ํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ค๋ณต์ด ์ฒ๋ฆฌ ์ค์ธ ํ๋์ Kafka ๋ฐฐ์น ๋ด์์์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌ๋๋ ๋ ๊ฐ์ ๋ฐฐ์น ๋ด์์ ๋ชจ๋ ๋ฐ์ํ ์ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ค๋ณต์ ํ์ธํด๋ ์๋ฌด ๊ฒ๋ ์ ๊ณต๋์ง ์์์ต๋๋ค. ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ํด ์ด ์๋น์ค์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ํ์ ๊ฒฝ์ฐ ๋ฐฐ์น ๋ด๋ถ์ ์ํ๋ฅผ ์ถ๊ฐํ๊ณ ์ฝ์ ์ ์ค๋ณต์ด ๋ํ๋๋ ๊ฒ์ ๋ํ ๋ณ๋ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
์ฌ์ฉ์์ ์ด์ ๋ด์ญ ์์ ์ด ๊ฐ์ฅ ์ค์ํ ๊ฒ, ์ฆ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ๊ธฐ๋ฅ์ ์ด๋ค ์์ผ๋ก๋ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํ๊ธฐ ์ํด ๋ชจ๋ ๋ด์ญ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ๋ณ๋์ ์๋น์ค๋ก ๋ถ๋ฆฌํ์ผ๋ฉฐ, ์ด๋ Kafka๋ฅผ ํตํด ์ ๋ณด๋ ์์ ํฉ๋๋ค. . ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์๋ ์ง์์ ์ธ ์์ ์ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋น์ค์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๊ฒฉ๋ฆฌ๋ ์๋น์ค๋ก ์์ ํ ์ ์์ต๋๋ค.
์์ 4: ๋๊ธฐ์ด ์ฌ์ฒ๋ฆฌ ๋ฐ ๋ชจ๋ํฐ๋ง:
๋ถ์ฐ ์์คํ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋๊ธฐ์ด, ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์ ๊ฐ์ฉ์ฑ ๋ฌธ์ ์ ์ค๋ฅ๊ฐ ํ์ฐ์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค. Marcus์ ๊ฒฝ์ฐ ์ด๋ฌํ ์ค๋ฅ์ ์์ธ์ ์ธ๋ถ ์์คํ ๊ณผ์ ํตํฉ์ ๋๋ค. ์ง์ ๋ ์๊ฐ ์ด๊ณผ๋ก ์๋ชป๋ ์๋ต์ ๋ํ ๋ฐ๋ณต ์์ฒญ์ ํ์ฉํ๋ ๋์์ ๊ธฐ๋ณธ ๋๊ธฐ์ด์์ ์ฑ๊ณต์ ์ธ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ค๋จํ์ง ์๋ ์๋ฃจ์ ์ ์ฐพ์์ผ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ์์ "์ฃผ์ ๊ธฐ๋ฐ ์ฌ์๋" ๊ฐ๋ ์ด ์ ํ๋์์ต๋๋ค. ๊ฐ ๊ธฐ๋ณธ ์ฃผ์ ์ ๋ํด ์๋ชป๋ ๋ฉ์์ง๊ฐ ์ ์ก๋๋ ํ๋ ์ด์์ ์ฌ์๋ ์ฃผ์ ๊ฐ ์์ฑ๋๊ณ ๋์์ ๊ธฐ๋ณธ ์ฃผ์ ์ ๋ฉ์์ง ์ฒ๋ฆฌ ์ง์ฐ์ด ์ ๊ฑฐ๋ฉ๋๋ค. ์ํธ ์์ฉ ๋ฐฉ์ -
์ด๋ฌํ ์ฒด๊ณ๋ฅผ ๊ตฌํํ๋ ค๋ฉด ์ด ์๋ฃจ์
์ Spring๊ณผ ํตํฉํ๊ณ ์ฝ๋ ์ค๋ณต์ ํผํ๊ธฐ ์ํด ๋ค์์ด ํ์ํ์ต๋๋ค. ์น์ํ์ ํ๋ ์ค Spring BeanPostProccessor๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ ์ฌํ ์๋ฃจ์
์ ๋ฐ๊ฒฌํ์ง๋ง ๋ถํ์ํ๊ฒ ๋ฒ๊ฑฐ๋ก์ ๋ณด์์ต๋๋ค. ์ฐ๋ฆฌ ํ์ ์๋น์ ์์ฑ์ ์ํด Spring ์ฃผ๊ธฐ์ ํตํฉํ๊ณ ์ถ๊ฐ๋ก Retry Consumer๋ฅผ ์ถ๊ฐํ ์ ์๋ ๋ ๊ฐ๋จํ ์๋ฃจ์
์ ๋ง๋ค์์ต๋๋ค. ์ฐ๋ฆฌ๋ Spring ํ์ ์ฐ๋ฆฌ ์๋ฃจ์
์ ํ๋กํ ํ์
์ ์ ๊ณตํ์ต๋๋ค. ๋ณด์๋ค์ํผ
๋ชจ๋ ์ฌ์๋ ํ์๋ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด Spring DeadLetterPublishingRecoverer๋ฅผ ์ฌ์ฉํ์ฌ DLT(๋ฐ๋ ๋ ํฐ ์ฃผ์ )๋ก ์ด๋ํฉ๋๋ค. ์ง์ ์์ฒญ์ ๋ฐ๋ผ ์ฐ๋ฆฌ๋ ์ด ๊ธฐ๋ฅ์ ํ์ฅํ๊ณ DLT, stackTrace, TraceId์ ํฌํจ๋ ๋ฉ์์ง ๋ฐ ์ด์ ๋ํ ๊ธฐํ ์ ์ฉํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ ๋ณ๋์ ์๋น์ค๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ํ ๋ชจ๋ DLT ์ฃผ์ ์ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ์ด ์ถ๊ฐ๋์์ผ๋ฉฐ, ์ด์ ์ค์ ๋ก DLT ์ฃผ์ ์ ๋ฉ์์ง๊ฐ ๋ํ๋๋ ๊ฒ์ ๊ฒฐํจ์ ๋ถ์ํ๊ณ ์์ ํ๋ ์ด์ ์ ๋๋ค. ์ด๋ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ์ฃผ์ ์ด๋ฆ์ ํตํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋ก์ธ์ค์ ์ด๋ ๋จ๊ณ์์ ์ฆ์ ์ดํดํ๋ฏ๋ก ๊ทผ๋ณธ ์์ธ ๊ฒ์ ์๋๊ฐ ํฌ๊ฒ ๋นจ๋ผ์ง๋๋ค.
๊ฐ์ฅ ์ต๊ทผ์๋ ์์ธ์ ์ ๊ฑฐ(์: ์ธ๋ถ ์์คํ
์ ๊ธฐ๋ฅ ๋ณต์)ํ๊ณ ๋ถ์์ ์ํด ํด๋น ๊ฒฐํจ์ ์ค์ ํ ํ ์ง์์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ๋ค์ ๋ณด๋ผ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์์ฒด ์ฃผ์ ๊ฐ ์ ์ฉํ ๊ณณ์
๋๋ค. ๊ธด ์ฒ๋ฆฌ ์ฒด์ธ์ ๋ค์ ์์ํ์ง ์์ผ๋ ค๋ฉด ์ํ๋ ๋จ๊ณ์์ ๋ค์ ์์ํ ์ ์์ต๋๋ค.
ํ๋ซํผ ์ด์
ํ๋ซํผ์ ์ด๋ฏธ ์์ฐ์ ์ผ๋ก ์ด์๋๊ณ ์์ผ๋ฉฐ ๋งค์ผ ๋ฐฐ์ก ๋ฐ ๋ฐฐ์ก์ ์ํํ๊ณ ์๋ก์ด ์ ํต ์ผํฐ์ ๋งค์ฅ์ ์ฐ๊ฒฐํฉ๋๋ค. ํ์ผ๋ฟ์ ์ผํ์ผ๋ก ์์คํ ์ "๋ด๋ฐฐ" ๋ฐ "์ ๋ฐ" ์ ํ ๊ทธ๋ฃน๊ณผ ํจ๊ป ์๋ํฉ๋๋ค.
์ฐ๋ฆฌ ํ ์ ์ฒด๊ฐ ํ์ผ๋ฟ ์ํ์ ์ฐธ์ฌํ๊ณ , ์๋ก์ด ๋ฌธ์ ๋ฅผ ๋ถ์ํ๊ณ , ๋ก๊ทธ ๊ฐ์ ๋ถํฐ ํ๋ก์ธ์ค ๋ณ๊ฒฝ์ ์ด๋ฅด๊ธฐ๊น์ง ์ ํ ๊ฐ์ ์ ์ํ ์ ์์ ์ ์ํฉ๋๋ค.
์ค์๋ฅผ ๋ฐ๋ณตํ์ง ์๊ธฐ ์ํด ํ์ผ๋ฟ ๊ณผ์ ์์ ๋ฐ๊ฒฌ๋ ๋ชจ๋ ์ฌ๋ก๋ ์๋ํ ํ ์คํธ์ ๋ฐ์๋ฉ๋๋ค. ๋ค์์ ์๋ ํ ์คํธ ๋ฐ ๋จ์ ํ ์คํธ๊ฐ ์์ผ๋ฉด ๋ฌธ์ ๊ทธ๋๋ก ๋ช ์๊ฐ ๋ด์ ํ๊ท ํ ์คํธ๋ฅผ ์ํํ๊ณ ํซํฝ์ค๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
์ด์ ์ฐ๋ฆฌ๋ ๊ณ์ํด์ ํ๋ซํผ์ ๊ฐ๋ฐํ๊ณ ๊ฐ์ ํ๋ฉฐ ๋์์์ด ์๋ก์ด ๋์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. ๊ด์ฌ์ด ์์ผ์๋ฉด ๋ค์ ๊ธฐ์ฌ์์ ์๋ฃจ์
์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com