๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ232 ์ค๋ฌด์์ ์์ฃผ ๊ณ ๋ คํด๋ณผ ์ ์๋ ์ํฐ ํจํด ์ํฐ ํจํด์ํฐํจํด(Anti-Pattern)์ด๋ ์ํํธ์จ์ด ๊ฐ๋ฐ, ์ค๊ณ, ๋๋ ๋ฌธ์ ํด๊ฒฐ์์ ๋นํจ์จ์ ์ด๊ณ ํด๋ก์ด ๊ดํ์ ๋งํฉ๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ ๋, ๋นํจ์จ์ ์ด๊ฑฐ๋ ๋น์์ฐ์ ์ผ ์ ์๋ ๋ฐฉ์๋ค์ ์๋ฏธํฉ๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ ๋น์์๋ ๋ฌธ์ ๊ฐ ์์ด๋ณด์ผ ์ ์์ง๋ง, ์๊ฐ์ด ์ง๋๊ณ ์๊ตฌ ์ฌํญ์ด ๋ฐ๋๋ฉด ์์ ์ด ๋งค์ฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค. ์๋ชป๋ ๋ฐฉ์์ผ๋ก ์์ฑ๋ ์ฝ๋๋ ์คํ ์๋์ ์์คํ ์ ์ฒด ์ฑ๋ฅ์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ํ์ ์ธ ์ํฐ ํจํด1. Spaghetti Code (์คํ๊ฒํฐ ์ฝ๋) ๊ตฌ์กฐ๊ฐ ์๋ ๋ณต์กํ๊ณ ๋ค์ฝํ ์ฝ๋. ์ดํดํ๊ธฐ ์ด๋ ต๊ณ , ์ ์ง๋ณด์๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๊ณ ์ฝ๋ ๋ณ๊ฒฝ ์ ์์์น ๋ชปํ ๋ฌธ์ ๋ฐ์์ด ๊ฐ๋ฅํฉ๋๋ค.์์function calculate(value) { if (value > 10) { if (val.. System Design 2024. 12. 26. JavaScript ์ผ๋ฐ ํจ์์ ํ์ดํ ํจ์์ ์ฐจ์ด์ ๋ฌธ๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง์ด๋ค. ์ผ๋ฐ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋ฐ ํจ์function ํค์๋๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ฐ ํจ์๋ ํจ์ ์ ์ธ์๊ณผ ํจ์ ํํ์์ด ์๋ค. ํจ์์ ์ธ์ํจ์ ์ ์ธ์์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ์ ์ธํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.function main() { console.log("Hello")}main() //ํจ์ ํธ์ถ function ํค์๋ ๋ค์ ํ์์ ์ผ๋ก ํจ์ ์ด๋ฆ์ ์ ๊ณ ๋ธ๋ญ ์์ ํจ์ ๋ด์ฉ์ ์ ์ผ๋ฉด ๋๋ค. ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ํด์ ์ด๋ฆ์ ์ ์ผ๋ฉด ๋๋ค.ํจ์ ์ ์ธ์์ผ๋ก ์์ฑ๋ ์์ฑ๋ ํจ์์ ํน์ง์ ํธ์ด์คํ ์ด ๋๋ค๋ ๊ฒ์ด๋ค. ํธ์ด์คํ ์ด ๋๊ธฐ ๋๋ฌธ์ ํจ์ ์ ์ธ๋ณด๋ค ํธ์ถ์ด ๋จผ์ ๋์ด๋ ์๋ฌ๊ฐ ์๊ธฐ์ง ์๊ณ , ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค. ํธ์ด์คํ ์ด ๋๊ธฐ ๋๋ฌธ์.. JavaScript Programming 2024. 12. 20. JavaScript - ์คํ ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ ํธ์ด์คํ , ํด๋ก์ , this ๋ฐ์ธ๋ฉ ๋ฑ์ ์๋ ค๋ฉด ์คํ ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ์ ์์์ผ ํ๋ค. ์คํ ์ปจํ ์คํธ (Execution Context)์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์คํ๋ ๋ ์์ฑ๋๋ ์คํ ์ ๋ณด์ ํ๊ฒฝ์ด๋ค. ์ด๋ค ์ฝ๋๊ฐ ์คํ๋ ์ง, ๋ณ์์ ํจ์๊ฐ ์ด๋ป๊ฒ ์คํ๋ ์ง๋ฅผ ๊ด๋ฆฌํ๋ค. ๊ตฌ์ฑ์์1. ๋ ์์ปฌ ํ๊ฒฝ (Lexical Environment)๋ณ์๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ฉฐ, ์ค์ฝํ ์ฒด์ธ์ ๊ด๋ฆฌํ๋ค.ํ์ฌ ์คํ ์ค์ธ ์ฝ๋ ๋ธ๋ก(ํจ์, ์ ์ญ, ๋ธ๋ก)์ ์ค์ฝํ๋ฅผ ๋ํ๋ธ๋ค.2. ๋ณ์ ํ๊ฒฝ (Variable Environment)๋ ์์ปฌ ํ๊ฒฝ๊ณผ ๋น์ทํ์ง๋ง, var ํค์๋๋ก ์ ์ธ๋ ๋ณ์๋ง ๊ด๋ฆฌํ๋ค.ํจ์ ์คํ ์ ์ด๊ธฐ ์ํ๋ฅผ ๋ณด๊ดํ๋ค.3. this ๋ฐ์ธ๋ฉ (This Binding)ํ์ฌ ์คํ ์ค์ธ ์ฝ๋์์์ this ๊ฐ์ ๊ฐ๋ฆฌํจ๋ค.๋ ์์ปฌ.. JavaScript Programming 2024. 12. 19. JavaScript - if ๋ฌธ Truthy ์ Falsy ํ๊ฐ ๋ฐฉ์ ์กฐ๊ฑด๋ฌธ์ ํ๊ฐ ๋ฐฉ์ ํ์ ์คํฌ๋ฆฝํธ๋ก ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๊ณ ์๋๋ฐ, ๋ค๋ฅธ ์์์์ node์ next ๊ฐ์ด ์กด์ฌํ๋ฉด ์์ ํ๋ ๊ทธ๋ฐ ๋ก์ง์ด ์์๋ค.?!!?!?!?!?!?!?!?!?!?!?!if (node.next !== null) { //์ด๊ฒ ์๋๊ณ ์๋๊ฐ ๋๋ค๊ณ ?}if (node.next) { node.next.prev = node.prev;} node๋ ListNode | null ์ผ๋ก ํ์ ์ ์ถ๋ก ํ ์ ์์๋ค. ๊ทผ๋ฐ if () ์กฐ๊ฑด๋ฌธ์ boolean ๊ฐ์ด ์๋ ๊ฐ์ฒด๋ null ์ด ๋ค์ด๊ฐ๋ค๋ ๊ฒ์ ์ถฉ๊ฒฉ์ ๋ฐ์๋ค. ์ ์ ๊ฒ ์ปดํ์ผ ์๋ฌ๊ฐ ์์๊ธฐ์ง?!์ฐพ์๋ณด๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์กฐ๊ฑด๋ฌธ ์์๋ ๋ฐ๋์ boolean ๊ฐ๋ง ๋ค์ด๊ฐ์ผ ํ๋ค๋ ๊ท์น์ด ์กด์ฌํ์ง ์์๋ค.(๋ ธ๊ทผ๋ณธ... ์๋๋๊ณ ....) TypeScript(๋๋.. JavaScript Programming 2024. 12. 18. JavaScript์์ 1 < x < 3์ด ํญ์ ์ฐธ์ธ ์ด์ - Number ๋ด์ฅ ํจ์ ๊ฐ๋ฐ์ ๋ฐ์ ๋ณด๋ฉด, ํนํ ์ธ์ด์ ๊ด๋ จ๋ ๋ฐ์ ๋ณด๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ด๋ จ๋ ๋ฐ์ด ๋ง๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ ํ์ ์ธ์ด๋ก์ ํ์ ๋ณํ์ ์ํํ๊ฒ ๋๋ค. ์๋ฐ ์คํฌ๋ฆฝํธ ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ์ด์ ๋ถ๋ถ์์ ์ด๋ฐ ๊ฑธ ๋ดค๋ค.if ("" == 0) { // ?!?!?!?! ์ด๊ฑด ์ฐธ}if (1 ์๋ฐ๋ฅผ ๋ฉ์ธ์ผ๋ก ๊ณต๋ถํ ๋๋ ์ ์์ด ์ถฉ๊ฒฉ์ ๋ฐ์๋ค. ์๊ฐ ์ ํญ์์ธ์ง. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ ๋ฐ ๋ฌธ๋ฒ์ด ๊ฐ๋ฅํ์ง ์๊ฐํ๋ค. 1. if ("" == 0) ์ด ํญ์ ์ฐธ์ธ ์ด์ if ("" == 0) ์ด ํญ์ ์ฐธ์ธ ์ด์ ๋ == (๋์จํ ๋๋ฑ ์ฐ์ฐ์) ๋ฐ ํ์ ๋ณํ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ Number ๋ด์ฅ ํจ์ ๋๋ฌธ์ด๋ค. == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋, ํผ์ฐ์ฐ์์ ํ์ ์ด ๋ค๋ฅด๋ฉด ํ์ ๋ณํ์ ์๋ํ๋ค. ํผ์ฐ์ฐ์๋ 0์ผ๋ก number ์๋ฃํ์ด๋ค. ๊ทธ.. JavaScript Programming 2024. 12. 17. ์ฝํ๋ฆฐ ์ ๊ทผ์ ์ด์์ ์๋ฐ ์ ๊ทผ ์ ์ด์ ์ฐจ์ด ์ฝํ๋ฆฐ๊ณผ ์๋ฐ์ ์ ๊ทผ ์ ์ด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ทํ ๊ฐ๋ ์ ๊ณต์ ํ์ง๋ง, ์ธ๋ถ์ ์ผ๋ก๋ ์ฐจ์ด์ ์ด ์๋ค.Kotlin ๊ณผ Java ์ ๊ทผ ์ ์ด์๊ฐ ๋น์ฐํ ๊ฐ๋ค๊ณ ์๊ฐํ์ผ๋ฉด ์ด ๊ธ์ ๋ณด๊ณ ์ฐจ์ด์ ์ ์์๋ณด์ ์ ๊ทผ ์ ์ด์์ฝํ๋ฆฐ์๋ฐpublic ๊ธฐ๋ณธ ์ ๊ทผ ์ ์ด์ (๋ช ์ํ์ง ์์ผ๋ฉด public) ๋ชจ๋ ๊ณณ์์ ์ ๊ทผ ๊ฐ๋ฅ ๋ชจ๋ ๊ณณ์์ ์ ๊ทผ ๊ฐ๋ฅ internal ๊ฐ์ ๋ชจ๋ ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ (internal์ ์ฝํ๋ฆฐ ๊ณ ์ ) ์์protected ์ ์ธ๋ ํด๋์ค ๋ฐ ํ์ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ ๋์ผํ ํจํค์ง ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅ (ํ์ ํด๋์ค๋ฉด ๋ค๋ฅธ ํจํค์ง์์๋ ์ ๊ทผ ๊ฐ๋ฅ)default์์ ๊ธฐ๋ณธ ์ ๊ทผ ์ ์ด์ (๋ช ์ํ์ง ์์ผ๋ฉด default ) ๋์ผํ ํจํค์ง ์์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅ private ์ ์ธ๋ ํด๋์ค ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅ .. Kotlin Programming 2024. 11. 27. ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋์์ฑ ๋ฌธ์ ๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ์์คํ ์์ ์ฑ์ ์ํด ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋ ์์๋ค. ํนํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฌ๋ฌ ์ฌ์ฉ์์ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ๋ฉด์๋ ๋ฐ์ดํฐ์ ์ ํ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ํต์ฌ์ด๋ค. ์ ์ฐฉ์ ์ด๋ฒคํธ๋ ์ฌ๊ณ ์ฒ๋ฆฌ๋ ๋์์ฑ(Concurrency) ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด ์์ญ์ผ๋ก, ๋ค์์ ์์ฒญ์ด ๋์์ ์ฒ๋ฆฌ๋ ๋ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ํ ๋์์ฑ ์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์์คํ ์ ์๊ตฌ ์ฌํญ๊ณผ ํธ๋ํฝ์ ๋ฐ๋ผ ์ ํฉํ ๋ฐฉ๋ฒ์ ์ ํํด์ผ ํ๋ค. 1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ๋ฒจ์์ ๋์์ฑ ์ ์ด ํธ๋์ญ์ & ๋ฝ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ ์ฌ์ฉํ์ฌ SELECT ... FOR UPDATE๋ก ์ฌ๊ณ ๋ฅผ ์กฐํํ๊ณ ์ ๋ฐ์ดํธ ์ ๋ฝ์ ๊ฑธ์ด ๋์์ฑ์ ์ ์ด. .. System Design 2024. 11. 25. Kafka ์ RabbitMQ ์ ์ฐจ์ด์ Kafka ์ RabbitMQ ๋ ์คํธ๋ฆผ ์ฒ๋ฆฌ์ ์ฌ์ฉํ ์ ์๋ ๋ฉ์์ง ํ ์์คํ ์ด๋ค. ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ณ ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋์ฉ๋์ ์ฐ์๋ ๋ฐ์ดํฐ๋ค์ด๋ค. RabbitMQ ๋ ์ฌ๋ฌ ์์ค์์ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ฒ๋ฆฌ๋ฅผ ์ํด ๋ค๋ฅธ ๋์์ผ๋ก ๋ผ์ฐํ ํ๋ ๋ถ์ฐ ๋ฉ์์ง ๋ธ๋ก์ปค์ด๋ค. Apache Kafka๋ ์ค์๊ฐ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๋ฐ ์คํธ๋ฆฌ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ์ด๋ค. Kafka๋ ๋ฐ์ด๋ ํ์ฅ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ, ๋ด๊ตฌ์ฑ์ด ๋ฐ์ด๋ ๋ฉ์์ง ์์คํ ์ ์ ๊ณตํ๋ค.์นดํ์นด์ ๋๋น์ ํ ๊ฐ์ ๋ฉ์์ง ํ ์์คํ ๋๋ถ์ MSA ํ๊ฒฝ์ด๋ ๋ถ์ฐ ์์คํ ์์ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ์ ์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก API ํต์ ์ ํ๊ฒ ๋๋ฉด ํธ์ถ๋ ์๋น์ค๊ฐ ํธ์ถํ ์๋น์ค์ ์ํฅ์ ์ฃผ๊ฒ ๋๋๋ฐ, ๋น๋๊ธฐ ๋ฉ์์ง ํจ.. Message Queue 2024. 11. 20. MSA ํ๊ฒฝ์์ ๋ชจ๋ํฐ๋ง ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์์ MSA ๋ก ๋ณํ๋๋ฉด์ ๋ฌ๋ผ์ง ๊ฒ๋ค์ด ๋ง์ ๋ฐ ๊ทธ ์ค ํ๋๊ฐ ํต์ ๋ฐฉ๋ฒ์ด๋ค. ๋ชจ๋๋ฆฌ์์์ ๊ทธ์ ํจ์ ํธ์ถ์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ง๋ง, MSA ์์ ์๋น์ค๊ฐ ๋ถ๋ฆฌ ๋์๊ธฐ ๋๋ฌธ์ ์๋น์ค ์ฆ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ํ๊ฒ ๋๋ค. ๋ชจ๋๋ฆฌ์์์ ์๋ฒ์ DB์ ์ํ๋ง ํ์ธํ๋ฉด ๋๋๋ฐ ์๋น์ค๊ฐ ๋ถ๋ฆฌ ๋๋ฉด์ IPC ํต์ ์ ๋ํ ์ง์ฐ์จ์ด๋ Call ์ฆ๊ฐ ํ์ธ, ๋ถ๋ฆฌ๋ ์๋น์ค์ ์ํ ํ์ธ, ๋ฏธ๋ค ์จ์ด ์ํ ๋ฑ ๋ง์ ๋ถ๋ถ ์ ๊ฒฝ ์จ์ผํ ๊ฒ ๋ง์์ก๋ค.Hop ์ด ๋์ด๋จ์ ๋ฐ๋ผ ์ด๋์ ์ด๋ค ์์ฒญ์ ๋ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ๋๋ฒ๊น ์ด ์ด๋ ค์์ก๊ณ , ๋ก๊ทธ ์์ง์ ์ํ ๋ณ๋์ ์ธํ๋ผ๊ฐ ํ์ํด์ง๊ฒ ๋๋ค.๋ ์ด๋ ์๋ฒ์์ ์ด๋ ์๋น์ค๋ก ํธ์ถ์ด ๋์ด์ผ ํ๋์ง ์๋น์ค๊ฐ ํธ์ถ ์ํ๊ฐ ์ ์ฐ์ธ์ง๋ ํ์ ํด์ผ ํ๋ค.MSA ํ๊ฒฝ์์ .. Observability 2024. 11. 14. ์ฟผ๋ฆฌ ํ๋ - ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ํน์ ์ปฌ๋ผ ์ ์ธํ๊ณ ์กฐํ ๊ฐ์Spring Data JPA ๋ฅผ ์ฌ์ฉํด์ DB ๋ฅผ ์กฐํํ๋ฉด ์ง์ฐ ๋ก๋ฉ์ผ๋ก ์ค์ ๋์ด ์๋ ์ฐ๊ด ๊ด๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ๊ณ ์ฒ์๋ถํฐ ๋ชจ๋ ๋ฐ์ดํฐ ์ปฌ๋ผ ๊ฐ๋ค์ ๋ถ๋ฌ์จ๋ค. JPA ํน์ ์ ์ฒ์์ ๋ชจ๋ ๊ฐ๋ค์ ์ด๊ธฐํ ์ํค๊ณ ์ค๋ ์ต์ ๊ธฐ์ค์ผ๋ก ๋ํฐ ์ฒดํน์ ํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง readOnly = true์ผ ๊ฒฝ์ฐ๋ ๋ํฐ์ฒดํน์ ํ ํ์๊ฐ ์๊ณ ์ํ๋ ๊ฐ๋ง ์ป์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฐ์ ์ด๊ธฐํํด์ ์ป์ ํ์๋ ์๋ค.์๋ฅผ ๋ค์ด DocumentDB ์ ๊ฐ์ NoSQL์ ์ฌ์ฉํ์ง ์๊ณ , RDB๋ก ์ํฐํด ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค๊ณ ์น์. @Entitypublic class Article { @Id @GeneratedValue private Long id; private String title; @Col.. Database 2024. 11. 13. ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ(EDA) ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ ๋๋ ์ด๋ฒคํธ ์ฃผ๋ ์ํคํ ์ฒ๋ ์ด๋ฒคํธ๋ฅผ ์์ฑ, ์ ๋ฌ, ์ฒ๋ฆฌ, ์๋นํ๋ ๋ฐฉ์์ผ๋ก ์์คํ ์ ๊ตฌ์ฑ ์์๊ฐ ํต์ ์ด ์ด๋ฃจ์ด์ง๋ ํ๋์ ์ธ ์ํคํ ์ฒ ์คํ์ผ์ด๋ค. ์ค๋๋ ๋๊ท๋ชจ ํธ๋ํฝ์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ง์ด ์ฐ์ธ๋ค. MSA, ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ด๋ฒคํธ ์์ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์๋๋ฆฌ์ค์์ ํ์ฉ๋๋ค. ๊ทธ ์ด์ ๋ ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ฅผ ํ์ฉํด ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ , ํ๋ก์ธ์ค ๊ฐ ๋์จํ ๊ฒฐํฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋์ ๊ฐ์ฉ์ฑ์ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. ์์คํ ๋ด์์ ํน์ ์์ ์ด๋ ์ํ ๋ณํ๊ฐ ๋ฐ์ํ ๋ ์ด๋ฅผ ์ด๋ฒคํธ๋ก ํํํ๊ณ ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ํ์ ์์ ์ด ์งํ๋๋ค. ์ด๋ฒคํธ์์คํ ๋ด์์ ๋ฐ์ํ๋ ์ํ ๋ณํ๋ ํ๋์ ๋ํ๋ธ๋ค.์์: ์ฃผ๋ฌธ ์์ฑ, ๊ฒฐ์ ์๋ฃ, ์ฌ์ฉ์ ๊ฐ์ ๋ฑ ์ด๋ฒคํธ .. Architecture 2024. 11. 4. IPC ํจํด (Sync ํต์ vs Async ํต์ ) MSA ์์ ์๋น์ค๊ฐ ํต์ ์ ํ๊ฒ ๋๋ฉด ๋คํธ์ํฌ ํต์ ์ ํ๊ฒ ๋๋ค. ์ฆ ํ๋ก์ธ์ค๊ฐ ํต์ ์ ํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ IPC( Inter-Process Communication ) ๋ผ๊ณ ํ๋ค. IPC๋ ๋จ์ผ ์์คํ ๋ด์ ํ๋ก์ธ์ค ๊ฐ์ด๋ , ๋ถ์ฐ ์์คํ ์ ์๋ก ๋ค๋ฅธ ๋ ธ๋ ๊ฐ์ด๋ , ๋๊ธฐ(Synchronous)์ ๋น๋๊ธฐ(Asynchronous) ํต์ ํจํด์ ์ง์ํ๋ค. ์์คํ ์ค๊ณ์ ๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ๊ฐ๊ฐ์ ํจํด์ ๊ณ ๋ คํด์ ์ฌ์ฉํด์ผ ํ๋ค. ์ฌ์ฉ์๊ฐ ๊ธฐ๋ฅ์ ๊ฒฐ๊ณผ๋ฅผ ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ์๋ด์ผํ๋ ๊ฒฝ์ฐ๋ ๋๊ธฐํจํด์ ์ฌ์ฉํ๊ณ ์ฆ๊ฐ์ ์ด์ง ์๊ณ ์คํ ํ ๋ค ๋์ค์ ์๋ฃ ์๋ฆผ์ ๋ฐ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ๋น๋๊ธฐ ํต์ ์ ๊ณ ๋ คํ ์ ์์ ๊ฒ์ด๋ค.๋๊ธฐ ๋ฐฉ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ์ง๋ง, ํน์ ์์ (์: ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ฅ์๊ฐ ์์ )์ ๋น๋๊ธฐ ์์ ์ผ๋ก ์ฒ๋ฆฌํ .. Computer Science/Network 2024. 10. 26. ์ด์ 1 2 3 4 ยทยทยท 20 ๋ค์