์๋ ํ์ธ์ Foma ์ ๋๋ค!
์ค๋ ์์๋ณผ๊ฑด ํ๋ก์ธ์ค์ ์ฐ๋ ๋์ ์ฐจ์ด์ ๋๋ค.
์ ๋ ์์๋ณด๊ธฐ ์ ์๋ ์ฐ๋ ๋๋ ๊ฐ๋ฐ์ ํ๋ฉด์ ๋ง์ด ๋ค๋ค๋ณด์๋๋ฐ ํ๋ก์ธ์ค๋ ๋ญ์ง? ๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
(๋น์ฐํ ํ๋ก์ธ์ค์ ์ฐ๋ ๋์ ์ฐจ์ด๋ ๋ชฐ๋๊ตฌ์.....ใ )
๊ทธ๋์ ์ค๋์ ํ๋ก์ธ์ค์ ์ฐ๋ ๋๋ ๋ฌด์์ด๊ณ ๊ทธ ์ฐจ์ด์ ์ ๋ญ์ง์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
๋ฐ๋ก ์์ํ ๊ฒ์~
Preview
Program
๋จผ์ ํ๋ก์ธ์ค๋ฅผ ์๊ธฐ์ ์ ํ๋ก๊ทธ๋จ์ด ๋ญ์ง ์๋๊ฒ ์ค์ํฉ๋๋ค!
์ฐ๋ฆฌ๋ ํ์์์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ์์ฃผ ๋งํ๋๋ฐ ํ๋ก๊ทธ๋จ์ด๋ผ๋ ์ ์๊ฐ ๋ฌด์์ผ๊น์?
"์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ์ฌ ๊ทธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ๊ณผ ์์๋ฅผ ๊ธฐ์ ํ์ฌ ์ปดํจํฐ์ ์ฃผ์ด์ง๋ ์ผ๋ จ์ ๋ช ๋ น๋ฌธ ์งํฉ์ฒด"
๋ผ๊ณ ์ ์๋์ด ์๋ค์.
๊ฐ๋จํ ๋งํ๋ฉด ํ๋ก๊ทธ๋จ์ ์ฝ๋๋ก ๋ง๋ค์ด์ง ์งํฉ์ฒด์ธ ๊ฒ์ด์ฃ !
Process
๊ทธ๋ผ ์ด์ ํ๋ก์ธ์ค ๊ฐ ๋ฌด์์ธ์ง ์์๋ณผ๊น์?
ํ๋ก์ธ์ค๋ ?
"์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ"
์ด๋ผ๊ณ ์ ์๋์ด ์์ต๋๋ค.
์ด ๋ง์ ์ฆ, ๊ฐ๋จํ ๋งํ๋ฉด ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด ๊ทธ๊ฒ ํ๋ก์ธ์ค๊ฐ ๋๋๊ฒ์ด์ฃ !
์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ด๊ธฐ ๋๋ฌธ์ ๋ ๋ค๋ฅธ ๋ง๋ก๋ job ํน์ task๋ผ๊ณ ๋ ๋ถ๋ฆฝ๋๋ค.
Memory
๊ทธ๋ฆฌ๊ณ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์์๋ ์์ ๋ง์ ์์ญ์ ํ ๋น๋ฐ๊ฒ ๋๋๋ฐ์.
๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ๋ 4๊ฐ์ง๋ก ๊ตฌ์ฑ๋์ด์๋๋ฐ์ ์ฌ๊ธฐ์ ๊ฐ๋จํ๊ฒ ํ์ค๋ก๋ง ์ค๋ช ๋๋ฆด๊ฒ์~
1.Stack
์คํ์ ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฆฌํด ๊ฐ ๋ฑ์ด ์ ์ ์ฌ์ฉ๋์๋ค๊ฐ ์ฌ๋ผ์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์ญ์ ๋๋ค.
2.Heap
ํ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ ๋นํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋์ ๋ฐ์ดํฐ ์์ญ์
๋๋ค.
3.Data
๋ฐ์ดํฐ๋ ์ ์ญ๋ณ์, ์ ์ ๋ณ์, ๋ฐฐ์ด, ๊ตฌ์กฐ์ฒด ๋ฑ์ด ์ ์ฅ๋๋ ์์ญ์
๋๋ค.
4.Code
์ฝ๋๋ ๋ง ๊ทธ๋๋ก ์ฝ๋ ์์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋๋ค.
Thread
ํ๋ก์ธ์ค๊ฐ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด์๋์ง ์์๋ณด์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด์ ์ฐ๋ ๋๊ฐ ๋ฌด์์ธ์ง ์์๋ณผ๊น์?
์ฐ๋ ๋๋?
"์ฐ๋ ๋(Thread)๋ ์ด๋ ํ ํ๋ก๊ทธ๋จ ๋ด์์, ํนํ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ํ๋ฆ์ ๋จ์ "
๋ผ๊ณ ์ ์๋์ด ์๋ค์.
ํ๋ง๋๋ก ์ค๋ช ํ๋ฉด ํ๋ก์ธ์ค ์์์ ์คํ๋๋ ๋ ์์ธ๊ฑฐ์ฃ .
์ ์ง๊ธ๊น์ง ์์๋ณธ ๊ฒ์ ๊ฐ๋จํ ์ ๋ฆฌํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ๋๋๊ฒ์ด๊ณ ๊ทธ ํ๋ก์ธ์ค ์์
์ด๋ค ํ๋ฆ์ด ์คํ๋๋ฉด ๊ทธ๊ฒ ๋ฐ๋ก ์ฐ๋ ๋๊ฐ ๋๋๊ฒ์ด์ฃ !
๋ฉํฐํ์คํน๊ณผ ๋ฉํฐ์ฐ๋ ๋
๋จผ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๋ ๊ฒ๊ณผ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๋ฅผ ์คํ์ํค๋ ๊ฒ์ ๊ฐ๊ฐ ๋ฌด์์ด๋ผ๊ณ ํ ๊น์?
์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ ๋ฐ๋ก ์์ฃผ ๋ค์๋ ๋ฉํฐํ์คํน(Multi-Tasking) ์ด๋ผ๊ณ ํ๊ณ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๋ ๋ฉํฐ์ฐ๋ ๋(Multi - Thread) ๋ผ๊ณ ํฉ๋๋ค.
์ ๊ทธ๋ ๋ค๋ฉด ๋ฉํฐํ์คํน์ ํ๋ฉด ์ด๋ค ๋จ์ ์ด ์์๊น์?
์์ ๋งํ๋ค์ํผ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค.
์ฆ, ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋๊ณ ๊ทธ๋งํผ ์ฌ์ฉํ๋ ํ์๋ ๋ง์์ ธ์ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ๋จ์ด๋จ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
๋ํ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ๊ณต์ ํ์ง ์์ต๋๋ค.
๋ง์ฝ ๊ณต์ ํ๊ฒ ๋ง๋๋ ค๋ฉด ํ๋ก๊ทธ๋จ ๊ตฌํ์ด ๋ณต์กํด์ง ์ ์์ต๋๋ค.
ํ์ง๋ง ๋ฉํฐ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ ํ๋ก์ธ์ค ์์์ ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒ์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐจ์งํ์ง๋ ์๊ณ
์ฐ๋ ๋๋ ๋ค๋ฅธ ์ฐ๋ ๋์ ์คํ์ ์ ์ธํ ๋ค๋ฅธ ์์ญ ๋ฐ์ดํฐ,ํ,์ฝ๋๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ ๋๊ฐ ์ ๋ณด ๊ณต์ ์๋๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.
Reference
์๋ ๊ธ๋ค์ ์ฐธ๊ณ ํ์ต๋๋ค!
๋ค์ค ์ฒ๋ฆฌ(Multiprocessing)
๋ค์ค ์ฒ๋ฆฌ(Multiprocessing) ์ปดํจํฐ๊ฐ ๋ฐ๋ฌํจ์ ๋ฐ๋ผ ํ๋์ ์์ ๋ฟ๋ง์๋๋ผ ์ฌ๋ฌ ์์ ์ ๋์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด, ํค๋ณด๋ ์ ๋ ฅ, ๋ชจ๋ํฐ ์ถ๋ ฅ, ๋คํธ์ํฌ ์ ์ถ๋ ฅ, ํ์ผ ์ ์ฅ ๋ฑ์ ๋
proneer.tistory.com
ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด
ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด๋ ํ๋ก์ธ์ค์ ์ค๋ ๋, ๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ํด์ ์ ์ดํดํ๊ณ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๊ธฐ์ ๋ฉด์ ์์ ๋จ๊ณจ ์ง๋ฌธ ์ฌํญ์ผ๋ก ๋์จ๋ค.
velog.io
์ค๋์ ์ด๋ ๊ฒ ํ๋ก์ธ์ค์ ์ฐ๋ ๋์ ๋ํด์ ์์๋ณด๊ณ ์ ๋ฉํฐ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋์ง ์์๋ณด์์ต๋๋ค.
๋ง์ฝ ํ๋ฆฐ ์ ์ด๋ ์ง์ ํ์ค ๋ถ๋ถ์ด ์์ผ์๋ฉด ์ธ์ ๋ ๋๊ธ ๋ฌ์์ฃผ์ธ์ ^^
๋๊ธ