๐งญ ํ๋ ·์ค๋ ฅ๋ณ ๋ฐฐ์ฐ๋ ์์ ๋ก๋๋งต — ์ด๋ฑ·์ค๋ฑ ๋ง์ถค ๊ฐ์ด๋ | ์ฝ๋ฉ์คํ๋ฉ Part 8
์๋
ํ์ธ์ ์ฝ๋ฌ์
๋๋ค ๐
“๋ฌด์์, ์ธ์ , ์ด๋ค ์์๋ก ๋ฐฐ์์ผ ํ ๊น์?” ์ด ์ง๋ฌธ์ ๋ฑ ๋ง์ถ ํ๋
·์ค๋ ฅ๋ณ ๋ก๋๋งต์ ๊ณต๊ฐํฉ๋๋ค.
์๋ ํ๋ฅผ ๋ฐ๋ผ์ค๋ฉด Python → JavaScript → Canvas → ๊ฒ์ ํ๋ฆ(FSM)๊น์ง ๋ถ๋ด ์์ด ์์ฃผํ ์ ์์ด์.
์งง๊ณ ํ์คํ ์ฑ์ทจ์๊ฐ์ ํผ๋๋ฐฑ๋ฐ๋ณต๋ณด๋ค ๋ณํ๊ฒ์ ํ๋ฆ ์ค์ฌ
1️⃣ ํ๋ ·์ค๋ ฅ ๋งค์นญํ
| ๋์ | ๋ชฉํ | ์ถ์ฒ ๋ถ๋/์ฃผ | ํต์ฌ ์ฃผ์ | ์ฑ์ทจ ๊ฒฐ๊ณผ |
|---|---|---|---|---|
| ์ด๋ฑ ์ ํ๋ (1~3) | ์ฝ๋ฉ ‘์ฌ๋ฏธ’ ๋ฐ๊ฒฌ | 15~20๋ถ × 2ํ | ๋ธ๋ก์ ์ฌ๊ณ , ์์·๋ฐ๋ณต, ๊ฐ๋จ ์ด๋ฒคํธ | Scratch ๋ฏธ์ 5๊ฐ, ๊ฐ๋จ ์ ์ ๊ฒ์ |
| ์ด๋ฑ ๊ณ ํ๋ (4~6) | ํ ์คํธ ์ฝ๋ฉ ์ ๋ฌธ | 25๋ถ × 2~3ํ | Python ๊ธฐ๋ณธ(๋ณ์·์กฐ๊ฑด·๋ฐ๋ณต·ํจ์), ๋๋ค | ์ซ์๋ง์ถ๊ธฐ/๊ฐ์๋ฐ์๋ณด/์ฃผ์ฌ์ ๊ฒ์ |
| ์ค๋ฑ ๊ธฐ์ด | ์น ์ํธ์์ฉ ์ดํด | 30๋ถ × 3ํ | HTML+JS, DOM, ์ด๋ฒคํธ, ํ์ด๋จธ | ๋ฒํผ·์ ๋ ฅ·๋ฐ์ํ ์์ ฏ ๋ง๋ค๊ธฐ |
| ์ค๋ฑ ํ์ฅ | ์๊ฐ ์ ๋๋ฉ์ด์ | 35๋ถ × 3ํ | Canvas, ํ๋ ์ ๋ฃจํ, ์ถฉ๋, ์ ์ | ๋ฏธ๋ ๋ฌ๋/์ํ ํ๋กํ ํ์ |
| ์ค๋ฑ ์ฌํ | ๊ฒ์ ํ๋ฆ ์ค๊ณ | 40๋ถ × 3~4ํ | ์ํ๋จธ์ (FSM), ์ฌ ์ ํ, ์ผ์์ ์ง/์ค๋ฒ | ํ๋ก์ฐ ์๋น ‘์์ฃผํ’ 2D ๋ฏธ๋๊ฒ์ |
2️⃣ 4์ฃผ ๋ฌ๋ํ๋(ํ๋ ๊ณตํต, ๋์ด๋๋ง ์กฐ์ )
| ์ฃผ์ฐจ | ํ์ต ๋ชฉํ | ์ค์ต ์์ | ์์ฃผ ์ฒดํฌ |
|---|---|---|---|
| 1์ฃผ์ฐจ | ์ ๋ ฅ→์ฒ๋ฆฌ→์ถ๋ ฅ ํ๋ฆ ์ก๊ธฐ | Python ์ซ์๋ง์ถ๊ธฐ / JS ์ ๋๋ค ๋ฒํผ | ์ ๋ ฅ ์์ ๋ ์์ธ ๋ฉ์์ง ์ฒ๋ฆฌ |
| 2์ฃผ์ฐจ | ๋ฐ๋ณต·์กฐ๊ฑด ์กฐํฉ์ผ๋ก ๊ท์น ๋ง๋ค๊ธฐ | ๊ฐ์๋ฐ์๋ณด(์ค์ฝ์ด), ํ์ด๋จธ ์นด์ดํธ | 3ํ 2์ ์น ๋ฃฐ ๊ตฌํ |
| 3์ฃผ์ฐจ | ์๊ฐํ & ์ ๋๋ฉ์ด์ | Canvas ์ ํ๊ธฐ๊ธฐ, ํค ์ด๋ | ๋ธํํ์ ์ ์ฉ(ํ๋ ์ ๋ ๋ฆฝ ์๋) |
| 4์ฃผ์ฐจ | ์ํ๋จธ์ ์ผ๋ก ํ๋ฆ ์์ฑ | Title→Play→Pause→GameOver | ์ฌ์์/๋์ด๋ ์์น ๋ฃจํ ๊ตฌ์ฑ |
3️⃣ ๋์ด๋ ์กฐ์ ๊ฐ์ด๋(๊ฐ์ ๊ณผ์ , ๋ค๋ฅธ ๊น์ด)
| ๊ณผ์ | ๋ ๋ฒจ 1 (์ด๋ฑ ์ ·๊ณ ) | ๋ ๋ฒจ 2 (์ค๋ฑ ๊ธฐ์ด) | ๋ ๋ฒจ 3 (์ค๋ฑ ํ์ฅ/์ฌํ) |
|---|---|---|---|
| ์ซ์๋ง์ถ๊ธฐ | ๋๋ค(1~10), 5๋ฒ ๊ธฐํ | ๋์ด๋: ๋ฒ์/๊ธฐํ ์ UI๋ก ์ ํ | ์ ์·์ฝค๋ณด·ํํธ๋งต(์ถ์ธก ๋ถํฌ) ๋ก๊ทธ |
| ์ ๋ฐ๊พธ๊ธฐ ๋ฒํผ | ํด๋ฆญ ์ ๋ฐฐ๊ฒฝ์ ๋๋ค | ์ ์ด๋ฆ ํ์, ์ต๊ทผ 5๊ฐ ๊ธฐ๋ก | ํค๋ณด๋/ํฐ์น ์ ๋ ฅ ํตํฉ, ์ ๊ทผ์ฑ ์๋ฆผ |
| ๋ฌ๋ ๋ฏธ๋๊ฒ์ | ์ ํ/์ฅ์ ๋ฌผ/์ ์ | ์ฝ์ธ/์์ดํ /์ฒด๋ ฅ | FSM·ํ์ด์ฆ ๋์ด๋·์ ์ฅ/๋ถ๋ฌ์ค๊ธฐ |
1) ๋ณธ์ธ์ ํ๋ ·๋ ๋ฒจ์ ํ์์ ๊ณ ๋ฅด๊ณ 4์ฃผ ๊ณํ์ ์บ๋ฆฐ๋์ ์ ๊ธฐ.
2)
์ซ์๋ง์ถ๊ธฐ์ ํํธ(Up/Down)์ ๋จ์ ๊ธฐํ UI ์ถ๊ฐ.3) ๋ฌ๋ ๊ฒ์์ ์ผ์์ ์ง(Pํค)์ ์ฌ์์(Rํค) ๋ฃ์ด๋ณด๊ธฐ.
❓ Q&A ์ฝ๋
Q1. Python๊ณผ JS ์ค ๋จผ์ ๋ญ ํ ๊น์?
๐ ์ด๋ฑ์ Python๋ก ๋
ผ๋ฆฌ ๊ธฐ์ด → JS๋ก ์๊ฐ ๋ฐ์. ์ค๋ฑ์ ๋ ์ธ์ด ๋ณํ OK.
Q2. Canvas๋ ์ธ์ ์์ํ์ฃ ?
๐ ์กฐ๊ฑด·๋ฐ๋ณต·์ด๋ฒคํธ๋ฅผ ํ ๋ฒ์ฉ ์จ๋ณธ ๋ค ๋ฐ๋ก ์์! ์๊ฐ ํผ๋๋ฐฑ์ด ๋๊ธฐ๋ฅผ ์ฌ๋ ค์ค์.
Q3. ๋น ๋ฅด๊ฒ ๊ฐ๋ ๋๋์?
๐ ๊ฐ๋ฅํ์ง๋ง, ๊ฒ์ ํ๋ฆ(FSM)์ ๊ผญ ์ฒ์ฒํ—์์ฑ๋๋ ํ๋ฆ์์ ๊ฒฐ์ ๋ฉ๋๋ค.
๐ ๋ค์ ๋จ๊ณ ์๊ณ
Part 8-1์์๋ ์ด ๋ก๋๋งต์ ๋ฌ๋ ฅ ํ ํ๋ฆฟ์ผ๋ก ์ฎ๊ฒจ ์ฃผ๊ฐ ์ฒดํฌ๋ฆฌ์คํธ์ ์ฑ์ทจ ๋ฐฐ์ง๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ HTML์ ์ ๊ณตํฉ๋๋ค.


