-
๐๋ ธ๋ง๋ ๊ฐ๋ฐ์ ๋ถํด๋ฝ '์ค์ฉ์ฃผ์ ํ๋ก๊ทธ๋๋จธ'(1๊ธฐ) ๊ณผ์ #10๐ IT ๋์ 2022. 3. 31. 01:45
๐ ASSIGNMENT 10. 22.03.29 TUE - 03.30 WED
๐ ์ค๋ TIL 3์ค ์์ฝ
- ์ปค๋ค๋ ์์ ์ ๋ ๋ฆฝ์ ์ธ ๋ถ๋ถ๋ค๋ก ์ชผ๊ฐ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ๋ค์ ํฉ์น๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ํํ์ด๋ค.
- ์๊ฐ์ด๋ ์์์ ์์กดํ๋ ์๊ฐ์ ๊ฒฐํฉ์ ๋๋ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ด์ผ ํ๋ค.
- ๊ณต์ ์ํ๋ ํ๋ฆฐ ์ํ์ด๋ค.
๐ ์ค๋ ์ฝ์ ๋ฒ์
6์ฅ. ๋์์ฑ
๐ ์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์
- ๋์์ฑ concurrency
- ์ํํธ์จ์ด ๋์ ๋ฐฉ์
- ๋ ์ด์์ ์ฝ๋ ์กฐ๊ฐ์ด ์คํ๋ ๋ ๋์์ ์คํ ์ค์ธ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ
- ๋์์ฑ์ ์ป์ผ๋ ค๋ฉด ์คํ ์ค์ ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ผ๋ก ์คํ์ ์ ํํ ์ ์๋ ํ๊ฒฝ์์ ์ฝ๋๋ฅผ ๊ตฌ๋ํด์ผ ํจ
- ๋ณดํต์ ํ์ด๋ฒ(fiber), ์ค๋ ๋, ํ๋ก์ธ์ค ๋ฑ์ผ๋ก ๊ตฌํ
- ๋ ๋์ ๋ฐฉ๋ฒ
- ์กํฐ(actor) ๋ชจ๋ธ
- ํ๋ก์ธ์ค๋ค์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ํ๋๋ฉฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ์ง ์๋๋ค.
- ์ฑ๋์ ํตํด ์ ์ ์๋ ๋จ์ํ ์๋ฏธ๋ก ์ ์ฌ์ฉํ์ฌ ์์ฌ์ํต
- ์น ํ
- ๊ฐ์ฒด ์ ์ฅ์์ ๋๋ํ ๊ฒ์-๊ตฌ๋ ์ค๊ฐ์๋ฅผ ํฉํ ๊ฒ์ฒ๋ผ ๋์ํ๋ ์์คํ
- ์กํฐ(actor) ๋ชจ๋ธ
- ๋ณ๋ ฌ์ฑ parallelism
- ํ๋์จ์ด๊ฐ ํ๋ ๊ฒ
- ์ค์ ๋ก ๋์์ ์คํ๋๋ ๊ฒ
- ๋ณ๋ ฌ์ฑ์ ์ป์ผ๋ ค๋ฉด ๋ ๊ฐ์ง ์ผ์ ๋์์ ํ ์ ์๋ ํ๋์จ์ด๊ฐ ํ์
- CPU ํ๋์ ์๋ ์ฌ๋ฌ ๊ฐ์ ์ฝ์ผ ์๋ ์๊ณ , ์ปดํจํฐ ํ ๋์ ์๋ ์ฌ๋ฌ CPU์ด๊ฑฐ๋ ์๋๋ฉด ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๋์ ์ปดํจํฐ์ผ ์๋ ์๋ค
- ์๊ฐ์ ๊ฒฐํฉ
- ๋์์ฑ(๋์์ ์ผ์ด๋๋ ์ผ๋ค)
- ์ฐ๋ฆฌ๋ ๋์์ฑ์ ํ๋ณดํด์ผ ํ๋ค.
- ์๊ฐ์ด๋ ์์์ ์์กดํ๋ ์๊ฐ์ ๊ฒฐํฉ์ ๋๋ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ด์ผ ํ๋ค.
- ์ ์ฐ์ฑ๋ ์ป์ ์๋ ์๊ณ , ์์ ํ๋ฆ ๋ถ์๊ณผ ์ํคํ ์ฒ, ์ค๊ณ, ๋ฐฐํฌ์ ๊ฐ์ ๊ฐ๋ฐ์ ์ฌ๋ฌ ์ธก๋ฉด์์ ์๊ฐ๊ณผ ๊ด๋ จ๋ ์์กด์ฑ๋ ํจ๊ฒ ์ค์ผ ์ ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ถ์ํ๊ธฐ ๋ ์ฝ๊ณ , ์๋ต์๋๋ ๋ ๋น ๋ฅด๋ฉฐ ๋ ์์ ์ ์ธ ์์คํ ์ ๋ง๋ค ์ ์๋ค.
- ํ๋ ๋ค์ด์ด๊ทธ๋จ(activity diagram) - ๋์์ ์ผ์ด๋๋ ๋๋ ๊ฒ๊ณผ ๋ฐ๋์ ์์๋๋ก ์ผ์ด๋์ผ ํ๋ ๊ฒ ๋ฑ์ ์ฐพ์๋ด๊ธฐ ์ํด ์์ ํ๋ฆ์ ๊ธฐ๋ก, ๋์์ ์ํํ ์ ์๋๋ฐ๋ ์์ง ๋์์ ํ๊ณ ์์ง ์์ ํ๋๋ค์ ์ฐพ์๋ด์ ๋ณ๋ ฌ์ฑ์ ๊ทน๋ํํ ์ ์์
- ์์(์๊ฐ์ ํ๋ฆ ์์์ ์ผ๋ค์ ์๋์ ์ธ ์์น)
- ๋์์ฑ(๋์์ ์ผ์ด๋๋ ์ผ๋ค)
- ์ผ๋ฐ์ ์ธ ํํ๋ ์ปค๋ค๋ ์์ ์ ๋ ๋ฆฝ์ ์ธ ๋ถ๋ถ๋ค๋ก ์ชผ๊ฐ์ ๋ณ๋ ฌ๋ก ๊ฐ๊ฐ ์ฒ๋ฆฌํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ ๊ฒ. '์๋ฆญ์์ ์ปดํ์ผ๋ฌ'๊ฐ ์ด๋ฐ ๋ฐฉ์. ์์ํ ๋ ๋น๋ํ๋ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๋ชจ๋๋ก ์ชผ๊ฐ ํ, ๊ฐ๊ฐ์ ๋ณ๋ ฌ๋ก ์ปดํ์ผํ๋ค.
- ๊ณต์ ์ํ๋ ํ๋ฆฐ ์ํ
- ๋น-์์์ ๊ฐฑ์
- ์ด๋ ํ๋ก์ธ์ค๋ ์์ ์ด ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ผ๊ด๋์ด ์์์ ๋ณด์ฅํ ์ ์๋ค
- ์ธ๋งํฌ์ด(semaphore) - ๋จ์ํ ํ ๋ฒ์ ํ ์ฌ๋๋ง์ด ๊ฐ์ง ์ ์๋ ๋ฌด์ธ๊ฐ. ๋ฌผ๋ฆฌ์ ์ธ ์ธ๋งํฌ์ด๋ฅผ ์ฌ์ฉํ ๋ ๋ฌธ์ ์ ์ ๋ฆฌ์์ค์ ์ ๊ทผํด์ผํ๋ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๋น ์ง์์ด ์ธ๋งํฌ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ.
- ๋ฆฌ์์ค ๊ด๋ฆฌ ์ฝ๋๋ฅผ ๋ฆฌ์์ค ํด๋์ค ์์ผ๋ก ์ฎ๊ฒจ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ์ฌ๋ฌ ๋ฆฌ์์ค์ ํธ๋์ญ์
- ๋ฆฌ์์ค ๊ด๋ฆฌ ์ฝ๋๋ ๋ฆฌ์์ค๋ก ๋ณธ๋ค.
- ํธ๋์ญ์
์ด ์๋ ๊ฐฑ์
- ๋ถ๊ท์นํ ์คํจ๋ ๋์์ฑ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ๊ทธ ๋ฐ์ ๋
์ ์ ์ธ ์ ๊ทผ
- ๋๋ถ๋ถ์ ์ธ์ด์๋ ๊ณต์ ๋ฆฌ์์ค์ ๋ ์ ์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค. ๋ฎคํ ์ค(mutex), ๋ชจ๋ํฐ(monitor), ์ธ๋งํฌ์ด ๋ฑ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ธ์ด ์์ฒด์ ๋์์ฑ ์ง์์ด ๋ค์ด ์๋ ์ธ์ด๋ ์๋ค. ๋ฌ์คํธ(Rust)๋ ๋ฐ์ดํฐ์ ์์ ๊ถ์ด๋ผ๋ ๊ฐ๋ ์ ๊ฐ์ ํ๋ค. ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ์ด๋ ํ ์์ ์ ๋จ ํ๋์ ๋ณ์๋ ๋งค๊ฐ ๋ณ์๋ง ์ฐธ์กฐ๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ๋น-์์์ ๊ฐฑ์
- ์กํฐ
- ์์ ๋ง์ ๋น๊ณต๊ฐ ์ง์ญ ์ํ(state)๋ฅผ ๊ฐ์ง ๋ ๋ฆฝ์ ์ธ ๊ฐ์ ์ฒ๋ฆฌ ์ฅ์น(visual processor)
- ๊ฐ ์กํฐ๋ ์ฐํธํจ(mailbox)์ ํ๋์ฉ ๋ณด์ ํ๊ณ ์๊ณ ์กํฐ๊ฐ ์ ์๊ณ ์์ ๋ ์ฐํธํจ์ ๋ฉ์์ง๊ฐ ๋์ฐฉํ๋ฉด ์กํฐ๊ฐ ๊นจ์ด๋๋ฉด์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ค.
- ์ฒ๋ฆฌ๊ฐ ๋๋๋ฉด ์ฐํธํจ์ ๋ค๋ฅธ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ค. ๋ง์ฝ ์ฐํธํจ์ด ๋น์ด ์์ผ๋ฉด ๋ค์ ์ ๋ ๋ค.
- ์กํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ, ๋ต์ฅ, ๋์์ฑ ๋ฑ์ด ์กด์ฌํ์ง ์๋๋ค.
- ์ข์ ์ฌ๋ก - ์ผ๋ญ(Erlang) ์ธ์ด์ ๋ฐํ์, ๋ ๋์๊ฐ ์ํผ๋น์ ์์คํ (ํ๋ก์ธ์ค์ ์์ ์ฃผ๊ธฐ ๊ด๋ฆฌ) ๊ตฌํ
- ํ๋ก์ธ์ค
- ๋ณธ๋ ๋ ์ผ๋ฐ์ ์ธ ๊ฐ์ ์ฒ๋ฆฌ๊ธฐ๋ก, ๋ณดํต ์ด์ ์ฒด์ ๊ฐ ๋์์ฑ์ ์ง์ํ๊ธฐ ์ํ์ฌ ๊ตฌํํ๋ค
- ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ๋ ๋ง์น ์กํฐ์ฒ๋ผ ๋์ํ๋๋ก ๊ด๋ก๋ฅผ ๋ง๋ค์ด ์ ํ์ ์ผ๋ก๋ง ์ฌ์ฉํ ์๋ ์์
- ์น ํ
- ์ผ์ข ์ '์์ ๋ฐฉ์์ฃผ์'์ ๋์์ฑ
- ๋ ๋ฆฝ๋ ํ๋ก์ธ์ค, ์์ด์ ํธ, ์กํฐ ๋ฑ์ด ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ์ ์ ๋ณด๋ฅผ ์์งํด ๋ชจ์๋ค.
- ์ต์ด์ ์น ํ ์์คํ - ๋ฆฐ๋ค(Linda) / ์์งํ ์ฌ์ค์ ์ ํ๋ณ ํํ๋ก ์ ์ฅํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ๋ฆฐ๋ค์ ์๋ก์ด ํํ์ ์ฐ๊ฑฐ๋ ์ ์ฅ๋ ํํ์ ํจํด ๋งค์นญ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์กฐํ
- JavaSpaces, T Spaces ๊ฐ์ด ๋ถ์ฐ๋ ์น ํ ํํ์ ์์คํ ์ด ๋์ด.
- ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฟ๋ง ์๋๋ผ ์๋ฐ ๊ฐ์ฒด ์ ์ฒด๋ฅผ ์น ํ์ ์ ์ฅํ ์ ์๊ณ , ํ ํ๋ฆฟ์ด๋ ์์ผ๋์นด๋๋ฅผ ํตํ ํ๋์ ๋ถ๋ถ ์ผ์น ๊ฒ์ ๋๋ ์ ํ๋ณ ๊ฒ์์ผ๋ก ๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
- ๋ฉ์์ง ์์คํ
- ์นดํ์นด(kafka), NATS
- ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ A์์ B๋ก ๋ณด๋ด๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ง์ ์ผ์ ํ๋ค. ์ด๋ฒคํธ ๋ก๊ทธ์ ํํ๋ก ์์์ฑ์ ์ ๊ณตํ๊ณ , ํจํด ๋งค์นญ ํํ๋ก ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๋ ์ง์ํ๋ค.
- ๋ฉ์์ง ์์คํ ์ ์น ํ์ผ๋ก๋ ์ฌ์ฉํ ์ ์๊ณ , ์ฌ๋ฌ ์กํฐ๋ฅผ ์คํํ๋ ํ๋ซํผ์ผ๋ก๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ. ๋์์ ๋ ๋ชจ๋๋ก ์ฌ์ฉํ ์๋ ์๋ค.
๐ฌ ์ค๋ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋จํ๊ฒ ์ ์ด๋ณด์ธ์
- ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ฑํ ์ง ๊ตฌ์ฑํ ๋๋ถํฐ ์๊ฐ์ ๊ฒฐํฉ์ ๊นจ๋๋ก ๋ ธ๋ ฅํด์ผ ํ๋ค๊ณ ํ๋ค. ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ์ค๊ณํ ๋ ์๊ฐ์ด ํจ์ฌ ๋ ๋ง์ด ์์๋๋ค๋ ๊ฒ์ ์ข ๋ ์ ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
- '๊ณต์ ์ํ๋ ํ๋ฆฐ ์ํ' ํํธ๊ฐ ๊ฑฐ์ ์ดํด๋์ง ์์๋ค. ํ ๋ค์ฏ ๋ฒ์ ๋ ์ฝ์ด์ผ ํ ๊ฒ ๊ฐ๋ค ใ ใ ใ
'๐ IT ๋์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