CodeGym์ 50์ผ๋ ๋ผ์ธ์ ํต๊ณผํ์๋ง์(์ค์ ๋ก ์ด ์ง์ ์ ๋งค์ฐ ๋นจ๋ฆฌ ๋๋ฌํ ์ ์์) ์ ์๋์ด ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ์๋ฃํ๋๋ก ์ด๋ํ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ์๊ณ ๊ณ์
จ์ต๋๊น?
์ด๋ฌํ ์์
์ค ์ผ๋ถ๋ ์๋์ ์ค๋ช
๋์ด ์์ต๋๋ค.
์ฑํ
Java Multithreading ํ์คํธ์ ๋ ๋ฒจ 6 ์์๋ ์น๊ตฌ๋ค๊ณผ ์ฑํ
ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ค์ ์ฑํ
์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
ํ๋์ ์๋ฒ์ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ์ํ ํ๋กํ ์ฝ์ ๊ฐ๋ฐํ๊ณ ์์ ๋ง์ ๋ด์ ๋ง๋ค ์๋ ์์ต๋๋ค!
์๋ํ ๋ ์คํ ๋
์ด ์์
์์๋ ๋ ์คํ ๋ ์์
์ ์๋ํํฉ๋๋ค. ์ด ์์
์์ ๊ทํ๋ ๋ ์คํ ๋์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ ค๋ ๋ ์คํ ๋ ๊ด๋ฆฌ์์
๋๋ค.
- ๊ฐ ํ
์ด๋ธ์๋ ์ฃผ๋ฌธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํ๋ธ๋ฆฟ์ด ์์ต๋๋ค.
- ์ฃผ๋ฌธ์ด ์ค๋น๋๋ ๋์ ํ๋ธ๋ฆฟ์ ๊ด๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
- ์์
์ผ์ด ๋๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ํต๊ณ๋ฅผ ๊ฒํ ํ ์ ์์ต๋๋ค.
- ์๋ฆฌ ์ด์ฉ;
- ์ฃผ๋ฌธ์ผ๋ก ์ธํ ์ด ์์ต
- ๊ด๊ณ ๋
ธ์ถ๋ก ์ธํ ์ด ์์ต์
๋๋ค.
์ด ์์
์ ์๋ฃํ๊ธฐ ์ํด ๋๊ฐ ์ ์ฒญ์๋ฅผ ์์ฑํฉ๋๊น? ๋ฌผ๋ก ๋น์ ์ โ Java Multithreading ํ์คํธ์ ๋งจ ๋์์ =)
๊ณ๋ต
CodeGym ๊ต์ก ์ค์ ๋ช ๊ฐ์ง ๋ฉ์ง ๊ฒ์(์: ์ฐ์ฃผ ์ํ
๊ฒ์, Sokoban, ์ ๋ช
ํ ๊ฒ์ 2048, Tetris ๋ฑ)๋ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
์ด๊ฒ์ด ์ต์ํ์ง ์๋ค๋ฉด ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๊ฒ์ ๋ํด ๋ช ๋ง๋ ๋งํ๊ฒ ์ต๋๋ค.
2048๋
2048์ ์ง์ ํ๋ ์ดํ์ง ์์๋๋ผ๋ ์งํ์ฒ , ์นดํ, ๊ทผ์ฒ ์ฑ
์์์ ์ค๋งํธํฐ์ผ๋ก ์ฆ๊ธฐ๋ ์ฌ๋๋ค์ ๋ณธ ์ ์ด ์์ ๊ฒ์
๋๋ค! ์ด ํ์ผ ๊ฒ์์ 2014๋
์ ๋ฑ์ฅํ์ฌ ๋ค์ํ ๋ชจ๋ฐ์ผ ํ๋ซํผ์์ ๋น ๋ฅด๊ฒ ํ์ฐ๋์ด ๊ฐ์ฅ ์ธ๊ธฐ ์๋ "ํ์ ํฌ๋ฌ" ์ค ํ๋๊ฐ ๋์์ต๋๋ค. Java Multithreading ํ์คํธ๊ฐ ๋๋๋ฉด ์ด ์ ๋ช
ํ ๊ฒ์์ ๋ฒ์ ์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค.
์คํ์ด์ค ์ํฐ
๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ๋ง์ ๋์ ๊ฐ์ ธ๋ค์ค ๊ฒ์์ด ๋ฌด์์ธ์ง ์์ญ๋๊น? ์๋์, ์ง์์ด ํ๋ถํ ๊ฒ์ด๋จธ๋ผ๋ฉด ์ง์ํ ์ ์๋ฏ์ด GTA 5๊ฐ ์๋๋๋ค. ์ผ๋ถ ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด ์ญ์ฌ์ ๊ฐ์ฅ ์ฑ๊ณต์ ์ธ ๊ฒ์์ ๊ณ ์ ์ ์ธ Space Invaders์
๋๋ค. ์๋ง๋ ๋น์ ์ ๊ทธ๊ฒ์ ๊ธฐ์ตํ ๊ฒ์
๋๋ค : ์์ ์ ํฌ ๋ ์ด์ ์ ๊ฐ ๋ ๋ฒจ์์ ๋ ๋น ๋ฅด๊ฒ ๊ณต๊ฒฉํ๋ ์๋ง์ ์ธ๊ณ์ธ ๋ฒ๋ . ํฅ๋ฏธ๋ก์ด ์์์ CodeGym์ ์งํํ๋ฉด์ ๋น์ทํ ๊ฒ์ ์์ฑํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
๋ฑ
๋จ์ํ๊ณ ๋งคํน์ ์ธ Snake๋ 1977๋
์์ผ์ด๋ ๋จธ์ ์ ์ฒ์ ๋ฑ์ฅํ ํ ํฌํ
๋์์ต๋๋ค... ์ด๋๋ก ํฌํ
๋์ง ์์๋์?! ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๊ทธ๋ ๊ฒ ๊ฐ๋จํ ๋
ผ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ข
์ข
์ ์ง ๊ฒ์ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฒซ ๋ฒ์งธ ๊ฒ์์
๋๋ค. Java Multithreading ํ์คํธ์ ๋ ๋ฒจ 2์์๋ ์ฑ์ฅํ๋ ๋ฑ์ ์ง์ ๋ง๋ค ์ฐจ๋ก์
๋๋ค.
์์นด๋
ธ์ด๋
Arkanoid๊ฐ ๋
ธ, ๊ณต, ๋ฒฝ๋ ๋ถ์๊ธฐ์ ๊ดํ ๊ฒ์์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด ํฐ ์ฐฉ๊ฐ์
๋๋ค! ์ค์ ๋ก Arkanoid์์๋ ๋น๋ฐ ๋ณ๊ธฐ(๊ณต)์ ๋์์ผ๋ก ๋ฏธ์ง์ ์ฐ์ฃผ์ ์ํ(๋ฒฝ๋)์ ๊ดํตํ๋ ์ด๋ช
์ ๋ชจ์ ์์ ๋ถ๋ฆฌ๋ ์
ํ(ํจ๋ค)์ ์ ์ดํฉ๋๋ค. Java Multithreading ํ์คํธ์ ๋ ๋ฒจ 3์ ๊ธฐ๋ค๋ฆฌ๋ฉด ์ด ์ฅ๋ํ ์ด์ผ๊ธฐ๋ฅผ ์์ ๋ง์ ๋ฒ์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
ํ
ํธ๋ฆฌ์ค
์ด๊ฒ์ 1990๋
๋์ ์์ด๋ค์ด ์ฆ๊ธด ๊ฐ์ฅ ์ ๋ช
ํ ํผ์ฆ ๊ฒ์์ด์ ์๋ จ์์ ์์๋ ์ ์ผํ ์ฑ๊ณต์ ์ธ ๋น๋์ค ๊ฒ์์
๋๋ค. ๊ทธ๊ฒ์ ์๋ง์ ๋ณต์ ํ๊ณผ "ํ
ํธ๋ฆฌ์ค ๊ฐ์"์ด๋ผ๋ ์๋ก์ด ํ์ฉ์ฌ๋ฅผ ๋ณ์์ต๋๋ค. Java Collections ํ์คํธ ์ค์ Alexey Pajitnov์ ๊ฑธ์์ ์์ ๋ง์ ๋ฒ์ ์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
์ก ์ด๊ทธ๋ฆฌ๊ฒ์ดํฐ
๊ต์ก์ด ๋๋๋ฉด ์๋ฒฝํ ์ง์
์ ์ฐพ๊ธฐ ์ํด ๊ตฌ์ฑํ ์ ์๋ ์ง์
์์ง๊ธฐ๋ฅผ ์์ฑํ๊ฒ ๋ฉ๋๋ค ;).
๋ฏฟ์ ์ ์์ต๋๊น? ๊ด์ฐฎ์์. ์ ์๋์ด ์์ธํ ์๋ด๋ฅผ ํด๋๋ฆฝ๋๋ค! ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํ์
์ ๊ฒฐ์ฝ ์ค๋ซ๋์ ์ ์ณ๋์ง ์๋ ๊ฒ์
๋๋ค. ๊ทธ๋์ผ ์ฌ๋ฌ๋ถ์ด ์ฑ์ทจํ ์ง์ ์ ์์ง ์์ ์ ์์ต๋๋ค.
GO TO FULL VERSION