[์šด์˜์ฒด์ œ] IPC(Inter Process Communication)

๊ฐ•๋ฏผ์Šนยท2023๋…„ 5์›” 15์ผ
0

์šด์˜์ฒด์ œ

๋ชฉ๋ก ๋ณด๊ธฐ
7/18
post-thumbnail

๐Ÿ“Œ IPC(Inter Process Communication)


ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ์ฆ‰, ๋…๋ฆฝ ๋˜์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. (์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ์ž์›์„ ๊ณต์œ ํ•˜๋ฏ€๋กœ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค)

์ด๋Ÿฐ ๋…๋ฆฝ์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹ ์„ ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ IPC ํ†ต์‹ ์ด๋‹ค.


ํ”„๋กœ์„ธ์Šค๋Š” ์ปค๋„์ด ์ œ๊ณตํ•˜๋Š” IPC ์„ค๋น„๋ฅผ ์ด์šฉํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๐Ÿ“ ์ปค๋„์ด๋ž€?

์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์œผ๋กœ, ๋‹ค๋ฅธ ๋ชจ๋“  ๋ถ€๋ถ„์— ์—ฌ๋Ÿฌ ๊ธฐ๋ณธ์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์คŒ


IPC ์„ค๋น„ ์ข…๋ฅ˜๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ IPC ์„ค๋น„๋ฅผ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

