1. ํ๋ก์ ํธ ์์ด๋์ด์ ๋ฐฐ๊ฒฝ
์ต๊ทผ ๋ฐฐ๋ฌ์๋ฏผ์กฑ ์ก์์ฐฝ๋์ ์ทจ์ ์ค๋ช ํ์์ "1๋ช ์ด๋ผ๋ ๋๊ตฐ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๊ธฐ ์ํ ํ๋ก์ ํธ๋ฅผ ํด๋ณธ ์ ์๋์?"๋ผ๋ ์ง๋ฌธ์ ๋ฐ์๋ค. ๋ฌผ๋ก ์ฒ์ ๋ฐ์๋ณธ ์ง๋ฌธ์ ์๋์๋ค. '์ฌ๋๋ค์ด ์ ๋ง๋ก ์ฌ์ฉํ ๋งํ ํ๋ก์ ํธ๋ฅผ ํด๋ณด์ธ์' ๋ฑ๊ณผ ๊ฐ์ ์ทจ์ง๋๊น. ํ์ง๋ง ์ฝ 2๋ฌ ๊ฐ์ ๊ธด ์ฌํ์ ๋ง์น๊ณ ์จ ํ, ๋๋ ์ด๋ค ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์์ง, ๋ด๊ฐ ์ฆ๊ฒ๊ฒ ๋ง๋ค ์ ์๋ ํ๋ก์ ํธ๋ ๋ญ๊ฐ ์๋์ง ๊ณ ๋ฏผํ๋ ์ฐจ์ ์ด ์ง๋ฌธ์ ๋ฐ๊ฒ ๋๊ณ , ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๋กํ ์์ฑ ์ฑ์ ๋ง๋ค๋ฉด ๋๊ฒ ๋ค๋ ์์ด๋์ด๊ฐ ๋ ์ฌ๋๋ค.
์ด๋ฆด ๋๋ถํฐ ๊ทธ๋ฆผ์ ์ข์ํ๊ณ , ๋์์ธ ์ ๊ณต์ ์ ํํ ํ์๋ ๊พธ์คํ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์๋ค. ์ดํ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์ํด ๋ ธ๋ง๋์ฝ๋ ๋์ค์ฝ๋์ ์ฐธ์ฌํ๊ฒ ๋์๊ณ , ์ด ๊ณณ์์๋ ์กฐ๊ธ์ฉ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๊ธฐ ์์ํ๋ค. ์ฒ์์๋ ๊ณต๋ถํ๊ธฐ ์ซ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ํ์ํ ์ด๋ชจ์ง๋ฅผ ๋ง๋ค์๋๋ฐ, ์ดํ์ '๋์์ ์ด๋ชจ์ง ๊ณต๋ฐฉ'์ด๋ผ๋ ์ฐ๋ ๋๋ฅผ ์ด์ํ๊ฒ ๋ ์ ๋๋ก ๋ง์ ํธ์์ ๋ฐ์๋ค.
์ด๋ชจ์ง๋ฅผ ๋ง๋ค๋ค ๋ณด๋, ์ด๋ชจ์ง ๊ทธ๋ฆผ์ ํ๋กํ ์ฌ์ง์ผ๋ก ์ฌ์ฉํ๊ธธ ์ํ๋ ๋ถ๋ค๋ ์๊ฒผ๋ค. ํ์ฌ๋ฅผ ์ ๋ฌผ๋ฐ์ ๋ง์ ๋ถ๋ค์ด ๋ด ๊ทธ๋ฆผ์ผ๋ก ๋ง์กฑ์ค๋ฝ๊ณ ํ๋ณตํดํ์ จ๋ค.
๋จ์ํ ์ทจ๋ฏธ ์ํ๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ฆฐ ๊ฒ ๋ฟ์ธ๋ฐ, ๊ทธ ๋์ ์๊ฐ์น๋ ์์๋ ์ข์ ์ ๋ ๋ง์ด ์๊ฒผ๋ค. ๊ทธ๋ฆผ์ ๋ฐ์ ๋ถ๋ค๊ณผ๋ ํน๋ณํ ๋ ์นํด์ง๊ธฐ๋ ํ๊ณ , ์ ์ ์ด ์๋ ๋ถ๋ค๊ณผ๋ ๋ํ๋ฅผ ํธ๊ฒ ๋ ๊ณ๊ธฐ๋ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๊ฐ๋ฐ ๊ณต๋ถ๋ก ์ด๋ ค์ ํ ๋ ๋ ํฐ ๋์๋ค๊ณผ ์์์ ๋ฐ๊ธฐ๋ ํ๋ค. ๊ฐ๋ฐ๊ณผ๋ ์ ํ ์๊ด ์์ด๋ณด์ด๋ ๊ทธ๋ฆผ ์์ ์ด ์ทจ๋ฏธ๋ฅผ ๋์ด ๋ง์ ์ฌ๋๋ค๊ณผ ์ํตํ๋ ๊ณ๊ธฐ๊ฐ ๋๋ค!
์ด๋ฐ ๊ฒฝํ์ ๋ฐํ์ผ๋ก, ์๊ฐ๋ณด๋ค ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๊ท์ฌ์ด ๊ทธ๋ฆผ๋ค์ ์ข์ํ๋ฉฐ, ๊ท์ฌ์ด ํ๋กํ ์ฌ์ง์ ๊ฐ๊ณ ์ถ์ดํ๋ค๋ ๊ฑธ ์๊ฒ ๋๋ค. ์ดํ์๋ ์ข ์ข ํ๋กํ ๊ทธ๋ฆผ์ ์์ฒญํด์ฃผ์๋ ๋ถ๋ค์ด ๊ณ์ จ์ง๋ง, ์ง์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์ค ๋ฌผ๋ฆฌ์ & ์ฌ์ ์๊ฐ์ด ๋ถ์กฑํด์ก๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด '๋์์ ๊ทธ๋ฆผ์ผ๋ก ๋ง๋๋ ๊ฐ๋ฐ์ ํ์ฌ ์์ฑ ์น์ฑ' ์ ๊ธฐํํ๊ฒ ๋๋ค.
์์ฝ
๊ฐ๋ฐ ๊ณต๋ถ ๋์ค์ฝ๋์์ ์ทจ๋ฏธ๋ก ์ด๋ชจ์ง์ ํ์ฌ ๊ทธ๋ฆผ์ ์ง์ ๊ทธ๋ ค ์ ๊ณตํจ
→ ๊ท์ฌ์ด ๊ฐ๋ฐ์ ํ์ฌ์ ๋ํ ๋์ฆ๊ฐ ์์์ ์ธ์งํ์ง๋ง, ์ง์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์ค ์ฌ์ , ๋ฌผ๋ฆฌ์ ์๊ฐ ๋ถ์กฑ์ ๋ฌธ์ ๋ฐ์
→ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ท์ฌ์ด ๊ทธ๋ฆผ์ผ๋ก ๊ฐ๋ฐ์ ํ์ฌ๋ฅผ ์์ฑํ ์ ์๋ ์น์ฑ์ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ .
2. ํ๋ก์ ํธ ๋ชฉํ์ ๊ธฐ๋ฅ
์ด ์น์ฑ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ๋ค:
- ๊ท์ฌ์ด ์ด๋ฏธ์ง/์ผ๋ฌ์คํธ ์ ๊ณต: ๋์(๋)์ ๊ทธ๋ฆผ์ผ๋ก ๋ค์ํ ์ต์ ์ ์ ํํ ์ ์๋ ์ ํํ๋ ๊ทธ๋ฆผ ํ์.
- ๊ฐ๋ฐ์ ํ์ฌ ์์ฑ: Canvas API๋ฅผ ์ด์ฉํด ์ฌ์ฉ์(๊ฐ๋ฐ์)๊ฐ ์ํ๋ ํ์ฌ๋ฅผ ๋ง๋ค๊ณ ๊พธ๋ฐ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต.
- ํ์ฌ ์ ์ฅ๊ณผ ๊ณต์ : ์ฌ์ฉ์๊ฐ ๋ง๋ ํ์ฌ๋ฅผ ์ ์ฅํ ์ ์๊ณ , ๋ง๋ ํ์ฌ๋ฅผ ๊ณต์ ํ ์ ์๋ ๊ฒ์ํ(์๋ ๊ฒ์ํ) ๊ธฐ๋ฅ์ ์ถ๊ฐํด ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
์ด ์น ์ฑ์ ํตํด ๊ฐ๋ฐ์๋ค์ด ์ฝ๊ฒ ์์ ๋ง์ ๊ท์ฌ์ด ํ๋กํ ์ฌ์ง์ ๋ง๋ค๊ณ , ์ด๋ฅผ ๊ณต์ ํ๋ฉฐ ์ํตํ ์ ์๋ ํ๋ซํผ์ ์ ๊ณตํ๊ณ ์ ํจ!
์ฌ์ฉํ ๊ธฐ์ ์คํ : JS, HTML, CSS
์ฐ์ ํ๋์ ํ์ด์ง์์ ์ถฉ๋ถํ ๊ตฌ๋์ด ๊ฐ๋ฅํ ๊ฑฐ๋ผ ์์ธก๋์ด Vanilla JS ์ ์ฌ์ฉํด ์ด๊ธฐ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ๋ค. (JS ๋ณต์ต๋ ํ ๊ฒธ!)
์ดํ ํ์ํ๋ค๋ฉด REACT ๋ก ๊ธฐ์ ๊ต์ฒด๋ฅผ ํ ์์ ์ด๋ค.
์์ ๊ธฐ๊ฐ
1์ฐจ ๋ฐฐํฌ : 9์ 7์ผ
์งํ ์ํฉ
- ๊ธฐ์กด์ ์๋ ๊ทธ๋ฆผ ์ฌ์ฉ -> ์ด๋ฏธ์ง ๋ฒํผ์ผ๋ก canvas ์ ๊ทธ๋ฆผ์ ๋ฃ๊ณ ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ
- ํ์ ๊ตต๊ธฐ์ ์ปฌ๋ฌ ์ ํ ๊ฐ๋ฅ & ํ์ผ๋ก ์์ ๋๋ก์ ๊ฐ๋ฅ
- ๋ก์ปฌ์ ์๋ ์ด๋ฏธ์ง ํ์ผ์ canvas ๋ด์ ๋ฃ๋ ๊ธฐ๋ฅ
์งํ ์ํฉ์ ๊ธฐ๋กํ๋ฉฐ ํ๋ ๋๋ง๋ค ๋ง๋ค์ด๋ณผ ์์ ! :)