-
Notifications
You must be signed in to change notification settings - Fork 4
๐๐ป ํ๊ณ
2์ฃผ์ฐจ์ ์ ์ ๊ด๋ฆฌ ์์คํ ์ ๋ฐฑ์๋ ๋ถ๋ถ์ ๊ตฌํํ๋ค. ํ์ ์ค ํ์ง์ด์ ํ์ดํ๋ก๊ทธ๋๋ฐ ํ์์ผ๋ก Navigator์ Driver๋ฅผ ๋ฒ๊ฐ์ ๊ฐ๋ฉด์ ๊ตฌํํ์ผ๋ฉฐ, ์์ ๊ธฐ๋ฅ๋ค ํ๋ํ๋ ๋ค ์ถฉ๋ถํ ํ์๋ฅผ ๊ฑฐ์น ํ์ ์์ฑํ๋ค. ํ์คํ ํ์ด์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋, ์ฝ๋ ํ์ง์ด ๋์ ๋๊ฒ ์ข์์ก์ผ๋ฉฐ, ์๋ก ์ค๊ฐ ์ค๊ฐ ์๋ฌธ์ ๊ณ์ ๋์ง๋ฉฐ ์์ฑ ์ค์ธ ์ฝ๋์ ๋ฐฉํฅ์ฑ์ ๋์์์ด ์์ฌํ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ 2์ฃผ์ฐจ์ ํ ์ ์๋ ์ต์ ์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์์ผ๋ฉฐ ๊ฒฌ๊ณ ํ ์ ์ ๊ด๋ฆฌ ์์คํ ์ด ์์ฑ๋์๋ค. ํํํ ๋ฆฌํฉํ ๋ง๋ ์งํํ๋ฉด์ ์ฝ๋ ํ์ง์ ๋์ด๋ ค ๋ ธ๋ ฅํ๋ค. ํ ์ฃผ๊ฐ ๋ง์ ์์ ํ์ตํ๋๋ผ ํผ๊ณคํ์ง๋ง ์ฆ๊ฒ๊ณ ๋ณด๋ ์๋ ํ ์ฃผ ์๋ค.
์ด์ ํ๋ก์ ํธ๋ค์ ๋นํด ํ๋ก์ ํธ๋ ๋ง์ผ์คํค, ์ด์ ๋ฑ์ ์ฌ์ฉํ์ฌ ์ผ์ ์ ๋ณด๋ค ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์์ด ๋งค์ผ ๊ฐ๋ฐ์ ์์ํ๊ธฐ ์ ์ ์ค๋ ํ ์ผ ๋ฑ์ ๋ํด ์๊ฐํ๊ธฐ ์ข์๊ณ , ์ผ์ฃผ์ผ ๋์ ์ผ์ ๋ถ๋ฐฐ๊ฐ ๊ท ๋ฑํ๊ฒ ์ด๋ฃจ์ด์ง ์ ์์๋ ์ ์ด ์ข์์ต๋๋ค. ๋ค๋ง, ํน๊ฐ์ด๋ ๋คํธ์ํน ๋ฐ์ด๋ก ์ธํด ์์ ํ๋ ์ผ์ ์ ๋ชจ๋ ์ํํ์ง๋ ๋ชปํ์ง๋ง, ๋ชจ๋ ํ์์ด ์ฃผ๋ง ์์ ์ ํตํด ์ผ์ ์ด ๋ฐ๋ฆฌ์ง ์๋๋ก ๋ ธ๋ ฅํ์์ต๋๋ค. ๋ค์ ์ฃผ์ฐจ๋ถํฐ๋ ๊ฐ์์ ์ผ์ ์ ๊ณ ๋ คํ์ฌ ํด์ผ์ ๋ณด์ฅํ๋ ๋ฑ๐ ์ข ๋ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
ํ์ดํ๋ก๊ทธ๋๋ฐ ํ์๊ณผ ์ ์ฌํ๊ฒ ์งํํ๋ฉด์ ๋์น๊ณ ์๋ ๋ถ๋ถ์ ๋์น์ง ์์ ์ ์์๊ณ , ์๋ก ์๊ฒฌ์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ๊น๋ํ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ ํ ์ฃผ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ๋ฐ์ ์์ํ๋ฉด์ ์๊ฐ์ ์ฌ์ ๊ฐ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ์ง๋ง, ์๊ฐ๊ณผ ๋ง์ด ๋ค๋ฆ์ ๋๊ผ๊ธฐ ๋๋ฌธ์ 3์ฃผ์ฐจ๋ถํฐ๋ ์๊ฐ๊ด๋ฆฌ๋ฅผ ๋์ฑ ์ํ ์ ์๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ๋ํ, ํ์๊ณผ ์ ๋ ๋ง์๊ณ , ํผ์นด์ธ ๋ฐฐ๊ตฌ๋ ํ๋ ๋ฑ ๋ ๊ฐ๊น์ด ์ฌ์ด๊ฐ ๋ ์ ์๋ ํ ์ฃผ์์ต๋๋ค.
1์ฃผ์ฐจ์ ๊ณํํ๋๋ก ์ด๋ฒ์ฃผ๋ถํฐ๋ 1์ฃผ์ผ์ 2๋ฒ์ฉ ์คํ๋ผ์ธ์ผ๋ก ๋ฏธํ ํ๋ฉด์ ํ์ดํ๋ก๊ทธ๋๋ฐ ํ์์ผ๋ก ๊ณํํ ๊ฒ๋ค์ ์์กฐ๋กญ๊ฒ ์งํํ ์ ์์์ต๋๋ค. ๊ธฐ๋ฅ๋ณ๋ก ์ฑ์ค์ด๋ driver/navigator๋ฅผ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์๋ก ๋์น๋ ๋ถ๋ถ๋ค์ ์ก์์ฃผ๊ณ ์ฝ๋ ํ์ง๊น์ง ์ ๊ฒฝ์ฐ๋ฉด์ ๊ฐ๋ฐ์ ํ ์ ์์์ต๋๋ค. ์์ผ๋ก ๋ ๋ฐ๋น ์ง๊ธฐ์ ์ ํ์๋ค๊ณผ ์ ๋ ๋ง์๊ณ ์นํด์ง ์ ์์๋ ํ์ฃผ์์ต๋๋ค.
ํ์๋ค๊ณผ ๋์ฑ ์นํด์ง ์ ์๋ 3์ฃผ์ฐจ์๋ค. ํ์๋ค์ด๋ ๊น์ ๋ํ๋ฅผ ๋๋๋ฉด์ ๋ ์ง์ํ ๊ด๊ณ๋ฅผ ํ์ฑํ๊ณ , ๋๋ถ์ ๋งค ํ์๋ง๋ค ์ด์ํ์ง ์๊ฒ ๋ณธ์ธ์ ์์ฌ๋ฅผ ํํํ ์ ์์๋ค. ๋ค ์์ฑํ์ง ๋ชปํ ๊ธฐ๋ฅ๋ค๋ ์์์ง๋ง, ๋ฐค์ ์์๋ผ๋ ์์ฑํด ๋ผ ๊ฑฐ๋ผ๋ ํ์๋ค์ ์ด์๋ฅผ ๋ณด๊ณ ๋๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๊ณ ๋ค์งํ๋ค.
์ด์ ์ค๋ฐ๋ถ๊ฐ ๋์ด ํผ์ด์ธ์ ์๊ฐ์ ๋ค๋ฅธ ์กฐ์ ๊ฐ๋ฐํ ์๋น๋ธ๋ฅผ ์๋ก ๊ณต์ ํ ์ ์๊ฒ ๋์์ต๋๋ค. ๋ค๋ฅธ ์กฐ์ ์๋น์ค ์ค ์ธ์๊น์๋ ๊ธฐ๋ฅ ํ๋๊ฐ, ํ์ด์ง๊ฐ ๋ ๋๋ง ๋ ๋, ๋ก๋ฉ ํ์ด์ง๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ก๋ฉ๋๊ณ ์์์ ์๋ ค์ฃผ๋ ๊ฒ์ด์๋๋ฐ, ์ด๋ฏธ์ง๊ฐ ์๋ป ๋ก๋ฉ์๊ฐ์ด ๊ธธ์ด๋ ๊ด์ฐฎ์๋ณด์ด๋(?) ๊ธฐ๋ฅ์ด์์ต๋๋ค. ์ด ๋ถ๋ถ์ด ์ธ์๊น์ด ํ์๋ค๊ณผ ์์ํ์ฌ ์ ํฌ ํ์๋ ๋ก๋ฉ ํ์ด์ง๋ฅผ ๋ฐ์ํ๋๋ก ํ์์ต๋๋ค. ์ด๋ ๋ฏ ํผ์ด์ธ์ ์ ํตํด ๋ค๋ฅธ ์กฐ์๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ค๋ณด๋ ์๋ก์ ํ๋ก์ ํธ์ ์ข์ ์ํฅ์ ์ค ์ ์์๋ ์ ์ด ์ข์์ต๋๋ค.
๋ถ์ ์ด ์ ๋ ํ ์ฃผ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์๊ณผ ํจ๊ป ํ์๋ฅผ ํตํด ํ๋ก์ ํธ์ ๋ฐฉํฅ(๋ฐฑ๋ก๊ทธ ์์ฑ)์ ์ ํ๊ณ ๊ฐ์์ ์ค์ผ์ค์ ๋ง์ถฐ ์ ๋ฌด๋ฅผ ๋ถ๋ดํ๊ณ ์งํํ์์ต๋๋ค. ๋ํ ๋ฌธ์ ๊ฐ ์๊ฒผ์๋ ํ์ ๋ฐ ํ์ดํ๋ก๊ทธ๋๋ฐ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๋งค์ฃผ ์, ๋ชฉ ์คํ๋ผ์ธ ์์ ์ ํตํด์ ๋ณด๋ค ์ ๊ทน์ ์ผ๋ก ์๊ฒฌ์ ์ฃผ๊ณ ๋ฐ์ ์ ์์์ต๋๋ค. ํ์ง๋ง ๊ฐ์ธ์ ์ผ๋ก ๋ชฉํ๋์ ๋ค ๊ตฌํ ๋ชปํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์์ฌ์์ด ๋ง์ด ๋จ์ต๋๋ค. ๋ค์์ฃผ์๋ ์ผ์ ๊ด๋ฆฌ๋ฅผ ์กฐ๊ธ ๋ ์ ๊ฒฝ์ฐ๊ณ ์ด์ฌํ ๊ตฌํํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
3์ฃผ์ฐจ์ ์๋น์ค๋ด์ ๊ฒ์ํ๊ณผ ๋น์ทํ CRUD๋ฅผ ๊ตฌํํ๋ค. ์ด๋ฒ์ฃผ๋ ์ญ์ ์ฑ์ค์ด์ ํ์ดํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์งํ์ ํ๋๋ฐ, ๋จ์ํ DB ์ฝ์ /์ญ์ ๋ฟ๋ง ์๋๋ผ ๊ถํ๊ฒ์ฌ, ํ๋ผ๋ฏธํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ์ด ๊ณ ๋ คํด์ผํ ๋ถ๋ถ์ด ๋ง์๊ณ ํ์ดํ๋ก๊ทธ๋๋ฐ์ ํ๋ฉด์ ๋์น ์ ์๋ ๋ถ๋ถ์ ์๋ก ์ก์์ค ์ ์์ด์ ํ์ต์ ๋์์ด ๋ง์ด ๋์๋ค. ์ด๋ฒ์ฃผ๋ ํ์๋ค๊ณผ ๋ง์๋ ์์๊ณผ ์ ๋ ํจ๊ป ๋จน๊ณ ๋ฐค์๋ ์์ด ํ๋ณตํ ํ ์ฃผ์๋ค~!~!
์ด๋ฒ ์ฃผ์ socket ์๋ฒ์ API ์๋ฒ ๊ฐ ์ ๋ณด ๊ตํ์ ์ง์คํ์ฌ ๋ฐฑ์๋๋ฅผ ๊ตฌ์ฑํ๋ค. socket ์๋ฒ๋ ์ฑ๋ฅ์ด ๋งค์ฐ ์ค์ํด์ ๋ณต์กํ ์ฐ์ฐ ๋ฐ DB ์กฐํ๋ฅผ ํ ์์๋ค ์๊ฐํ์ฌ, ํ์ง์ด๋ ๋ง์ ๊ณ ๋ฏผ์ ํ๋ฉฐ ์๋ฒ๋ฅผ ๊ตฌํํ๋ค. ๊ธฐ๋ฅ์ด ๋ง์์ง ๋งํผ ์ค๋ฅ๋ ๋ง์์ ธ์ ๋ฐค ๋ฆ๊ฒ ๊น์ง ๊ตฌํํ ์ ์ด ๋ง์๋๋ฐ, ๊ทธ๋๋ ํ์ง์ด์ ๋ ๊น๊ฒ ๊ณต๋ถํ ๊ฒ ๊ฐ์ ๋ฟ๋ฏํ๋ค. ๋ํ TypeORM ์ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ๋ฒ ๋ฐ ์์ํ ์ค๋ฅ ๋ํ ํ์ ํ ์ ์์๋ ํ ์ฃผ์๋ค.
์์ผ ๋ฐ api ์ฐ๊ฒฐ์ ํ๊ณ mock data๊ฐ ์๋ ์ค์ ๋ฐ์ดํฐ๋ก ์์ ์ ํ๋ค๋ณด๋ ์ด์ ์๋ ์ ์ ์์๋ ์๋ก์ด ์ด์๋ค์ด ๋ณด์๊ณ , ํ์๋ค์ด ์ง์ ๋์์์ผ ๋ณด๋ฉด์ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ ์ฅ์์ ๋๋ ์ ์๋ ๋ถํธํจ์ด๋ ์๋ฌ ์ฌํญ๋ค์ ์ฐพ์ ์ ์์์ต๋๋ค. ํนํ, ์์ผ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ๋ ์์ ์ ์ฐพ์์ฃผ๋ ๊ฒ๊ณผ ๋ชจ๋ ์ ์ ์๊ฒ ๋์ผํ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋๋ก ๊ตฌํํ๋ ๊ฒ์ด ์ด๋ฒ ์ฃผ ๊ฐ์ฅ ์ด๋ ค์ด ์์ ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ฌ์ด ์ ์ ์ด๋ฒ ์ฃผ๋ ํน๊ฐ์ด๋ ๋ฉด์ ์ด์ ๋ฑ์ผ๋ก ๊ฐ๋ฐ ์๊ฐ์ด ์ ์ด, ์๊ฐํ๋ ๋ง์ผ์คํค์ ์ฑ์ฐ์ง ๋ชปํ ๊ฒ ๊ฐ์ ์์ฌ์์ด ๋จ์ต๋๋ค.
ํ๋ก์ ํธ์ ๊ธฐ๋ฅ๊ณผ ๋ก์ง๋ค์ด ์์ผ ์๋ก, ์๋ก์ด ๋ก์ง์ ์ถ๊ฐํ ๋ ๋ง๋ค ๊ธฐ์กด ๋ก์ง๋ค์ ์๊ธฐ๋ ์๋ฌ๋ค์ด ๊ณจ์น ์ํ ์ต๋๋ค. ๋ช๋ช ๋ฌธ์ ๋ค์ ํด๊ฒฐ ์์ง๋ ์์ผ๋ ์๊ฐ์ด ํ์ ๋์ด ๋์ด๊ฐ ๋ถ๋ถ๋ ์์์ผ๋ฉฐ, ํ์๋ค๊ณผ ํฉ์ํ์ ์ด๋ ์ ๋๋ ๊ธํ๊ฒ ๋๊ธด ๋ถ๋ถ ๋ํ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ํฌ๊ฐ ์ฒ์์ ์๋ํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ๋ค์ ๊ธฐํ์ ๋ง์ถ์ด ์ ๊ฐ๋ฐํ ์ ์์์ผ๋ฉฐ ๋๋ถ์ ํ๋ก์ ํธ๊ฐ ์์ฑ์ด ๋์ด๊ฐ ์๋ก ๋ณด๋์ฐผ์ต๋๋ค. ๊ฐ๋ ํ์๋ค๊ณผ ๋ชจ์ฌ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ ๋ฐ, ๊ทธ ๋๋ง๋ค ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๋ ๋์ ํ ์ ์์๋ ์ ์ฑ์ ์ธ ํ์ต์ ํ ์ ์์ด ์ข์์ต๋๋ค.
์ด๋ฒ ์ฃผ๋ ๊ธฐ๋ฅ ๊ตฌํ์ ์์ด์ ๊ฐ์ฅ ํ๋ ํ ์ฃผ์์ต๋๋ค.๐ https ์ค์ ์ ํ๊ณ CI/CD๊น์ง ํ๋ ์์ ํด์ผํ ์๋ฌ ์ฌํญ๋ค์ด ์๊ฒจ๋ฌ๊ณ , ์๋ฌ๋ค์ ์์ ํ๋ค ๋ณด๋, ๊ตฌํํด์ผํ ๋ฐฑ๋ก๊ทธ๊ฐ ๋ฐ๋ฆฌ๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฅ ํ๋ค์๋ ์ ์, ์ ์ญ ์ํ๋ฅผ hook ๊ธฐ๋ฐ์ recoil๋ก ๊ด๋ฆฌํ๊ณ ์์๋๋ฐ, ๊ฒ์ ๋ก์ง์ ๊ตฌํํ๋ Phaser๋ ํด๋์ค๋ก ๊ตฌํ๋์ด ์์ด์ ๋ ๊ฐ์ง๋ฅผ ๋ณํํ๋ ๊ฒ์ด ์ด๋ ค์ ์ต๋๋ค. ๊ฒฐ๊ตญ Phaser์ eventEmitter๋ก ๊ฐ์ ๋๊ฒจ์ฃผ์๋๋ฐ ์ฒ์ ๊ธฐ์ ์ ํ์ ํ ๋, ์ด๋ฐ ๋ถ๋ถ๋ค์ ํ์ตํ๊ณ ์๊ฐํ์ฌ redux๋ contextAPI๋ฅผ ์ ํํ๋ค๋ฉด ๊ตฌํ์ด ๋ณด๋ค ์์ํ์ง ์์์๊นํ๋ ์์ฌ์๊ณผ ๋ค์ ํ๋ก์ ํธ์์๋ ์ด๋ฐ ์ค์๊ฐ ์๋๋ก ํ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ํ ์ฃผ์์ต๋๋ค.