ํญ๋ชฉ |
๋ด์ฉ |
ํ๋ก์ ํธ๋ช
|
๐น๏ธ 7์งฑ ์ค๋ฝ์ค - ์ 7 ์ฐ์ฃผ |
ํ
์คํธ ๊ธฐ๊ฐ |
2025.05.20 ~ 2025.05.22 |
๋ด๋น์ ๋ฐ ํ์ |
ํฉ์ ๋น(PL) |
ํ
์คํธ ํ๊ฒฝ |
Windows 11 / macOS Sonoma Chrome 124.0, Edge, Safari ๋ฐ์คํฌํ / ๋
ธํธ๋ถ (FHD ๊ธฐ์ค 1920ร1080) |
-
ํ
์คํธ ๋ชฉ์
- ๊ฒ์ ๋ก์ง ๋ฐ UI ๋์ ๊ฒ์ฆ
- ์ถฉ๋ ์ฒ๋ฆฌ(ํ๋ ์ด์ด ์ด์ โ ์ , ํ๋ ์ด์ด โ ์ ์ด์, ํ๋ ์ด์ด โ ์ ๋ณธ์ฒด) ๊ฒ์ฆ
- ์ ์ ์ ์ฅ(localStorage & Firebase ์ฐ๋) ๊ธฐ๋ฅ ํ์ธ
- BGM on/off ๋ฐ ESC ํค ์ ์ด ๊ฒ์ฆ
-
ํ
์คํธ ๋ฒ์
- ์ธํธ๋ก ํ๋ฉด, How-Play ํ์
, ๊ฒ์ ํ๋ฉด, ํ์
(๊ฒ์์ค๋ฒ, ์ ์ ์ ์ฅ, ์ ์ ๋ณด๊ธฐ)
- ์ถฉ๋ ์ฒ๋ฆฌ
- ํ๋ ์ด์ด ์ด์ โ ์ผ๋ฐ ์
- ํ๋ ์ด์ด โ ์ ๋ณธ์ฒด
- ํ๋ ์ด์ด ์ด์ โ ๋ณด์ค
- ์ (๋ฐ ๋ณด์ค) ์ด์ โ ํ๋ ์ด์ด
- ๊ฐ ์ถฉ๋ ์ ํญ๋ฐ ์ดํํธ, ์ ์/๋ชฉ์จ ๋ณํ, ๋ฌด์ ์ํ ๋์ ํ์ธ
- ํ๋ฉด ๋ฐ์ผ๋ก ๋๊ฐ ์ด์ ์๋ ์ ๊ฑฐ
- ํญ๋ฐ ์ดํํธ์ ์๋ ์ญ์
-
ํ
์คํธ ๋ฐฉ๋ฒ
-
์๋ ํ
์คํธ ์ค์ฌ (ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ํฌํจ)
- ๊ฐ ์ถฉ๋ ์๋๋ฆฌ์ค๋ณ๋ก ํ๋ ์ด์ด ๋ฐ ์ /๋ณด์ค ์์น ๊ณ ์ ํ ๋ฐ๋ณต ํ๋ ์ด
- Console ๋ก๊ทธ ํ์ธ(
spawnExplosion
, Player.explode()
, score
๋ณํ ๋ฑ)
- Firebase ์์ 5์ ๋ญํน ๋ฐ์ดํฐ ๊ฒ์ฆ
๐ ์ฃผ์ ์ด์ ๋ชฉ๋ก
ID |
ํญ๋ชฉ |
์ฌํ ์กฐ๊ฑด |
์ค์ ๊ฒฐ๊ณผ |
์์ ๊ฒฐ๊ณผ |
์ฌ๊ฐ๋ |
BUG-01 |
์ด์ ์์น ์ก๊ธฐ |
ํ๋ ์ด์ด ์์น ์ค์์ผ๋ก ์ด์์ด ๋ฐ์ฌ |
const bulletX = this.x + this.width / 2- ๋์ด; |
์ด์์ด ์ค์์ผ๋ก ์ ๊ฐ๋ค! |
Minor |
BUG-02 |
object ๊ฐ ์ค๋ณต ์์ฑ๋๋ ๋ฌธ์ |
pushState โ popstate ๋ก์ง์์ ๋งค๋ฒ ๋ฌด์กฐ๊ฑด ์ <object> ๋ง ์์ฑ |
currentObj.hidden = true; currentObj.style.display = 'none';
|
์ค๋ธ์ ํธ ์ค๋ณต์ ์ ๋ง์๋ค. |
Minor |
3๏ธโฃ ๊ฒฐ๋ก ๋ฐ ๊ฐ์ ์ฌํญ
- ์ฃผ์ ๋ฌธ์ ์์ฝ
-
์ด์ ์์น ๋ณด์ ์ค๋ฅ (BUG-01)
- ํ๋ ์ด์ด ์ด์ ๋ฐ์ฌ ์ X์ถ ๊ธฐ์ค ์์น ๊ณ์ฐ์์ ์คํ๊ฐ ์์ด, ์ค์์ด ์๋ ์ข์ธก์ผ๋ก ์น์ฐ์ณ ๋ฐ์ฌ๋๋ ํ์ ๋ฐ์
-
์ค๋ธ์ ํธ ์ค๋ณต ์์ฑ (BUG-02)
-
popstate
์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ๊ธฐ์กด <object>
์๋ฆฌ๋จผํธ๋ฅผ ์จ๊ธฐ๊ธฐ๋ง ํ๊ณ , ๋งค ์ด๋ฒคํธ๋ง๋ค ์๋ก์ด ์๋ฆฌ๋จผํธ๋ฅผ ์์ฑํด ๋์ ๋๋ ๋ฌธ์ ๋ฐ์
- ํด๊ฒฐ๋ ์ด์
-
์ด์ ์์น ์ ๋ ฌ
- ๋ฐ์ฌ ์์น ๊ณ์ฐ์์
this.x + (this.width / 2) - (bulletWidth / 2)
ํํ๋ก ์์ ํ์ฌ ํ๋ ์ด์ด ์ค์์์ ์ ํํ ๋ฐ์ฌ๋๋๋ก ๋ณด์
-
์ค๋ณต ์ค๋ธ์ ํธ ๋ฐฉ์ง
-
popstate
ํธ๋ค๋ฌ ์ง์
์ ๊ธฐ์กด currentObj
์ ๋ฌด๋ฅผ ์ฒดํฌํ๊ณ , ์ด๋ฏธ ์กด์ฌํ๋ฉด ์ฌ์์ฑ ๋ก์ง์ ์คํตํ๋๋ก ์กฐ๊ฑด๋ฌธ ์ถ๊ฐ
- ์ถ๊ฐ ํ
์คํธ ํ์ ์ฌ๋ถ
-
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ๊ฒ์ฆ
- ์์ ๋ ์ถฉ๋ ์ฒ๋ฆฌ ๋ฐ ์ค๋ธ์ ํธ ๋ก์ง์ด Edge, Safari ๋ฑ ํ ๋ธ๋ผ์ฐ์ ์์๋ ์ ์ ๋์ํ๋์ง ํ์ธ
-
์คํธ๋ ์ค ํ
์คํธ
- ์งง์ ๊ฐ๊ฒฉ์ผ๋ก ๋น ๋ฅด๊ฒ
pushState
/popstate
๋ฅผ ๋ฐ๋ณต ํธ์ถํ์ ๋๋ ์ค๋ธ์ ํธ๊ฐ ์ค๋ณต๋์ง ์๊ณ , ๋ฉ๋ชจ๋ฆฌ ๋์ ์์ด ์์ ์ ์ผ๋ก ๋์ํ๋์ง ์ ๊ฒ
-
Firebase ์ฐ๋ ์ ๋ขฐ์ฑ
- ๋คํธ์ํฌ ์ง์ฐ ์์๋ ์ ์ ์ ์ฅ ๋ฐ ์กฐํ๊ฐ ์ค๋ฅ ์์ด ์ฒ๋ฆฌ๋๋์ง ์๋๋ฆฌ์ค๋ณ ์ฌ๊ฒ์ฆ
- ํฅํ ๊ฐ์ ๋ฐฉํฅ
-
๋ชจ๋ํ ๋ฐ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๊ฐํ
- ์ถฉ๋ ์ฒ๋ฆฌ, ์ค๋ธ์ ํธ ๊ด๋ฆฌ, ์ํ ์ ํ ๋ก์ง ๊ฐ๊ฐ์ ๋ณ๋ ๋ชจ๋๋ก ๋ถ๋ฆฌํ๊ณ , Jest ๋ฑ ๋จ์ ํ
์คํธ ํ๋ ์์ํฌ๋ก ๊ธฐ๋ฅ๋ณ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ 80% ์ด์ ํ๋ณด
-
์๋ํ CI/CD ํ์ดํ๋ผ์ธ
- GitHub Actions ๋ฑ์ ๋์
ํด ์ฝ๋ ํธ์ ์ ์ ๋ ํ
์คํธยท๋ฆฐํธ ๊ฒ์ฌยท๋น๋ ๊ฒ์ฆ์ ์๋ํํ์ฌ ํ์ง ๋ณด์ฆ