์ค๋ ๋์ ํ๋ก์ธ์ค์ ๋ํ ๊ฐ๋ ์ดํดํ๊ธฐ
์ค๋ ๋์ ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ์ ์คํ๊ณผ ๊ด๋ จ๋ ์ค์ํ ๊ฐ๋ ์ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ค๋ ๋, ์ค๋ ๋ํ, ๋ฉํฐ์ค๋ ๋, ํ๋ก์ธ์ค, ๋ฉํฐํ๋ก์ธ์ค, ์ธํฐํ๋ก์ธ์ค, ์๋ธํ๋ก์ธ์ค, ํ ์คํฌ, ๊ทธ๋ฆฌ๊ณ ์ฝ๋ฃจํด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
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)
์ฝ๋ฃจํด์ ์คํ์ ์ค์งํ๊ณ ๋์ค์ ์ฌ๊ฐํ ์ ์๋ ๋ ๋ฆฝ์ ์ธ ์๋ธ๋ฃจํด์ ๋๋ค. ์ฝ๋ฃจํด์ ๋น๋๊ธฐ์ ์ธ ์์ ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ์คํ ํ๋ฆ์ ์ ์ฐํ๊ฒ ์ ์ดํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ฝ๋ฃจํด์ ๋จ์ผ ์ค๋ ๋์์ ๋ค์ค ์์ ์ ๋์์ ์ฒ๋ฆฌํ๋๋ฐ ์ ์ฉํ๋ฉฐ, ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ์ค๋ ๋, ์ค๋ ๋ํ, ๋ฉ ํฐ์ค๋ ๋, ํ๋ก์ธ์ค, ๋ฉํฐํ๋ก์ธ์ค, ์ธํฐํ๋ก์ธ์ค, ์๋ธํ๋ก์ธ์ค, ํ ์คํฌ, ๊ทธ๋ฆฌ๊ณ ์ฝ๋ฃจํด์ ๋ํด ์์๋ณด์์ต๋๋ค. ์ด๋ค์ ํ๋ก๊ทธ๋๋ฐ์์ ๋ค์ํ ์์ ์ ๋์์ฑ๊ณผ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ์ค์ํ ๊ฐ๋ ๋ค์ ๋๋ค.
๋๊ธ