ํน์ ํ์ด์ง์ SNS ๋ฑ ์ธ๋ถ ๊ณต์ ๋ฅผ ์ํด URL ๋งํฌ๋ฅผ ์์ฑํ๊ณ ์ถ์๋ค. ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ํน์ ํ์ ์ด ์ด๋ฆฐ ์ํ๋ก ํ์ด์ง๊ฐ ๋์ด์ง๋ ๊ตฌ์กฐ์ฌ์ผ ํ๋๋ฐ, ํด๋ณด์ง ์์ ์์ ์ด๋ผ ์ ๋ฅผ ์ข ๋จน์๋ค.
ํ์ด์ง ์์ ์ ํ๋ ์ค ํ์ ์ฐฝ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ซ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ ๊ธฐ๋ฅ์์ ํด๋ฆญ๋ ๋ฒํผ(event.target)์ ๋ถ๋ชจ๋ฅผ ์ฐพ์ ํด๋น ๋ฒํผ์ ์์์ผ๋ก ๊ฐ์ง ํ์ ์ ๋ซ๋ ๊ธฐ๋ฅ์ ์์ ๋ ์ค ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ชฌ์คํฐ ๊ฒ์์ RPG ๊ฒ์์ผ๋ก, ๊ฒ์์๋ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ชจ๋๊ฐ ์๋ค. ๋ชจํ, ํด์, ์ข ๋ฃ ์ค์์ ์ ํํ๋ ์ผ๋ฐ ๋ชจ๋์ ๋ชจํ์ ๋ ๋์ ์ ์ ๋ง๋๊ฒ ๋ ๋ ๋์ ํ๋ ์ ํฌ ๋ชจ๋์ด๋ค. ์ ํฌ ๋ชจ๋์์๋ ์ ์ ๊ณต๊ฒฉํ๊ฑฐ๋ ์ฒด๋ ฅ์ ํ๋ณตํ๊ฑฐ๋ ๋๋ง๊ฐ๋ค.์น๊ฒ์ ๋งํฌhtml, css ์ฝ๋
planetscale ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ ์ pscale connect ๋ฅผ ํ๋๋ฐ ์ฐ๊ฒฐ์ด ์๋๊ณ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ, ๊ตฌ๊ธ๋ง ๊ฒฐ๊ณผ ๊ทธ ์ด์ ๋ฅผ ๊ณต์๋ฌธ์์์ ๋ฐ๋ก ์์๋๋ค.์ฐธ๊ณ : https://planetscale.com/docs/concepts/da
์ ๋ก์ด์ NodeBird ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ์ง์ ๋ฆฌ๋ด์ผ ํ๋์ค์ ๋ค์๊ณผ ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๋ค.โ ๊ฒ์๋ฌผ ์์ฑ ์ค ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๋ ๊ธฐ๋ฅ์ type ์ด file ์ธ input ์ onChange ์ด๋ฒคํธ๋ฅผ ๊ฑธ๊ณ ์ ๋ก๋ ๋ฆฌ๋์๊ฐ ๋์คํจ์น๋๋ ๊ตฌ์กฐ๊ฒ์๋ฌผ์ ์์ฑํ๊ธฐ ์ํด โre
์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ์ด ๋์ง ์์ ์ํ์์ ๋ง์ดํ์ด์ง์ ์ ๊ทผํ๋ ค ํ๋ฉด โ๋ก๊ทธ์ธ ํ ์ด์ฉ๋ฐ๋๋คโ ๋ ๋ฉ์์ง๋ฅผ alert ์ผ๋ก ๋์ฐ๊ณ ์ถ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ๋ค. ํด๋ผ์ด์ธํธ ์์์ ์ ์๋ํ์ง๋ง ์๋ก๊ณ ์นจ ํน์ url ๋ก ์ ๊ทผ์ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.์์ธ์ ๊ฐ๋จํ๋ค. ์
v-model ์ ์ด์ฉํด์ ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ง๋ค์ด๋ณด๋ ๊ณผ์ ๋ฅผ ๋ฐ์๋ค. v-model ์ ๋ํ ๊ฐ๋ ์ ์ ํ์ ํ ๋ค, ์ฐ์ฌ๊ณก์ ๋์ ์ฒดํฌ๋ฐ์ค๋ฅผ ๊ตฌํํ๋๋ฐ ์ฑ๊ณตํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๊ทธ์น์ง ์๊ณ ์ ์ฒด๋ก ์ฒดํฌ๋๋ ์ฒดํฌ๋ฐ์ค๋ ํ ๋ฒ ๊ตฌํํด๋ณด์๋ค.vue ์์๋ ๋ถ๋ชจ์์ ์์ ์ปดํฌ๋ํธ๋ก
์น์คํฐ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋๊ฐ ์์ฑํ ์ฝ๋์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ฝ๋๊ฐ ์ฌ์ฉ๋ ํ์๋ฅผ ์ ์ ์๋ค.์ข์ ๊ธฐ๋ฅ์ด๊ธด ํ๋, ๊ฐ์ธ์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ณด๋๋ฐ ์์ด ์ข ๋ง์ด ๋ถํธํ๋ค๐ย ํด๋น ๊ธฐ๋ฅ์ ๋๊ฑฐ๋ ์ผ๋ ๊ธฐ๋ฅ์ ๊ตฌ๊ธ๋งํ์ฌ ์ฐพ์๊ณ , ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.settings > Editor
ํ์ฌ ์ฌ์ดํธ ๊ณ ๋ํ ์์ ์์ ํญ ๋ฉ๋ด๋ฅผ ๊ตฌํํ๋ ์ค์ ์๋ฌ๊ฐ ๋ด๋ค. ์๋ฌ์ ์์ธ์ ํด๊ฒฐํ์ฌ ์ ๋ฆฌํด๋ณด์. ํญ๊ธฐ๋ฅ ์ค ํ ๊ณณ์ ์ค์์ดํผ, ๋ค๋ฅธ ํ์ชฝ์ ์คํฌ๋กค ๋งค์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ํฉ์ด๋ค. 2ํญ์ธ ์ํ์์ 1ํญ์ ๋ค๋ ์๋ค๊ฐ ๋ค์ 2ํญ์ ๋์์ค๋ฉด ์คํฌ๋กค fixed ๊ฐ ์
ํฑํํ ๊ฒ์์ ์ค๋ชฉ๊ฒ์๊ณผ ๋ฃฐ์ด ๊ฐ์ผ๋ฉฐ, ์ฌ๊ธฐ์์ 3๋ชฉ์ผ๋ก ์น๋ถํ๋ค. 3 \* 3 = 9๊ฐ์ ์นธ ์์ o ์ x ๋ฅผ ํด๋ง๋ค ์ฝ์ ํ์ฌ ์ธ ๊ฐ ์ฐ์ ๊ฐ์ ๋ชจ์์ผ ๊ฒฝ์ฐ ์น๋ฆฌํ๋ ๊ฒ์์ด๋ค.์น๊ฒ์ ๋งํฌhtml, css ์ฝ๋ํ๋ฅผ ๋ํ๋ผ ๋, ๋๋ถ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ด์ฐจ์ ๋ฐฐ์ด์
redux-toolkit: ๋ฆฌ๋์ค ํดํท(redux toolkit) ์ ๋ฆฌ๋์ค๋ฅผ ๋ถํธํ ์ ์ ๋ณด์ํ๊ธฐ์ํด ๋์จ ๊ฐ๋ฐ ๋๊ตฌ์ด๋ค. ๋ฆฌ๋์ค๋ ๋ณต์กํ ์ ์ฅ์ ๊ตฌ์ฑ, ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์์กด์ฑ, ๊ทธ๋ฆฌ๊ณ ํ๋์ ์์ ๋ง๋ค ๋ง์์ง๋ ์ฝ๋์ ๋ฑ์ ๋ฌธ์ ์ ์ด ์์๋ค. ํ์ง๋ง ๋ฆฌ๋์ค ํด
์ด์ ์ ์ ๋ก์ด ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๋ง๋ค์๋ form ์ ์ผ์ผํ state ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๊ฑฐ๋ ์ปค์คํ ํ ์ ์ด์ฉํด ๋ง๋ค์๋๋ฐ, ์ด๋ฒ์ ๋ฆฌ์กํธ์ react-hook-form ์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ํผ์ ๋ค์ ๊ตฌํํด๋ณด์๋ค. state ๋ฅผ ๋ง๋ค ํ์๊ฐ ์๊ณ , ์ ํจ์ฑ ๊ฒ์ฌ๋ ์ค
4๊ฐ์ ์ซ์๋ฅผ ์ ํ๋ ๊ธฐํ ์์ ๋ง์ถ๋ ๊ฒ์์ผ๋ก, ์ผ๊ตฌ์ ๊ท์น ์ฉ์ด๋ง ๊ฐ์ ธ์ด๊ฒ์ ๊ท์น : 1\. ์๋ํธ์ด ์ซ์ 1~9 ์ค ์ค๋ณต๋์ง ์๊ฒ 4๊ฐ๋ฅผ ๊ณ ๋ฆ2\. 10 ๋ฒ์ ๊ธฐํ๊ฐ ์ฃผ์ด์ง๊ณ , ๊ทธ ์์ ํด๋น ์ซ์ 4๊ฐ๋ฅผ ์์ํฌํจํด์ ๋ง์ถฐ์ผํจ3\. 10๋ฒ์ ๊ธฐํ ๋์ ๋ค์์ ํํธ๊ฐ
nuxt ํ๋ก์ ํธ์ vuex ๋ฅผ ์ค์นํด $store ์ ์ญ๊ฐ์ฒด๋ฅผ ์ฐ๋ ค๋ ์๊ฐ, $store ์ด undefined ๋ก ๊ฐ์ฃผ๋์ด ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.ํฌ๋กฌ ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ์ผฐ์ ๋๋ ํจ๋์ Components, Timline, Routes ๋ง ์์ ๋ฟ Vuex ๋ ํ์๋
Prettier: ์ฝ๋ ์ ๋ฆฌ ๋๊ตฌESLint: ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ๋ฐ๊ฒฌ๋๋ ๋ฌธ์ ์๋๋ ํจํด๋ค์ ์๋ณํ๊ธฐ ์ํ ์ ์ ์ฝ๋ ๋ถ์ ๋๊ตฌPrettier ์ค์ ์ ์ํด ๋ค์๊ณผ ๊ฐ์ด ๋ฃจํธ ๊ฒฝ๋ก์ .prettierrc ๋ผ๋ ํ์ผ์ ์์ฑ ํ ์์ฑ๋ทฐ cli ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ o
vue ํ๋ก์ ํธ ํด๋๋ก ์ ๊ทผ ํ ์๋ฒ๋ฅผ ์คํ์ด๋ eslint ์์ ์๋ฌ๊ฐ ์๋ก ์ ๋ฐ์ดํธ๋์ด ์๋ชป ์ ๋ ฅํ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด์ ๋ฎ๋ ๊ธฐ๋ฅ์ด ๋ฐ์ํ๋ค.์ด๋ ๊ฒ ๋๋ฉด ํ๋ฉด์ ์กฐ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋น ๊ธฐ๋ฅ์ ๊บผ์ฃผ๋๋ก ํ์.eslint ๋นจ๊ฐ์ค ๊ธฐ๋ฅ์ด ์๋ํ์ง ์์ ๋ โ
์ฒ์ ์ ์๋ ๋จ์ด์ ๋งจ ๋ท๊ธ์๋ฅผ ์๊ธ์๋ก ์ฌ์ฉํ์ฌ ๋จ์ด๋ฅผ ๋์ดํ๋ ๊ฒ์์ผ๋ก, ํ์๊ฐ์ 30์ด, ๋จ์ด๋ ์ธ ๊ธ์์ฌ์ผ๋ง ํ๋คhtml, css ์ฝ๋๋๋ง์๊ธฐ๋ฆฌํฉํ ๋ง (or , and)๋ฆฌ๋ด์ผ ์์ : ๋์๋ฆฌ์ ๊น๋ฐ๊ฑฐ๋ฆฌ๋ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ๋ฃ์ด ์ฒซ๊ธ์๋ก ์ ๋ ฅํด์ผํ ๊ธ์๋ฅผ ์๊ฐ์ ์ผ๋ก
์๋ฐ์คํฌ๋ฆฝํธ, ํ๋ก ํธ์๋ ๊ฐ์ข ๋ํ์์ผ๋ก ์ ๋ช ํ์ ์ ๋ก์ด๋ ๊ฐ์ ์ค ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์๋ฅผ ๋ชจ๋ ๋ณด์ฌ์ค ๊ฐ์๊ฐ ์๋๋ฐ, ๋ฐ๋ก ์น๊ฒ์์ ํตํด ๋ฐฐ์ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์๋ค.ํ์ ์น์ฌ์ดํธ ํ๋์ ๊ตฌํ๋๋ javascript ์ ๊ฐ๋จํ ๊ธฐ๋ฅ๋ง ๊ตฌํํ๋ค๊ฐ, ๋ณธ ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ ๋ค
React ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ค๋ vscode extension ์ธ Prettier ๊ฐ ๋จนํ์ง ์์์ ๊ทธ ์์ธ์ ์ฐพ์๋ณด์๋ค. ๊ตฌ๊ธ๋งํด์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ๋ ๋ค์์ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด์๋ค.setting.json ์์ editor.formatOnSave ์ true ๊ฐ ๋์ด์๋๋ก ํ
vue cli ๋ฅผ ์ค์นํ ๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฌ๋ค.์์ธ์ ๋ ๊ฐ์ง๋ก ์์๋๋ค ์ ์ญ ์ค์น ์ ๊ด๋ฆฌ์ ๊ถํ์ด ์๋๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํจํ๊ฒฝ๋ณ์ํด๊ฒฐ ๋ฐฉ๋ฒ:์ด์ ์ ์ค์นํ ๊ฒ์ ์ญ์ ํ ์ ์ญ์ ์ผ๋ก ์ฌ์ค์น๋ฅผ ํด์ค๋ค.sudo npm uninstall --global vue-c