๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ—‚๏ธ ์Šคํ„ฐ๋”” ํ™œ๋™/๐Ÿ“™ CS ์Šคํ„ฐ๋””

[์šด์˜์ฒด์ œ] IPC ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ

by ๐Ÿ’พ๊ณ ๊ตฌ๋งˆ๋ง›ํƒ•๋จน๊ณ ์‹ถ๋‹ค 2024. 11. 29.
728x90

๐Ÿ™‹ IPC์˜ ๋Œ€ํ‘œ์ ์ธ ๋ชจ๋ธ 2๊ฐ€์ง€๋Š”?

๋”๋ณด๊ธฐ

IPC๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์†Œ์ผ“๊ณผ ๋ฉ”์„ธ์ง€ ํ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œ์ผ“(Socket)์€ ์›๊ฒฉ ํ†ต์‹ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์œ„ํ•œ IPC๋กœ TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ์—์„œ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฑ„ํŒ…, ์›น์„œ๋ฒ„ ๋“ฑ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜ ์•ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฉ”์„ธ์ง€ ํ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ํ์— ๋„ฃ๊ณ  ๋นผ๋ฉด์„œ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ์‹์ด๋ฉฐ ์†ก์‹ ์ž๋Š” ํ์— ๋„ฃ๊ณ , ์ˆ˜์‹ ์ž๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ†ต์‹ ์ด ๊ฐ„์„ญ์—†์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. POSIX, SYSTEM V, RabbitMQ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฉ”์„ธ์ง€ ํ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

https://www.fun-coding.org/post/ipc.html#gsc.tab=0

๐Ÿ™‹ ์›๊ฒฉ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ IPC๋Š”?

๋”๋ณด๊ธฐ

์›๊ฒฉ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ IPC๋Š” ์†Œ์ผ“์ด ์œ ์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ IPC, ๋ฉ”์„ธ์ง€ ํ, ํŒŒ์ดํ”„, ๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋กœ์ปฌ ํ†ต์‹ ์— ํ•œ์ •๋ฉ๋‹ˆ๋‹ค. ์†Œ์ผ“์€ ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ์ง€์›ํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ „์†ก์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ™‹ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ(Shared Memory)๋ž€?

๋”๋ณด๊ธฐ

๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ๋ž€ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” IPC ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋น ๋ฅด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ๋™๊ธฐํ™” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ : https://jeonjoonho.github.io/2020/04/25/IPC%28Inter%20Process%20Communication%29/

๐Ÿ™‹ IPC์˜ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ž€?

๋”๋ณด๊ธฐ

์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๊ณต์œ ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋ฎคํ…์Šค, ์„ธ๋งˆํฌ์–ด, ์กฐ๊ฑด ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๋™๊ธฐํ™” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฎคํ…์Šค๋Š” ์ƒํ˜ธ๋ฐฐ์ œ๋กœ ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋งˆํฌ์–ด๋Š” ๊ณต์œ ์ž์› ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ์นด์šดํŒ… ๋ณ€์ˆ˜๋กœ ๊ทธ ์ˆ˜๋งŒํผ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด๋ณ€์ˆ˜๋Š” ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๊ฒŒ ํ•˜์—ฌ ๋ณดํ†ต ๋ฎคํ…์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ™‹ IPC ๋™๊ธฐ์‹, ๋น„๋™๊ธฐ์‹ ํ†ต์‹ ์˜ ์ฐจ์ด๋Š”?

๋”๋ณด๊ธฐ

๋™๊ธฐ์‹ ํ†ต์‹ ์€ ์†ก์‹ ์ž๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ์ˆ˜์‹ ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•  ๋–„ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋œ ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆœ์ฐจ์ ์ด๋ฉฐ ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ์‹์€ ์†ก์‹ ์ž๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ๋งŒํ•˜๊ณ  ์ˆ˜์‹ ์ž๊ฐ€ ๋ณ„๋„๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋ฉฐ ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค. 

๋ฉ”์„ธ์ง€ ํ : https://www.fun-coding.org/post/ipc.html#gsc.tab=0

๐Ÿ™‹ ๋ฉ”์„ธ์ง€ ํ(Message Queue)์™€ ํŒŒ์ดํ”„(Pipe)์˜ ์ฐจ์ด์ ์€?

๋”๋ณด๊ธฐ

ํŒŒ์ดํ”„๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹ ๋งŒ ๊ฐ€๋Šฅํ•ด ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ ํ†ต์‹ ์— ์ ํ•ฉํ•˜์ง€๋งŒ ๋ฉ”์„ธ์ง€ํ๋Š” ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ์— ์ €์žฅํ•ด ๋น„๋™๊ธฐ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

728x90