๐ IPC์ ๋ํ์ ์ธ ๋ชจ๋ธ 2๊ฐ์ง๋?
IPC๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ๋งํฉ๋๋ค. ๋ํ์ ์ผ๋ก ์์ผ๊ณผ ๋ฉ์ธ์ง ํ๊ฐ ์์ต๋๋ค.
์์ผ(Socket)์ ์๊ฒฉ ํต์ ์ ์ง์ํฉ๋๋ค. ๋คํธ์ํฌ ํต์ ์ ์ํ IPC๋ก TCP/IP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ ์ก์ ํ๊ฒ ๋ฉ๋๋ค. ๋ณดํต ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ์ฌ์ฉํ๋ฉฐ ์ฑํ , ์น์๋ฒ ๋ฑ ๋ค์ํ ๋คํธ์ํฌ ๊ธฐ๋ฐ ์ฑ์์ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฉ์ธ์ง ํ๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ์ธ์ง๋ฅผ ํ์ ๋ฃ๊ณ ๋นผ๋ฉด์ ํต์ ํ๋ ๋ฐฉ์์ ๋๋ค. ๋น๋๊ธฐ์์ด๋ฉฐ ์ก์ ์๋ ํ์ ๋ฃ๊ณ , ์์ ์๊ฐ ์์ฐจ์ ์ผ๋ก ๋ฉ์ธ์ง๋ฅผ ๋ฐ๊ฒ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํต์ ์ด ๊ฐ์ญ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ฒ ๋ฉ๋๋ค. POSIX, SYSTEM V, RabbitMQ ๋ฑ ์ฌ๋ฌ ๋ฉ์ธ์ง ํ๊ฐ ์์ต๋๋ค.
๐ ์๊ฒฉ ํต์ ์ด ๊ฐ๋ฅํ IPC๋?
์๊ฒฉ ํต์ ์ด ๊ฐ๋ฅํ IPC๋ ์์ผ์ด ์ ์ผํฉ๋๋ค. ๋ค๋ฅธ IPC, ๋ฉ์ธ์ง ํ, ํ์ดํ, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ก์ปฌ ํต์ ์ ํ์ ๋ฉ๋๋ค. ์์ผ์ ๋น๋๊ธฐ ํต์ ์ ์ง์ํ๊ณ ๋์ฉ๋ ๋ฐ์ดํฐ ์ ์ก์ ์ ํฉํฉ๋๋ค.
๐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(Shared Memory)๋?
๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ IPC ๊ธฐ๋ฒ์ ๋๋ค. ๊ฐ์ฅ ๋น ๋ฅด๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ์ฝ๊ณ ์ธ ์ ์์ด ํจ์จ์ ์ ๋๋ค. ํ์ง๋ง ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ด ๋๊ธฐํ ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผํฉ๋๋ค.
๐ IPC์ ๋๊ธฐํ ๋ฌธ์ ๋?
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ๊ณต์ ์์์ ์ ๊ทผํ๋ฉด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐฉ์ง๋ฅผ ์ํด ๋ฎคํ ์ค, ์ธ๋งํฌ์ด, ์กฐ๊ฑด ๋ณ์์ ๊ฐ์ ๋๊ธฐํ ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ๋ฎคํ ์ค๋ ์ํธ๋ฐฐ์ ๋ก ๋์์ ์ ๊ทผํ ์ ์๊ฒ ๋ณดํธํฉ๋๋ค. ์ธ๋งํฌ์ด๋ ๊ณต์ ์์ ์ ๊ทผ์ ์ ์ดํ๋ ์นด์ดํ ๋ณ์๋ก ๊ทธ ์๋งํผ ํ๋ก์ธ์ค๊ฐ ์ ๊ทผํ๊ฒ ๋ฉ๋๋ค. ์กฐ๊ฑด๋ณ์๋ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ ๊น์ง ๋๊ธฐํ๊ฒ ํ์ฌ ๋ณดํต ๋ฎคํ ์ค์ ํจ๊ป ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
๐ IPC ๋๊ธฐ์, ๋น๋๊ธฐ์ ํต์ ์ ์ฐจ์ด๋?
๋๊ธฐ์ ํต์ ์ ์ก์ ์๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๊ณ ์์ ์๊ฐ ์ฒ๋ฆฌํ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ๋ฉ์ธ์ง ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ ๊ฒ์ ํ์ธํ๊ณ ๋ค์ ์์ ์ ์ํํฉ๋๋ค. ๋ฐ๋ผ์ ์์ฐจ์ ์ด๋ฉฐ ์๋๊ฐ ์๋์ ์ผ๋ก ๋๋ฆฝ๋๋ค.
๋น๋๊ธฐ์์ ์ก์ ์๋ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๊ธฐ๋งํ๊ณ ์์ ์๊ฐ ๋ณ๋๋ก ๋ฉ์ธ์ง๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๋ฉฐ ์๋๊ฐ ๋น ๋ฆ ๋๋ค.
๐ ๋ฉ์ธ์ง ํ(Message Queue)์ ํ์ดํ(Pipe)์ ์ฐจ์ด์ ์?
ํ์ดํ๋ ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํด ๋จ์ผ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ถ๋ชจ-์์ ํ๋ก์ธ์ค์ ํต์ ์ ์ ํฉํ์ง๋ง ๋ฉ์ธ์งํ๋ ์๋ฐฉํฅ ํต์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํ์ ์ ์ฅํด ๋น๋๊ธฐ์์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.