9์ 25์ผ ~ 10์ 27์ผ, ๊ทธ ์ฌ์ด ๊ธด ์ถ์์ฐํด๊ฐ ์์ด ์ฝ 4์ฃผ ์ ๋ ๋๋ ๊ธฐ๊ฐ๋์ ์ธํด์ญ์ ๊ฐ์ก์ต๋๋ค.
์ธํด์ญ์ ๊ฐ๊ธฐ ์ ์ ๋๋ ์ด๋ค ํ์ฌ์์ ์ผํ๊ณ ์ถ์์ง๋ฅผ ๊ณ ๋ฏผํด๋ณด์์ต๋๋ค.
๊ธฐ์
์ด ์ด๋ค ๊ฒ์ ์ถ๊ตฌํ๋๋๊ฐ ์ ๊ฒ ํฐ ๋๊ธฐ๋ถ์ฌ๊ฐ ๋ ๊ฒ ๊ฐ์ ๊ฐ์ฅ ์ค์ํ๊ฒ ๋๊ปด์ก์ต๋๋ค.
๋ฆฌ์คํธ ์ค ํฌ๋งํ๋ ๊ธฐ์
์ ์์ฑํ ์ ์์๋๋ฐ, ์ ๋ ๊ทธ ์ค 1์์๋ก ์์ฑํ ๊ธฐ์
์ ๋ค๋
์ฌ ์ ์์์ต๋๋ค๐
๐์ด๋ค์ปดํผ๋
์ท์ฅ์ ์ ๋ฆฌํ๊ณ , ํจ์
๋ผ์ดํ์ฌ์ดํด์ ๋ง์ถฐ ์๋ฅ ์๋น ๋ฐ ์ฒ๋ถ์ ๋์์ฃผ๋ ์๋น์ค๋ฅผ ์ด์ํ๋ ๊ธฐ์
์ผ๋ก, 1์ธ ๋๋ ๋ง๋ฒ์ด ๊ฐ๊ตฌ๊ฐ ๋์ด๋๊ณ ์๋ ํํฉ๊ณผ, ์๋ฅํ๊ธฐ๋ฌผ๊ณผ ํจ์คํธํจ์
์ ๋ํ ๋ฌธ์ ์ ๊ณต๊ฐํ๊ณ ์๋ ์ ์๊ฒ ์ด ํ์ฌ๊ฐ ๊ฐ์ฅ ๋์ ๋์์ด์.
๊ธฐ์ ์ ์ผ๋ก๋ ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ next.js์ typescript๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ , ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ๋ฐ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ํผ์ flutter๋ฅผ ์ฐ๋จนํด๋ณด๊ธฐ๋ ํ์๋์ง๋ผ ํ์ฌ์๊ฐ๋์ ์ฑ ๊ฐ๋ฐ ์์ ์ด๋ผ๋ ๊ฒ๋ ํฅ๋ฏธ๋ก์ ๊ณ ์.
์์ฝ๊ฒ๋ ๊ฐ์ด ๊ฐ๊ฒ ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์์ง์๋๊ณผ๋ ๋ค๋ฅธ ์
๋ฌด๋ฅผ ๋งก๊ฒ ๋์์ต๋๋ค.
ํ์ฌ์ ๋งค์ถ์ด ์ ์ฐจ ์ปค์ง๋ฉด์ ์ฌ์ฉ์ค์ธ ๋
ธ์ฝ๋ ํด์ ์ธํ์ฐ์ค๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ณ ์ ํ๋ ํ์ด์ง๊ฐ ์์๊ณ , ๊ทธ ํ์ด์ง๋ฅผ ๊ตฌํํ๋ ์
๋ฌด๋ฅผ ๋งก์์ต๋๋ค.
next.js
, typescript
์ฌ๋ด ์์ง์ ๋ฐ ๋งค๋์ , ๊ณ ๊ฐ์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ์ด๋๋ฏผ ํ์ด์ง๋ก, ์์ฝ์ ๋ณด์ ์งํ์ํ, ๊ทธ๋ฆฌ๊ณ ๋งค์ถ์ ํ์ธํ ์ ์์ต๋๋ค.
๋น์ ๋์์ด๋๊ฐ ์๋ ๊ด๊ณ๋ก UI ๊ธฐํ์ ์งํํ์์ต๋๋ค.
์๋น์ค ์์ฝ ํ์ด์ง๋ ๊ณ ๊ฐ์ด ์ง์ ๊ตฌ๋งค ์์ ์ธ ์๋น์ค์ ํ์ํ ์ธ์ ์์ ์ด์ฉ ์๊ฐ์ ์ ํํ ์ ์๊ณ , ์ ํ ๋ฐ ์์ฑํ ๋ด์ฉ์ ๋ฐ๋ผ ๋งค๋์ ๋ฅผ ๋ฐฐ์ ํ์ฌ ์๋น์ค๋ฅผ ๋ฐ์๋ณผ ์ ์๊ฒ ๋์ด์์ต๋๋ค.
ํ์ฌ๊ฐ ์๋น์์๊ฒ ์ ๊ณตํ๋ ์ฃผ์ ์๋น์ค๋ก, ๋งค์ถ๊ณผ ์ง๊ฒฐ๋๋ ํ์ด์ง๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ์์ ์ด์๊ธฐ ๋๋ฌธ์ ๋ถ๋ด๋ ๋๊ณ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ๋ค์ง๊ณผ ํจ๊ป UI ๊ณํ๋ถํฐ ์์ํ์ต๋๋ค.
ํด๋น ํ์ด์ง๋ ๋ฐฐํฌ๊ฐ ์๋ฃ๋์ด ์๋ ์ฃผ์์์ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค!
ํ์ด์ง ๋ฐ๋ก ๋ณด๊ธฐ
๋๋ ๋ฉ์ธํ์ด์ง์์ ๋ก๊ทธ์ธ ํ ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค.
๋ฉ์ธํ์ด์ง ๋ฐ๋ก ๊ฐ๊ธฐ
์น์ฑ์ผ๋ก ํ์ด์ง ์ ์์ ์งํํ์์ต๋๋ค.
์๋น์ค์ ๊ฐ์ฅ ์ค์ํ ์ ํ์ต์
๊ณผ ์ดํด๋ฅผ ์ํ ์ค๋ช
์ ๊ณต ๊ธฐ์ค์ผ๋ก ํ์ด์ง๋ฅผ ๋๋ด์ต๋๋ค. ์ด 4ํ์ด์ง๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ์ง๊ด์ ์ธ ์ด๋ ๋ฒํผ์ ํ๋จ์ ๋์์ต๋๋ค.
- ์ ํํ ๋งค๋์ ์ธ์์์ ๋ฐ๋ผ ์ ํ ๊ฐ๋ฅํ ์๊ฐ ๋ฒํผ ํธ์ถ
- ์ ํํ ๋งค๋์ ์ธ์์์ ์๊ฐ์ ๋ํ ์๋น์ค ์๋ด ํ๊ธฐ
- props๋ก ์ ์ ๊ฐ ์ ํ ๋ฐ ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ์ปดํฌ๋ํธ์ ์ ๋ฌํ์ฌ ์ต์ข ์ ์ถ๋๋๋ก ๊ตฌํ
์ฒ์์๋ Context API๋ฅผ ์ฐ๋ ๊ฒ์ ์๊ฐํด ์ฝ๋๋ฅผ ์งฐ๋๋ฐ, useSatet์ props๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.
Context API๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์์ผ๋ Typescript์ ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ฉด์ ์ฝ๋๋ฅผ ์ง๋ค๋ณด๋ ์๊ฐ์ด ์ง์ฒด๋๊ธฐ๋ ํ์ผ๋ฉฐ ๋ฐฐ์ด๋๋ก ์ ์ฉ์ ์คํจํ์๊ณ ๐ญ..
๊ฒฐ๊ตญ CEO๋๊ป ์ด ์ํฉ์ ๋ง์๋๋ฆฌ๊ณ props๋ก ์ ๋ฌํ๋ ๊ฒ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ์ด๋ค์ง ์ฌ์ญค๋ณด์์ต๋๋ค. ๊ท๋ชจ๊ฐ ํฌ์ง ์์ผ๋ props๋ก ๋๊ธฐ๋ ๋ฐฉ๋ฒ๋ ๊ฐ๋จํ๊ณ ์ข์๋ณด์ธ๋ค๊ณ ๋ง์ํด ์ฃผ์ ์ ์์ฑํ์ต๋๋ค!- Next Auth, useSession Hook์ผ๋ก ์ ์ ํ์ธ ๋ฐ ์ ๋ณด ์๋๊ธฐ์
์์ ๋ก๊ทธ์ธ์ ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก JWT ๋ฐฉ์์ ์ธ์ฆ์ ์ฌ์ฉํ๋ Next Auth๋ฅผ ํ์ฉ. ์ ์ ์ Id ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ์์ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํ๊ณ , ์ ๋ณด๊ฐ ์๋ค๋ฉด ์ด๋ฆ, ์ ํ๋ฒํธ๋ฅผ input๊ณผ state์ ์๋์ผ๋ก ์ ๋ฐ์ดํธ ๋๋๋ก ํ์์ต๋๋ค.- enum ์ฌ์ฉํ์ฌ ์์๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
- useRef๋ฅผ ํ์ฉํด ๊ฒฝ์ฐ์ ๋ฐ๋ผ input์ฐฝ์ผ๋ก ์๋ ํฌ์ปค์ฑ
ํ๋ก๋ชจ์ ์ฝ๋๋ฅผ ์ ๋ ฅํด์ผํ๋ ์ต์ ์ ์ ํํ์ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ฝ๋ ์ ๋ ฅ input์ ํฌ์ปค์ฑ ๋๋๋ก ๊ตฌํ- ๋ค์ ์ฃผ์๊ฒ์ API๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ ์ ๋ ฅ์ฐฝ ๊ตฌํ
๊ณ ๊ฐ์ผ๋ก๋ถํฐ ์ ๋ ฅ์ ๋ํ ๋ถํธ ์ปดํ๋ ์ธ์ด ์ ์๋์ด ์ฃผ์ ๊ฒ์ ๋ฒํผ ํด๋ฆญ ์ ํ์ ์ผ๋ก ๋์ฐ๋ ๊ฒ์ ๋ชจ๋ฌ๋ก ๋ณ๊ฒฝ- useEffect๋ฅผ ์ฌ์ฉํด ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ฌ๋ถ ํ์ธํ๊ณ , ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ ธ์ ํ๋ก๋ชจ์ ์ฝ๋ ์๋ ์ ๋ ฅ, ์๊ฒ๋ ๊ฒฝ๋ก ์ต์ ์๋ ์ ํ๋๋๋ก ๊ตฌํ
- ๋ฌธํญ์ ๋ฐ๋ฅธ ์ต์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ฟผ๋ฆฌ์คํธ๋ง์ด ์๊ธฐ๋ฉด์ ์ ์ถ๋๋ ํ์
ํด๋น ๋ฌธ์ ์ ๋ํด ํฌ์คํธ๋ฅผ ์์ฑํ์ต๋๋ค.
button ๋ฌธ์ ํด๊ฒฐ- ์์๋ฐ์ดํฐ์ value๋ฅผ ํธ์ถํ์ ๋ ๊ฐํ์ด ๋์ง ์๋ ํ์
ํด๋น ๋ฌธ์ ์ ๋ํด ํฌ์คํธ๋ฅผ ์์ฑํ์ต๋๋ค.
๊ฐํ ๋ฌธ์ ํด๊ฒฐ- Module not found: Can't resolve 'child_process'
์๊ฐ์ ISOํ์์ผ๋ก ๋ณํํ์ฌ ๋ณด๋ด๊ณ ์ ํ๋๋ฐ, ๋ง๋ค์ด๋ ๋ฉ์๋ ํจ์๊ฐ ์์ด์ ์ด๋ฅผ ์ฌ์ฉํด๋ฌ๋ผ๋ ์์ฒญ์ด ๋ค์ด์ ์ ์ฉํ๋๋ ๋ํ๋ ์๋ฌ.
nods.js์ ๋ด์ฅ๋ชจ๋๋ก ํด๋ผ์ด์ธํธ ์ธก์์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํด์ ๋ํ๋ ๊ฑฐ๋ผ๊ณ ํ๋๋ฐ ์ฆ ์๋ฒ์์ ์ฌ์ฉ์ค์ธ ์ปดํฌ๋ํธ๋ผ์ ์๋๋ค๋ ๊ฑฐ! ์ด๋ฐ ์ผ์ด ์๊ธธ๊ฑฐ๋ผ๊ณค ์๊ฐ๋ ๋ชปํ๋ค...
์ต๋ํ ์ ์ ์์ ํด๊ฒฐํด๋ณด๊ณ ์ ํ์ฌ api ์๋ํฌ์ธํธ๋ฅผ ์์ฑํด๋ณด๋ผ๋ ๋ง์ด ์๊ธธ๋ ์๋ํด๋ดค์ผ๋ 404 ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๊ฒฐ๊ตญ CTO๋๊ป ๋ง์๋๋ ค์ ํ๋ก ํธ๋จ์์ ๋ณํํ์ฌ ๋ณด๋ด๋ ๊ฒ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค.- TypeError: Cannot read properties of undefined
๊ฐ์ด ์ ์๋์ง ์์ ์ฝ์ ์ ์์ ๋ ๋ํ๋๋ค๊ณ ํฉ๋๋ค.
์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ ์ ๊ฒฝ์ฐ ์ต์ ๋ ์ฒด์ด๋์ ์จ์ฃผ์ด ํด๊ฒฐํ์ต๋๋ค.
- useEffect๋ฅผ ์ฐ์ง ์๊ณ ์คํฌ๋กค๋ฐ ์์น ์ด๊ธฐํ
์ปดํฌ๋ํธ๊ฐ ์ ํ๋ ๋ ์คํฌ๋กค๋ฐ๊ฐ ์ด์ ์ปดํฌ๋ํธ์ ์๋ ์์น์ ๊ทธ๋๋ก ๋จธ๋ฌผ๋ฌ์์ด ์คํฌ๋กค์ ์ฌ๋ ค์ผ ํ๋ ๋ถํธํจ์ด ์์์ต๋๋ค.
๋๋ฌธ์ useEffect์ ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ์๋๋ฐ ์ฆ์ useEffect ์ฌ์ฉ์ ์ง์ํ๊ณ ์ useEffect ์์ด๋ ๊ฐ๋ฅํ ์ง ๊ฒํ ํด๋ณด๋ผ๋ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค.
์ด๋ ๋ฒํผ์ ๋๋ ์ ๋ ๋ค์ ๋๋ ์ด์ ์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ๋๋๋ก ๋ง๋ ํจ์๊ฐ ์์๋๋ฐ, ํด๋น ํจ์๋ก ์ฝ๋๋ฅผ ์ฎ๊ฒผ์ต๋๋ค.
์ฐพ์๋ณด๋ ๊ณต์๋ฌธ์์ScrollRestoration
๋ฅผ ์ด์ฉํ ์คํฌ๋กค ์์น ์ด๊ธฐํ ๋ฐฉ๋ฒ์ด ์๋๋ฐ ๋ผ์ฐํธ ํ์ ๋ ์๋๋๋ ๊ฒ ๊ฐ์ ๊ธฐํ๊ฐ ๋๋ค๋ฉด ์ฌ์ฉํด ๋ด์ผ๊ฒ ์ต๋๋ค.
ScrollRestoration - ๊ณต์ ๋ฌธ์
- useEffect๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์คํฌ๋กค์ ์ด๊ธฐํํ๋ ์ฝ๋
์กฐ๊ธ ๋ ๊น๊ฒ ๊ณ ๋ฏผํ์๋ค๋ฉด useEffect๋ฅผ ์ ์ผ์ด๋ ๋์๊ฒ ๊ตฌ๋ ํ์ต๋๋ค..const next = () => { if (current < 5) { setCurrent((prev) => prev + 1); window.scrollTo(0, 0); } };
- date ์ ํ์ input ํ๊ทธ
๋ฐฐํฌ ํ ์์ดํฐ์ผ๋ก ๋ณด๋ date ์ ํ์ธ input์ฐฝ์ด ์ฌ์ด์ฆ๋ ์ด์ํ๊ณ , ์ ํ ๋ ์ง๋ฅผ ์ ํํ๊ณ ์ ๋ฃ์ min ์์ฑ์ด ์๋ผ์ ๋ง์ ์์ ์ ๊ฑฐ์ณค์ต๋๋ค.
์๊ณ ๋ณด๋ iOS์์๋ min ์์ฑ์ ์ง์ํ์ง ์๋๋ค๊ณ ...
๊ทธ๋์ ์ต์ ์ ํ ๊ฐ๋ฅ ๋ ์ง ์ด์ ์ผ๋ก ์ ํํ๋ฉด ์ ํ์ด ๋์ง ์๊ณ , ๊ฒฝ๊ณ ๋ฌธ์ ๋์์ฃผ๋ ํจ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
input์ width๋ ๋์ ํ ํด๊ฒฐ์ด ์๋์ด์ ๊ณ ๋ฏผํ๋ ์ฐฐ๋, date ์ ํ์ input์opacity: 0
์ ์ฃผ์ด์ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
๊ฐ์ง input์ ์ ํํ ๊ฐ์ ๋ณด์ฌ์ฃผ๋๋ก ์ค์ ํด ์ฃผ๊ณ ์.
์น๋ธ๋ผ์ฐ์ ๋ง๋ค ์ง์์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ต์ํ๋ฐ, ๋๋ฐ์ด์ค๊น์ง๋ ๋ฏธ์ฒ ์๊ฐ์ ๋ชปํ๋๋ฐ ๋ชจ๋ฐ์ผ ๋๋ฐ์ด์ค๋ ๊ผญ๊ผญ ํ ์คํธ๋ฅผ ํด์ผ๊ฒ ์ต๋๋ค..!๐ข
- ํ๋ก๋ชจ์ ์ฝ๋๋ฅผ ๊ธฐ์ ํ๋ input ์์น ๋ณ๊ฒฝ
์ ์ ์ ๊ฒฝํ์ ์๊ฐํ์ฌ ๊ธฐ์กด ํผ๊ณผ ๋ค๋ฅด๊ฒ ์ฝ๋ ์ ๋ ฅ input์ ๋ ธ์ถ ์กฐ๊ฑด๊ณผ ์์น๋ฅผ ๋ณ๊ฒฝํด ๋ณด์์ต๋๋ค.
ํ๋ก๋ชจ์ ์ฝ๋๋ ์๊ฒ ๋ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ์ต์ ์ ๋ฐ๋ผ ํ์ ๊ธฐ์ฌ ์ฌํญ์ธ๋ฐ, ๊ธฐ์กด ํผ๋๋ก ๋ง๋ค์์ ๋ ๊ธฐ์ ํ๋ ์นธ์ด ์ต์ ๋ณด๋ค ์์ ์์ด์ ์ต์ ์ ์ ํํ๋ฉด useRef๋ก ์ฝ๋ ์ ๋ ฅ์นธ์ ํฌ์ปค์ฑ ๋๋๋ก ํ๊ณ , ์ ๋ ฅ์ด ํ์์๋ ์ต์ ์ ์ ํํ๋ค๋ฉด ์ ๋ ฅ์ด ๋์ง ์๋๋ก ๋ก์ง์ ๊ตฌํํ์ต๋๋ค.
๊ทธ๋ ๊ฒ ๋ง๋ค๊ณ ๋๋ ์ฝ๋๋ฅผ ์ ๋ ฅํ ํ์๊ฐ ์๋ ์ ์ ๋ผ๋ฉด ํผ๋์ค๋ฌ์ธ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ , ์ฝ๋๋ฅผ ์ ๋ ฅํ ์ ์ ๋ ๋ค์ ์๋จ์ผ๋ก ์ฎ๊ฒจ์ผํ๋ ๋ถํธํ๊ฒ ๋จ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์์น๋ง ๋ฐ๊ฟ์ค๋ค๋ฉด ์ข ๋ ํธ๋ฆฌํด์ง ๊ฑฐ ๊ฐ๋จ ์๊ฐ์ด ๋ค์๊ณ , ์ฝ๋ ์ ๋ ฅ์ฐฝ์ด ์ต์ ์ ๋๋ ์ ๋ ๋จ๋ฉด ํผ๋์ด ์์ ๊ฑฐ ๊ฐ์ CEO๋๊ป ๋ง์๋๋ ค์ ์์น๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค. ์ฌ๊ธฐ์ ์ถ๊ฐ๋ก ์ฝ๋ ์ ๋ ฅ์ด ํ์ํ ์ต์ ์ ์ ํํ์ ๋์๋ง input์ด ๋จ๋๋ก ํด ๊ตฌํ์ ๋ง์ณค์ต๋๋ค๐
์๋น์ค๋ฅผ ์ ๊ณต ์๋ฃํ ๋งค๋์ ๊ฐ ๊ฒฐ๊ณผ์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ์ ํ์ฌ ์ ์ถํ๋ ํ์ด์ง์ ๋๋ค.
ํด๋น ํ์ด์ง๋ ์ ์ถ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ API๊ฐ ์์ฑ๋์ง ์์ ์ ์ถ ๊ธฐ๋ฅ์ ๋์ง ์์ง๋ง ์ด๋ฅผ ์ ์ธํ๊ณ ๋ฐฐํฌ๊ฐ ๋ ์ํ์
๋๋ค!
๋ก์ปฌ์์ ํ
์คํธ ํ์ ๋ ํฌ๊ฒ ๋ฌธ์ ๊ฐ ์์์ผ๋..๐
์๋น์ค ๊ฒฐ๊ณผ ๋ณด๊ณ ํ์ด์ง์ด๋ฏ๋ก ๊ณต๊ฐ๊ฐ ์ด๋ ต์ต๋๋ค๐
- ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ก ์์ฝ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ค๋ id๊ฐ์ ํ์ธํ์ฌ, ํด๋น ์์ฝ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ๊ตฌํ
router.isReady
๋ฅผ ์ฌ์ฉํด ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ์ ์ ๊ทผ- ์๋น์ค ์ ๊ณผ ํ์ ์ฌ์ง์ S3์ ์ ๋ก๋, ๊ฐ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋๋๋ก ๊ตฌํ
- Cors Error
Cross-Origin Resource Sharing
๋ธ๋ผ์ฐ์ ์์ ๋์ผ ์ถ์ฒ๊ฐ ์๋๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ, ์๋ฒ์์ ํค๋์ ํ์ฉํ ์ถ์ฒ๋ฅผ ๊ธฐ์ฌํด ํด๋ผ์ด์ธํธ์ ์๋ตํด์ฃผ๋ฉด ๋๋ค๊ณ ํฉ๋๋ค.
ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํด์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ๋ ์๋๋ฐ, ์ฌ๋ฌ๋ชจ๋ก ๋ณต์กํด์ง๋ ๊ฒ ๊ฐ์ API๋ก๋ถํฐ ๋ฐ์์ค๋ JSON ๋ฐ์ดํฐ๋ฅผ mockdata๋ก ๋ง๋ค์ด ํ ์คํธํด๋ณด๊ณ , ๋ฐฐํฌํ์ฌ ๋ฌธ์ ๋ฐ์ ์ ํด๊ฒฐํ๋ ๊ฒ์ผ๋ก ์งํํ์ต๋๋ค.
์ข ์ข ๋ฐ์ํ๋ ์๋ฌ์ธ ๊ฑฐ ๊ฐ์ ๊ธฐ์ตํด๋์ด์ผ๊ฒ ์ต๋๋ค!
413 Request Entity Too Large
์๋ฒ์์ ์ง์ ํ ์ฉ๋๋ณด๋ค ํฐ ์ฉ๋์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ํด์ ๊ทธ๋ฐ ๊ฒ์ผ๋ก ์๊ณ CTO๋๊ป ๋ง์๋๋ ธ๋๋ฐ ์๊ณ ๋ณด๋ ์ ๋ก๋ ํ ๋ฒํท ํจ์ค๋ฅผ ์๋ชป ์ ๋ ฅ์ ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ์๋ง์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ๋ ฅํด์ฃผ๋ ํด๊ฒฐ๋..๐
์ฌํ ํ๋ก์ ํธ๋ค์ ์ ๋ถ ๋ก์ปฌ์์๋ง ๋ดค๋์ง๋ผ ์ค์ ๋ก ์๋น์ค์ ์ฌ์ฉ๋๋ ๊ฒ์ ์ฒ์์ด์ด์ ์ค๋ ๊ธฐ๋ ํ๊ณ , ๋ฉ์ธ์์ ๋ฐ๋ก ์ด์ด์ง๊ณ ๋งค์ถ๊ณผ ์ง๊ฒฐ๋๋ ํ์ด์ง์ด๊ธฐ ๋๋ฌธ์ ๊ธด์ฅ๋ ์ปธ์ต๋๋ค.
๊ทธ๋์ ๋ฐ๋ก ํฐ์ ธ๋ฒ๋ฆฐ date ํ์์ input ๋ฌธ์ ๋ก ๋ฉ๋ถ์ด ์์๋ค์๐ข
๊ณ ๊ฐ์ ์์ฝ์ ์ฒญ์ด ์๋ฃ๋๋ฉด ๋ฉ์์ง๋ก ๋ฐ์๋ณผ ์ ์๋๋ฐ ํ๋ ๋์ฉ ์ฌ๋ผ์ค๋ ์์ฝ์๋ฃ ๋ฉ์์ง๊ฐ ๋ฐ ๋๋ง๋ค ์ ๊ธฐํ๊ณ , ์ด ๋ง์ ๊ฐ๋ฐํ๋ค๋ ์๊ฐ์ด ๋ค์์ด์. ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์๋ ์ด์ ์ค ํ๋์๊ฑฐ๋ ์.
์ ์ ํ๋ก์ฐ๋ฅผ ๋๋ฆ ์ ๊ฒฝ์จ์ ๋ง๋ค์๋ค๊ณ ์๊ฐํ์ผ๋ฏ๋ก, input ๋ฌธ์ ๊น์ง ํด๊ฒฐํ๊ณ ๋์๋ถํฐ๋ ํ ์ผ์ ๋ค ๋ง์ณค๋ค๊ณ ์๊ฐํ๋๋ฐ ๊ทธ๊ฑด ํฌ๋ํฐ ์ค์ฐ์ด์๋ค๋ ๊ฑฐ..
1. ๐โโ๏ธ๐โโ๏ธ : ํ์
์ฐฝ์ด ๋ถํธํด์.
์ฃผ์๋ฅผ ๊ฒ์ํ ๋ ํ์
์ฐฝ์ด ๋จ๋๋ก ํ๋๋ฐ ๋ชจ๋ฐ์ผ์์๋ ํ์
์ ํ์ฉํ์ง ์์ผ๋ฉด ์ค์ ์ ๋ค์ด๊ฐ์ ํ์ฉํด์ค์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ด ์ด ๋ถ๋ถ์ด ๋ถํธํ๋ค๋ ๊ณ ๊ฐ์ ์๊ฒฌ์ด ์์์ต๋๋ค.
์ธํด์ญ ๋ง๋ฐ์ง์์ด์ ๊ทธ๋ฐ์ง CTO๋์ด ํ์
์ด ์๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฅํ ์ง ์ฌ๋ถ๋ง ์์๋ณด๋ผ๊ณ ํ์
จ๋๋ฐ, ๋ชจ๋ฌ์ฐฝ์ผ๋ก ์ถฉ๋ถํ ๊ตฌํ์ด ๊ฐ๋ฅํ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐ์ ํ๊ณ , ์ต๋ํ ์ ์์ผ๋ก ๋๋ด๊ณ ์ถ์ด์ ๊ตฌํ์ ๋ง์น ํ ๋ชจ๋ฌ์ฐฝ์ด ๋จ๋๋ก ๊ฐ์ ๋ ํ๋ฉด์ ๋ณด์ฌ๋๋ ธ๊ณ ์ข์ ๋ฐ์์ ์ป์ ์ ์์์ต๋๋ค.
2. ์์ฝ์ ์ฒญ ์ ์ถ ์ค๋ณต ํด๋ฆญ ๋ฌธ์
์ ์ถ ๋ฒํผ์ ๋๋ฅด๊ณ ์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์๋ฒ๋ก ์ ๋ฌ๋๋ฉด ๋ค์ ํ์ด์ง๋ก ๋์ด๊ฐ๊ฒ๋ ํ๊ธฐ ๋๋ฌธ์ ํ
์คํธ ํ ๋ ๋น์ฐํ ๋ค์ ํ์ด์ง๋ก ๋์ด๊ฐ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ ธ์๋๋ฐ ์ ์ ์
์ฅ์์ ๊ทธ๊ฒ ์๋๋ผ๋ ๊ฒ์ ๋ฏธ์ฒ ์๊ฐํ์ง ๋ชปํ์์ต๋๋ค..๐จ
์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๊ฑฐ์ณ ๋ฒํผ ํ์ฑํ ์ฌ๋ถ๋ฅผ ๋ฐ๊ฟ์ฃผ๊ณ ์์๋๋ฐ, ์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ ์ถ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ์ฑํ ๋์ด์๋ ๋ฒํผ์ disabled ์์ฑ์ ๋นํ์ฑํ ํด์ฃผ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด ์ฃผ์์ต๋๋ค.
1. ์ง๋ฌธ์ ๋๋ ค์ ํ์ง ๋ง์.
CEO๋๊ป ํ๋ก ํธ์๋ ์
๋ฌด๋ฅผ ์ฌ์ญค๋ณด๊ณ ์์๋๋ฐ, ์ฆ์ ๋ฏธํ
์ผ๋ก ๋ต๊ธฐ๊ฐ ์ด๋ ค์ ์ต๋๋ค. ๋๋ฌธ์ CTO๋๊ณผ ๊ฐ์ด ์๋ ์๊ฐ์ด ๊ธธ์๋๋ฐ CTO๋์ ํ๋ก ํธ์๋๋ฅผ ์ ๋ชจ๋ฅธ๋ค๊ณ ํ์
์ ์ฝ๋๋ฅผ ์น๋ค๊ฐ ์ด๋ ค์์ด ์์ ๋ ๋๊ตฌ์๊ฒ ์ง๋ฌธํด์ผํ ์ง ๋ง๋งํ์์ต๋๋ค.
๋ ๋ฒ์งธ๋ก ์งํํ ์๋น์ค ๊ฒฐ๊ณผ ์ ์ถ ํ์ด์ง๋ฅผ ๋ง๋ค ๋ S3์ ์ด๋ฏธ์ง ์
๋ก๋๋ฅผ ํ๋ ๋ถ๋ถ์์ ๋งํ์๋๋ฐ ํผ์ ํ๋ฃจ๋์ ๊ณ ๋ฏผํ๋ฉฐ ํด๊ฒฐํ๋ ค๊ณ ํ์์ต๋๋ค.
CTO๋๊ป์ ์งํํ๋ค๊ฐ ์ด๋ ค์ด ์ ์ ์์๋๊ณ ํ์
์ ๊ทธ์ ์์ผ ๋ง์์ ๋๋ ธ๊ณ , ๋๋ฌด๋๋ ๊ฐ๋จํ๊ฒ ๋ต์ ์ฃผ์
์ ๋งํ๋ ์งํ์ด ์ ์ ํ๋ฆฌ๊ธฐ ์์ํ์ต๋๋ค.
S3๋ฅผ ์ด์ ๋ถํฐ ์ฌ์ฉํ๊ณ ์์๋์ง๋ผ ๋น์ฐํ CTO๋๊ป ์ฌ์ญค๋ดค์ผ๋ฉด ๊ธ๋ฐฉ ํด๊ฒฐํ์ํ
๋ฐ ์ด ๋ถ๋ถ์ ๊ฐ๊ณผํ๊ณ ํผ์ ๋๋ฌด ์ค๋ ์๊ฐ์ ๊ณ ๋ฏผํ๋ ๊ฑฐ ๊ฐ์ต๋๋ค.
ํ์๋ ํผ์ ํด๋ณผ ์ ์๋๋ฐ๊น์ง ํด๋ณด๊ณ , ๊ทธ๋ผ์๋ ํด๊ฒฐ์ด ์ด๋ ค์ธ ๋์ ์ด๋ ํ ๋ฌธ์ ์์ ์ด๋๊น์ง ํด๋ดค๋๋ฐ๋ ํด๊ฒฐ๋์ง ์์๋์ง ๋ง์์ ๋๋ฆฌ๋ฉฐ ์ง๋ฌธ์ ํ์ต๋๋ค.
๊ทธ๋ ๊ฒํ๋ ํผ์ ํ๋ฃจ ๊ผฌ๋ฐ ๊ณ ๋ฏผํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ณ ๋ช
์พํ๊ฒ ํด๊ฒฐํ ์ ์์๊ณ , ์๋ก ์ ๋ชจ๋ฅด๋ ๋ฌธ์ ๋ผ๋ฉด ํจ๊ป ๊ณ ๋ฏผํ๋ฉฐ ํด๊ฒฐํด์ฃผ๋ ค๊ณ ํ์
์ ๊ฐ์ฌํ์ต๋๋ค!
๋์ค์ ์๊ฒ ๋ ๊ฒ์ด, ์๋ฒ์์ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๊ฑฐ๋ ์ฝ๊ฒ ํ์ธ์ด ๊ฐ๋ฅํ ๋ถ๋ถ๋ ํผ์ ๋๋๊ฑฐ๋ฆฌ๋ฉฐ ๊ณ ๋ฏผํ๊ณ ์์๋๋ผ๊ณ ์. ์ด ๋ ํ์๊ณผ์ ์ํต์ ์ค์์ฑ๋ ๊นจ๋ซ๊ฒ ๋์์ต๋๋ค๐
2. ์ ์ ์ ํ๋์ด ๋์ ๊ฐ๋ค๊ณ ์๊ฐํ์ง ๋ง์.
์ ๋ ์ค์ค๋ก UI/UX๋ฅผ ์ ๊ฒฝ์จ์ ๊ณํํ๊ณ ์ฝ๋๋ฅผ ์ง ๋ค๊ณ ์๊ฐํ์๋๋ฐ ์ด๋ฒ ๋ฐฐํฌ ๊ฒฝํ์ผ๋ก ๊ฐ๋ฐ์์ธ ๋ณธ์ธ ์์ฃผ๋ก ์๊ฐ์ ๋ง์ด ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ฌ์ํ ๋ฒ๊ทธ๊ฐ ์ ์ ์๊ฒ ๋ถํธํจ์ ๋๋ผ๊ฒ ํ ์ ์๋ค๋ ๊ฒ์ ๋ฌผ๋ก ์ด๊ฑฐ๋์, ๋ถํธํ์ ํ์๋ค์๊ฒ๋ ์ฃ์กํ ๋ง์์ด ๋ค์์ต๋๋ค๐ญ
์ค๋ง ์ ์ ๊ฐ ์ด๋ ๊ฒ๊น์ง ํ๋ํ๊ฒ ์ด? ๋ผ๋ ์๊ฐ์ด ๋ ๋ค๋ฉด ๊ทธ๋ฅ ๋๊ธฐ์ง ๋ง๊ณ ์ฒ๋ฆฌ๋ฅผ ํด์ผ๊ฒ ์ต๋๋ค.
3. ์ง์ ํด๋ด์ผ ๋๋ค.
next.js์ typescript๋ ํ์
์์ ์ฒ์ ์ฌ์ฉํด ๋ณด์๋๋ฐ, ํ์
์ ๋์๊ธฐ ์ ์ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ๊ณต๋ถ๋ฅผ ํ๊ธด ํ์ง๋ง ์ญ์๋ ์ง์ ํด๋ณด๋ ๊ฒ๋งํผ ์ข์ ๊ฒ์ด ์๋ค๋ ๊ฑธ ๋๊ผ์ต๋๋ค.
์ด๋ฏธ ๋ค๋ฅธ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ถ์ด ์ง๋ ์ฝ๋๊ฐ ์์ด ๊ทธ ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ์ ์ด๋ ๊ฒ ์ง ๊ฒ์ธ์ง ๊ณ ๋ฏผํด๋ณด๊ณ , ์ง์ ์ ์ฉํด๋ณด๊ธฐ๋ ํ๊ณ , ์๋ฌ๋ฉ์์ง๋ค์ ํด๊ฒฐํ๋ฉฐ ๊ฐ์์์๋ ๋ณด์ง ๋ชปํ ์ง์์ ์ต๋ํ ์ ์์์ต๋๋ค๐
1. ์ง๋ฌธ์ ๋ง์ค์๋ค
์ฒ์๋ถํฐ ๊ณํ๊ณผ์ ์ ์ง๋ฌธ์ ํ์ง ์์ ๊ณ์ ์ถ๊ฐ๋๋ ๋ก์ง์ ์ถ๊ฐ์ ์์ ํ๋ ์๊ฐ์ด ๊ธธ์๊ณ , ๋ชจ๋ฅด๋ ๊ฒ์ ํผ์ ํด๊ฒฐํ๊ฒ ๋ค๊ณ ๋ง์ ์๊ฐ์ ํ๋นํ ๊ฒ์
๋๋ค.
์ฒ์์๋ ๋ฐ์ ํ์๋ค์ ์ํ ๋ฐฐ๋ ค๋ผ๊ณ ์๊ฐํ๋๋ฐ CTO๋๊ณผ ๋ํ๋ฅผ ํ๋ฉด์๋ถํฐ ์์
์๋๊ฐ ๋ถ๋ ๊ฒ์ ๋ณด๊ณ ์๋ชป๋ ํ๋จ์ผ๋ก ์ชผ๊ฐ์ด ์์ฐจ๊ฒ ์จ์ผํ๋ ์๊ฐ์ ํํฌ๋ฃจ ์๋นํ ๊ฒ ๊ฐ์ ์์ฌ์์ด ๋จ์ต๋๋ค.
2. ๋จ๋ค์๊ฒ ์ดํด๊ฐ ๋๋ ์ฝ๋๋ฅผ ์ณค๋๊ฐ
์ ์ ๋ ํ์๋ค์๊ฒ ์ข์ ์ฝ๋๋ฅผ ์ง๋ ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์๋ฐ ๋๋ ๊ทธ๋ฐ ์ฌ๋์ด์๋๊ฐ? ์ค์ค๋ก ๋ฌป๋๋ค๋ฉด ์๋์๋ค๊ณ ๋ตํ ์ ์๋ ์๊ฐ์ด์์ต๋๋ค..
์ ์ ๋์ด๋๊ณ ์ชผ๊ฐ์ง๋ ๋ณ์๋ก ๋ณ์๋ช
์ ์ด๋ป๊ฒ ์์ฑํด์ฃผ์ด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๊ณ , ๊ทธ ๊ณผ์ ์ ๋๋ง ์ ์ ์๋, ๋ช
ํํ์ง ์๋ ๋ณ์๋ช
์ผ๋ก ์ฝ๋๋ฅผ ์ณ์จ ๊ฑฐ ๊ฐ์ต๋๋ค.
๋ฆฌํฉํ ๋งํ์ฌ ๊ฐ๋
์ฑ์ ๋์ด๊ณ ์ถ์๋๋ฐ ์๊ฐ์ ์ฌ์ ๊ฐ ์์๋ค๊ณ ํ๋ฉด ๋ณ๋ช
์ด๊ฒ ์ฃ ?๐ข ์ค์ค๋ก ์ฐ์ฐํ ์ฝ๋๋ก ํ์
์ ๋ง๋ฌด๋ฆฌํ๊ฒ ๋์ด ์์ฌ์์ด ๋ฉ์ต๋๋ค.
์๋น์ค ์์ฝ ํ์ด์ง๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ ์ดํ ์์ฝ๊ฑด์๊ฐ ์ ํ ์ ๋๋น 1.5๋ฐฐ ์์นํ์์ต๋๋ค. First Paint๊ฐ 2.6์ด์์ 1.0์ด๋ก, Speed Index๋ 3.5์ด์์ 1.3์ด๋ก ๋จ์ถ๋์์์ ํ์ธํ์ต๋๋ค!
์กฐ๊ธ ๋ ์ฑ๋ฅ์ ๋์ด๋ ์์
์ ํ ์ ์์์ํ
๋ฐ ๊ทธ๋ฌ์ง ๋ชปํด ์์ฝ์ต๋๋ค.
์ฑ
์๊ฐ์ ๊ฐ์ง๊ณ ๋ง์ง๋ง๊น์ง ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค!๐
๋น๋ก ๊น๋ํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ์ง ๋ชปํ ์ฑ๋ก ๋ง๋ฌด๋ฆฌํ๊ธด ํ์ผ๋, ์ฃผ์ด์ง task๋ฅผ ์ต๋ํ ๋๋ด๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง๋ ํด๊ทผ์๊ฐ์ด ์ง๋๋ ํผ์ ๋จ์ ์ฝ๋๋ฅผ ์ณค๋ ๊ธฐ์ต์ด ๋จ์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ ํ๋๋ ์ค์ ์๋น์ค์ ๋ฐฐํฌ๊ฐ ๋์๊ณ , ๊ฒฐ๊ณผ ์ ์ถ ํ์ด์ง๋ ๋ง์ง๋ง๊น์ง ์ค์ ๋ฐฐํฌ๋ฅผ ํ์ง ๋ชป ํ์ง๋ง ํผ ์ ์ถ API๋ง ์๋ค๋ฉด ์ฌ์ฉํ ์ ์๋๋ก QA๊น์ง ์งํํ์ฌ ์์ฑํด ๋์๊ธฐ ๋๋ฌธ์ ์กฐ๋ง๊ฐ ์์ ํ ๋ฐฐํฌ๋ ๊ฑฐ ๊ฐ์ต๋๋ค!
๊ธฐ๊ฐ์ ์งง์ง๋ง ์ผํ๊ณ ์ถ๋จ ์๊ฐ์ด ๋๋ ํ์ฌ์ ํฉ๋ฅํ๊ฒ ๋์ด ๊ธฐ๋ปค๊ณ , ๋ ๋ํ๋์ ์ด์ ์ ์ ๋ํ ์๊ทน์ด ๋์๋ ํ์
์๊ฐ์ด์์ต๋๋ค.
๋ง์ด ๋ฏธํกํ๋ค๊ณ ์๊ฐํ๋๋ฐ ์ ํ๊ณ ์๋ค๋ฉฐ ์นญ์ฐฌํด ์ฃผ์๊ณ ๐ญ ์ข์ ๋ง์๊ณผ ์กฐ์ธ์ ์๋ผ์ง ์๊ณ ํด์ฃผ์ CEO, CTO๋๊ป ๊ฐ์ฌํ๋ค๋ ๋ง์์ ์ด๋ฏธ ๋๋ ธ์ง๋ง..! ์ฌ๊ธฐ์๋ ์ ์ด๋ด
๋๋ค.
์ฐ์ , ์ ์ฉํ์ง ๋ชปํ Context API๋ฅผ ๋ฐฐ์ฐ๊ณ ์ถ์ต๋๋ค. ๋ฐฐํฌ๋ ๋ถ๊ฐ๋ฅํ๊ฒ ์ง๋ง ํ์ต์ ๋ชฉ์ ์ผ๋ก ํผ์ ๋ฆฌํฉํ ๋ง์ ์งํํด๋ณด๋ ค๊ณ ํฉ๋๋ค.