IPC๋ž€
IPC (Inter-Process Communication) - ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ : ์ด๋Š” ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋‘ ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ์Šค๋ ˆ๋“œ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŒŒ์ดํ”„, ์†Œ์ผ“, ๋ฉ”์‹œ์ง€ ํ, ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“ IPC ์ข…๋ฅ˜

  1. ์ต๋ช… PIPE

    ํŒŒ์ดํ”„๋Š” ๋‘ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š”๋ฐ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ๋งŒ ํ•˜๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ˜์ด์ค‘ ํ†ต์‹ ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

    ๋”ฐ๋ผ์„œ ์–‘์ชฝ์œผ๋กœ ๋ชจ๋‘ ์†ก/์ˆ˜์‹ ์„ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด 2๊ฐœ์˜ ํŒŒ์ดํ”„๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

    ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๊ณ , ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์งˆ ๋• ํŒŒ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค. ๋‹จ์ ์œผ๋กœ๋Š” ์ „์ด์ค‘ ํ†ต์‹ ์„ ์œ„ํ•ด 2๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ๋Š” ๊ตฌํ˜„์ด ๋ณต์žกํ•ด์ง€๊ฒŒ ๋œ๋‹ค.

    ๋ฐ˜์ด์ค‘ ํ†ต์‹ 

    ๋ฐ˜์ด์ค‘ ํ†ต์‹ (Half-Duplex Communication)์€ ๋‘ ๊ธฐ๊ธฐ ๊ฐ„์— ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํ•œ ๋ฒˆ์— ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•œ ๊ธฐ๊ธฐ๋Š” ํ•œ ์‹œ์ ์— ์ „์†กํ•˜๊ฑฐ๋‚˜ ์ˆ˜์‹  ์ค‘ ํ•˜๋‚˜๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์—, ์ „์†ก๊ณผ ์ˆ˜์‹ ์ด ๋™์‹œ์— ์ด๋ฃจ์–ด์ง€๋Š” ํ†ต์‹ ์€ ์ „์ด์ค‘ ํ†ต์‹ (Full-Duplex Communication)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

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


  1. Named PIPE(FIFO)

    ์ต๋ช… ํŒŒ์ดํ”„๋Š” ํ†ต์‹ ํ•  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ช…ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. (๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์ฒ˜๋Ÿผ)

    Named ํŒŒ์ดํ”„๋Š” ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์˜ ํ”„๋กœ์„ธ์Šค๋“ค ์‚ฌ์ด ํ†ต์‹ ์— ์‚ฌ์šฉํ•œ๋‹ค.

    ์ฆ‰, ์ต๋ช… ํŒŒ์ดํ”„์˜ ํ™•์žฅ๋œ ์ƒํƒœ๋กœ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ๋ฌด๊ด€ํ•œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋„ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ (ํ†ต์‹ ์„ ์œ„ํ•ด ์ด๋ฆ„์žˆ๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉ)

    ํ•˜์ง€๋งŒ, Named ํŒŒ์ดํ”„ ์—ญ์‹œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋™์‹œ์— ๋ถˆ๊ฐ€๋Šฅํ•จ. ๋”ฐ๋ผ์„œ ์ „์ด์ค‘ ํ†ต์‹ ์„ ์œ„ํ•ด์„œ๋Š” ์ต๋ช… ํŒŒ์ดํ”„์ฒ˜๋Ÿผ 2๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ๊ฐ€๋Šฅ


  2. Message Queue

    ์ž…์ถœ๋ ฅ ๋ฐฉ์‹์€ Named ํŒŒ์ดํ”„์™€ ๋™์ผํ•จ

    ๋‹ค๋ฅธ์ ์€ ๋ฉ”์‹œ์ง€ ํ๋Š” ํŒŒ์ดํ”„์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์ด ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค.

    ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ด๋ฉด์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.


  3. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ

    ํŒŒ์ดํ”„, ๋ฉ”์‹œ์ง€ ํ๊ฐ€ ํ†ต์‹ ์„ ์ด์šฉํ•œ ์„ค๋น„๋ผ๋ฉด, ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๊ณต์œ ํ•˜๋„๋ก ์ง€์›ํ•˜๋Š” ์„ค๋น„๋‹ค.

    ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐ˜๋“œ์‹œ ๋ณดํ˜ธ๋ผ์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ๋„ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ํŒŒ์ดํ”„๋ฅผ ์ด์šฉํ•ด ํ†ต์‹ ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์Šค๋ ˆ๋“œ์ฒ˜๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋„๋ก ํ•ด์ค€๋‹ค๋ฉด ๋”์šฑ ํŽธํ•  ๊ฒƒ์ด๋‹ค.

    ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด์ค€๋‹ค.

    ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์ปค๋„์— ์š”์ฒญํ•˜๋ฉด, ์ปค๋„์€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์ฃผ๊ณ  ์ดํ›„ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

    • ์ค‘๊ฐœ์ž ์—†์ด ๊ณง๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์„œ IPC ์ค‘์— ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•จ

  4. ๋ฉ”๋ชจ๋ฆฌ ๋งต

    ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์ฒ˜๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•ด์ค€๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋งต์€ ์—ด๋ฆฐ ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋งตํ•‘์‹œ์ผœ์„œ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. (์ฆ‰ ๊ณต์œ  ๋งค๊ฐœ์ฒด๊ฐ€ ํŒŒ์ผ+๋ฉ”๋ชจ๋ฆฌ)

    ์ฃผ๋กœ ํŒŒ์ผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

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

    ๋˜ํ•œ, ๋ฉ”๋ชจ๋ฆฌ ๋งต ํŒŒ์ผ์€ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹ (IPC, Inter-Process Communication)์—์„œ๋„ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•œ ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋งตํ•‘ํ•˜๋ฉด, ์ด๋“ค์€ ๋งตํ•‘๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ, ํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋””์Šคํฌ์— ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

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


  5. ์†Œ์ผ“

    ๋„คํŠธ์›Œํฌ ์†Œ์ผ“ ํ†ต์‹ ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•œ๋‹ค.

    ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์†Œ์ผ“์„ ํ†ตํ•ด์„œ ํ†ต์‹ ํ•˜๋Š” ๊ตฌ์กฐ๋กœ, ์›๊ฒฉ์—์„œ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

    ์„œ๋ฒ„(bind, listen, accept), ํด๋ผ์ด์–ธํŠธ(connect)

    โœจ ์†Œ์ผ“์ด๋ž€?

    ์†Œ์ผ“(Socket)์€ ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋์ (endpoint)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์†Œ์ผ“์„ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•œ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ†ต์‹ ์—์„œ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๊ณ , ์„œ๋ฒ„ ์—ญ์‹œ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์ผ“์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ์ˆ˜๋ฆฝ๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์„œ๋กœ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์†Œ์ผ“์€ ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค:

    1. TCP ์†Œ์ผ“: TCP (Transmission Control Protocol)๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ์ ์ธ ํ”„๋กœํ† ์ฝœ๋กœ, ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ์™€ ์ „๋‹ฌ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ง•, ์ด๋ฉ”์ผ ์ „์†ก, ํŒŒ์ผ ์ „์†ก ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    1. UDP ์†Œ์ผ“: UDP (User Datagram Protocol)๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ๋กœ, TCP๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ ์ˆœ์„œ๋‚˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ, ์˜จ๋ผ์ธ ๊ฒŒ์ž„ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ํŒŒ์ด์ฌ์—์„œ๋Š” socket ๋ชจ๋“ˆ์„ ํ†ตํ•ด ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


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

์ถœ์ฒ˜

profile
Step by Step goes a long way. ๊พธ์ค€ํ•˜๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๊ฐ•๋ฏผ์Šน์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€