CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•˜๊ฒŒ ๋  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•˜๊ฒŒ ๋  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
CodeGym์˜ 50์•ผ๋“œ ๋ผ์ธ์„ ํ†ต๊ณผํ•˜์ž๋งˆ์ž(์‹ค์ œ๋กœ ์ด ์ง€์ ์— ๋งค์šฐ ๋นจ๋ฆฌ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ) ์„ ์ƒ๋‹˜์ด ๋ช‡ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„๋ฃŒํ•˜๋„๋ก ์ดˆ๋Œ€ํ•  ๊ฒƒ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ - 1์ด๋Ÿฌํ•œ ์ž‘์—… ์ค‘ ์ผ๋ถ€๋Š” ์•„๋ž˜์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฑ„ํŒ…

Java Multithreading ํ€˜์ŠคํŠธ์˜ ๋ ˆ๋ฒจ 6 ์—์„œ๋Š” ์นœ๊ตฌ๋“ค๊ณผ ์ฑ„ํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ - 2ํ•˜๋‚˜์˜ ์„œ๋ฒ„์™€ ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์ž์‹ ๋งŒ์˜ ๋ด‡์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค!

์ž๋™ํ™” ๋ ˆ์Šคํ† ๋ž‘

CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ - 3์ด ์ž‘์—…์—์„œ๋Š” ๋ ˆ์Šคํ† ๋ž‘ ์ž‘์—…์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์—์„œ ๊ท€ํ•˜๋Š” ๋ ˆ์Šคํ† ๋ž‘์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋ ค๋Š” ๋ ˆ์Šคํ† ๋ž‘ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.
  1. ๊ฐ ํ…Œ์ด๋ธ”์—๋Š” ์ฃผ๋ฌธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๋ธ”๋ฆฟ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ฃผ๋ฌธ์ด ์ค€๋น„๋˜๋Š” ๋™์•ˆ ํƒœ๋ธ”๋ฆฟ์— ๊ด‘๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  3. ์˜์—…์ผ์ด ๋๋‚˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ†ต๊ณ„๋ฅผ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์š”๋ฆฌ ์ด์šฉ;
    • ์ฃผ๋ฌธ์œผ๋กœ ์ธํ•œ ์ด ์ˆ˜์ต
    • ๊ด‘๊ณ  ๋…ธ์ถœ๋กœ ์ธํ•œ ์ด ์ˆ˜์ต์ž…๋‹ˆ๋‹ค.
์ด ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ๋ˆ„๊ฐ€ ์‹ ์ฒญ์„œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๊นŒ? ๋ฌผ๋ก  ๋‹น์‹ ์€ โ€” Java Multithreading ํ€˜์ŠคํŠธ์˜ ๋งจ ๋์—์„œ =)

๊ณ„๋žต

CodeGym ๊ต์œก ์ค‘์— ๋ช‡ ๊ฐ€์ง€ ๋ฉ‹์ง„ ๊ฒŒ์ž„(์˜ˆ: ์šฐ์ฃผ ์ŠˆํŒ… ๊ฒŒ์ž„, Sokoban, ์œ ๋ช…ํ•œ ๊ฒŒ์ž„ 2048, Tetris ๋“ฑ)๋„ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ - 4์ด๊ฒƒ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์— ๋Œ€ํ•ด ๋ช‡ ๋งˆ๋”” ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

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์˜ ๊ฑธ์ž‘์„ ์ž์‹ ๋งŒ์˜ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์žก ์–ด๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ

๊ต์œก์ด ๋๋‚˜๋ฉด ์™„๋ฒฝํ•œ ์ง์—…์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ง์—… ์ˆ˜์ง‘๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค ;). CodeGym ์—ฐ๊ตฌ ์ค‘์— ์ž‘์„ฑํ•  ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ - 5๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? ๊ดœ์ฐฎ์•„์š”. ์„ ์ƒ๋‹˜์ด ์ž์„ธํ•œ ์•ˆ๋‚ด๋ฅผ ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ•™์—…์„ ๊ฒฐ์ฝ” ์˜ค๋žซ๋™์•ˆ ์ œ์ณ๋‘์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ์—ฌ๋Ÿฌ๋ถ„์ด ์„ฑ์ทจํ•œ ์ง„์ „์„ ์žƒ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION