๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ดํดํ๊ณ ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ๋ถ์ํ ๋ ์ด๋ป๊ฒ ์ด ์ง์์ด ๋์์ด ๋๋์ง ํ์ฉํด ๋ด ๋๋ค.
CPU, Cache
Process์ Thread
Multi-Thread Programming
C# Multithread Part ์ผ๋ถ
Mysql, Redis, Kafka ๋ถ์๋ฅ๋ ฅ
โ์ํ๋ ๊ฐ๋ฐ์โ๋ก ๊ฑฐ๋ญ๋๊ธฐ ์ํ ํ๋,
๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ชจ๋ ๊ฒ
๐ค
๊ฐ๋ฐ ์ค๋ ฅ์ด ์ ์ฒด๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ ธ์. ํน์ ๋ค์ฒ์ง๋ ๊ฑด ์๋๊น์?
๐ฅฒ
๋น์ ๊ณต์ ์ถ์ ํ๋ก๊ทธ๋๋จธ์ธ๋ฐ, ์๋ฆฌ๋ ๊ธฐ๋ฐ ์ง์์ด ๋น์ฝํ ๊ฒ ๊ฐ์ ๋ ์์ฌ์์.
๐ฅ
์๋์ด ํ๋ก๊ทธ๋๋จธ๋ก ์ฑ์ฅํ๊ธฐ ์ํด ์ด๋ค ๊ฑธ ๋ ๊ณต๋ถํ๋ฉด ๋์์ด ๋ ๊น์?
๊ณผ๊ฑฐ์๋ ์คํ์์ค ํ๋ก์ ํธ๋ค์ด ์ ๊ด๋ฆฌ๋์ง ์๊ฑฐ๋, ์ฌ์ฉ์ ๋ถํธํจ ๋๋ ์ค์๋์ด ์์์ต๋๋ค.
๊ทธ๋์ ๋๋ถ๋ถ์ ์๋์ด ํ๋ก๊ทธ๋๋จธ๋ค์ ์บ์ ์๋ฒ๋ ๋ฉ์์ง ๋ธ๋ก์ปค ๋ฑ์ ์ง์ ๋ง๋ค์ด ์ฌ์ฉํ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๊ฐ๋ฐ ํธ๋ ๋๋ ์ด๋ฌํ ๊ฒ๋ค์ ์ง์ ๋ง๋ค๊ธฐ๋ณด๋ค, ์ ๋ง๋ค์ด์ง ์คํ ์์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๋์ด๊ฐ๊ณ ์์ต๋๋ค. ์ง์ ์๋ฒ๋ฅผ ๋ง๋ค๊ณ , ๋ฉํฐ์ฐ๋ ๋(Multi-Thread) ํ๋ก๊ทธ๋๋ฐ์ ํ์ง ์๊ฒ ๋๋ฉด์ ์ ๋ง๋ค์ด์ง ์คํ ์์ค๋ฅผ ์ ๋๋ก ๋ถ์ํ๋ ๊ฒ๋ ์ฝ์ง ์์ ์ผ์ด ๋์์ฃ .
๋๋ถ๋ถ์ ์๋์ด ํ๋ก๊ทธ๋๋จธ๋ค์ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ดํด๋๊ฐ ๋์ง๋ง, ์ง์ ๊ฒฝํํ์ง ์์๋ ์ฃผ๋์ด ๊ฐ๋ฐ์ ์
์ฅ์์๋ ์ด ๊ฐ๊ทน์ ๋ฉ์ฐ๊ธฐ ์ด๋ ต์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋ ํ๋ก๊ทธ๋๋จธ๋ก์ ์ฑ์ฅํ๋ ๊ณผ์ ์ค ๋น ์ง๊ฒ ๋ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ง์์ ์ฌ๋ฌ๋ถ๊ป ์ ํด๋๋ฆฌ๋ ค ํฉ๋๋ค.
์ฌ๋ฌ๋ถ์ ์ธ์์ ์๋ ๋ง์ ์คํ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ๋ฉด์ ๋ฌด์์ ์ผ๋ง๋ ์ป์ด๊ฐ์ค ์ ์๋์?
์์ด๋ฅผ ์ ๋ชจ๋ฅด๋ ์ํ๋ผ๋ฉด ์์ด๋ก ๋ ์ํ๋ ๋๋ผ๋ง๋ฅผ ๋ณธ๋ค๊ณ ์์ด ํํ ์ค๋ ฅ์ด ๋์ง ์์ฃ . ๋ฐ๋ฉด ๋ฃ๊ธฐ์ ์ดํด๊ฐ ์ด๋ ์ ๋ ๋๋ ๋ถ๋ค์ด๋ผ๋ฉด ์ํ๋ ๋๋ผ๋ง๋ง ๋ด๋ ์ค๋ ฅ์ ํค์ธ ์ ์์ต๋๋ค.
๋ฐฑ์๋ ๊ฐ๋ฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
๋ฉํฐ์ฐ๋ ๋ ๊ฐ๋
์ ์ดํดํ๊ณ ์ ๋ง๋ค์ด์ง ์คํ์์ค๋ฅผ ๋ถ์ํ๊ฒ ๋๋ฉด, ๊ธฐ์กด๊ณผ๋ ๋ค๋ฅธ ์๊ฐ์ผ๋ก โ์ ์ด๋ ๊ฒ ๋ง๋ค์ด์ ธ ์๊ตฌ๋โ๊ฐ ์๋ โ๊ทธ๋์ ์ด๋ ๊ฒ ๋ง๋ค์๊ฒ ๊ตฌ๋โ ํ๋ ๊น์ ํต์ฐฐ๋ ฅ์ ํค์ธ ์ ์์ต๋๋ค.
๐ก ๊ฐ์ ์ค์ต ๋ถ๋ถ์ VSCode์ C#์ ์ฌ์ฉํ์ต๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ์ง ์๋ ์ธ์ด๋ผ ๊ฑฐ๋ฆฌ๊ฐ์ด ๋๊ปด์ง์ค ์๋ ์์ง๋ง, ์ฝ๋๋ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ์๊ฐํ๊ธฐ ์ํ ๋๊ตฌ์ผ ๋ฟ ์ด๋ค ๋ณต์กํ ์ฝ๋๋ ๋ค์ด์์ง ์์ต๋๋ค. ๋๊ตฌ๋ ํ ๊ฐ์ง ์ธ์ด์ ์์ฃผ ๊ธฐ์ด์ ์ธ ๋ฌธ๋ฒ(๋ณ์ ์์ฑ, ๋ถ๊ธฐ๋ฌธ, ๋ฐ๋ณต๋ฌธ)๋ง ์์
๋ ๊ฐ์๋ฅผ ๋ณด์๋๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
VSCode๋ฅผ ๋ชฐ๋ผ๋, C#์ ๋ชฐ๋ผ๋, ์ฝ๋๋ฅผ ์คํ์ํฌ ์ค ๋ชจ๋ฅด์
๋ ๊ฐ์ ์์์ ๋ค ์๋ ค๋๋ฆฝ๋๋ค.
๊ธฐ๋ณธ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฌธ๋ฒ ์ ๋๋ง ์๋ฉด ์ดํดํ ์ ์๋ ๋ด์ฉ! ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ ์ค์ต์ ํ๊ธฐ ์ ๊ธฐ๋ณธ์ ์ธ ์ด๋ก ์ ๋ฐฐ์๋๋ค. (Thread, Process)
์ด๋ก ๋ง์ผ๋ก ๋๋์ ์๋๊ฒ ์ฃ ? ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋๋ฅผ ์ง์ ๋ง๋ค์ด๋ณด๊ณ ๊ทธ ํน์ง๊ณผ ์ฑ๊ฒฉ์ ํ์ ํด๋ด ๋๋ค. Github Copilot(์ฝํ์ผ๋ฟ)์ ์ด์ฉํด ์ง์ ์ฝ๋ฉ์ ํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๋ฉํฐ์ฐ๋ ๋๊ฐ ๋ฌด์์ธ์ง ๋ชธ์ผ๋ก ์ฒด๊ฐํ ์ ์์ต๋๋ค. ์ง์ ์ฝ๋ฉ๋ ํจ๊ป ํ์์ฃ !
๋ฉํฐ์ฐ๋ ๋์ ๋ํด ๋ฐฐ์ด ์ง์์ผ๋ก, ์ฐ๋ฆฌ์ ํต์ฐฐ๋ ฅ์ ๋ฌ๋ผ์ก์ต๋๋ค. ๋ฌ๋ผ์ง ํต์ฐฐ๋ ฅ์ผ๋ก Redis(๋ ๋์ค), MySQL ๊ทธ๋ฆฌ๊ณ Kafka(์นดํ์นด)๋ฅผ ๋ถ์ํด ๋ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ MSA(๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ) ๋ฐ Scale-out๊น์ง๋ ์ดํด๋ด ์๋ค. ์ด๊ฒ์ผ๋ก ์ธ์์ ์๋ ์๋ง์ ์คํ์์ค ๊ทธ๋ฆฌ๊ณ ์ํคํ ์ฒ๊ฐ ๋์ ์ค์น์ด ๋ฉ๋๋ค.
Q. ๋น์ ๊ณต์๋ ๋ค์ ์ ์๋ ๊ฐ์์ธ๊ฐ์?
๋ค, ๊ทธ๋ ์ต๋๋ค. ๊ธฐ์ด์ ์ธ ์์ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฒฝํ๋ง ์๋ค๋ฉด ๋ณ๋์ ์ฌ์ ์ง์์ ํ์ ์์ต๋๋ค.
Q. ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์ ์ค๋นํ ๊ฒ ์์๊น์?
์์ต๋๋ค. ๊ฐ์์์ ์ฌ์ฉํ๋ C# ์ฝ๋๋ ๊ฑฐ์ Pseudocode(์์ฌ์ฝ๋)๋ ๋ค๋ฆ์ด ์์ต๋๋ค.
Q. ์ ๋ฉํฐ์ฐ๋ ๋๋ฅผ ๋ฐฐ์์ผ ํ๋์?
์ํ๋ ๊ฐ๋ฐ์ ์ค, ๋ฉํฐ์ฐ๋ ๋๋ฅผ ๋ชจ๋ฅด๋ ๋ถ๋ค์ ๊ฑฐ์ ์์ต๋๋ค.
์ด ๊ฐ์๋ ๋ฉํฐ์ฐ๋ ๋์ ๋ํ ๋ถ์กฑํ ์ดํด๋ฅผ ์ฑ์์ผ๋ก์จ ๋ ๋์๊ฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก์์ ๊ธฐํ์ ๋ง๋ จํ ์ ์๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
๐ข ์๊ฐ ์ ํ์ธํด์ฃผ์ธ์
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
ํ๋ก๊ทธ๋๋ฐ ์ค๋ ฅ์ด ์ ์ฒด๋์ด ์๋ ๋ถ
๋น์ ๊ณต์ ์ถ์ ํ๋ก๊ทธ๋๋จธ ๋ถ
์๋์ด ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ณ ์ถ์ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
ํ๋ก๊ทธ๋๋ฐ ์ผ๋ฐ (ํ ๊ฐ์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ ๊ฒฝํํด ๋ณธ ์ ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค.)
2,358
๋ช
์๊ฐ์
20
๊ฐ
์๊ฐํ
11
๊ฐ
๋ต๋ณ
4.9
์
๊ฐ์ ํ์
2
๊ฐ
๊ฐ์
์๋ ํ์ธ์~
Game Client, Game Server, Embedded, Blockchain ๊ฐ๋ฐ ๋ฑ๋ฑ..
๋ค์ํ ๊ฒฝํ์ด ์๋ 20๋ ์ฐจ ์๋ฒ ํ๋ก๊ทธ๋๋จธ์ ๋๋ค.
ํ์ฌ ๋ฉํฐ์ค์ฝ์์ ์๋ฒ1ํ ํ์ฅ์ผ๋ก ์ฌ์ง์ค์ ๋๋ค.
์ ์ฒด
21๊ฐ โ (3์๊ฐ 28๋ถ)
๋ฌด๋ฃ