๐Ÿ”Žetc.

์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค: ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์™€ ์ž‘์—… ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ ๊ฐœ๋…

taesooya 2023. 5. 29.

 

 

์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ

์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์Šค๋ ˆ๋“œ, ์Šค๋ ˆ๋“œํ’€, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ, ํ”„๋กœ์„ธ์Šค, ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค, ์ธํ„ฐํ”„๋กœ์„ธ์Šค, ์„œ๋ธŒํ”„๋กœ์„ธ์Šค, ํ…Œ์Šคํฌ, ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋ฃจํ‹ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. ์Šค๋ ˆ๋“œ (Thread)

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

 

1-1. ์Šค๋ ˆ๋“œํ’€ (Thread Pool)

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

 

1-2. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ (Multi Thread)

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ž‘์—…์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „์ฒด์ ์ธ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2. ํ”„๋กœ์„ธ์Šค (Process)

ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ๋˜๋ฉฐ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

2-1. ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค (Multi Process)

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

 

2-2. ์ธํ„ฐํ”„๋กœ์„ธ์Šค (Inter Process)

์ธํ„ฐํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€์˜ ํ†ต์‹ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ , ๋ฉ”์‹œ์ง€ ์ „์†ก ๋“ฑ์„ ํ†ตํ•ด ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋“ค์€ ์„œ๋กœ์˜ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๊ณ  ํ˜‘๋ ฅํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2-3. ์„œ๋ธŒํ”„๋กœ์„ธ์Šค (Sub Process)

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

 

 

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

 

3. ํ…Œ์Šคํฌ (Task)

ํ…Œ์Šคํฌ๋Š” ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์Šคํฌ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ, ํ•„์š”ํ•œ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์Šคํฌ๋Š” ์Šค๋ ˆ๋“œ๋‚˜ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

4. ์ฝ”๋ฃจํ‹ด (Coroutine)

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

 

 

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

๋Œ“๊ธ€