๋ฐฑ์๋ ํ์ ๋ถ์ด api ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์
จ๋ค. ๋ฐ์ดํฐ ํ์์ด application/jsonํ์์ผ๋ก ๋ณด๋ด๋ผ๊ณ ํด์ ๊ทธ๋ ๊ฒ ํ๋ค. ๋ง์ฝ ๊ทธ๋ ๊ฒ ํ์ง ์์ ์ 415 ์๋ฌ๋ฅผ ๋ง์ฃผํ๊ฒ ๋๋ค. ์ด์ ๋ ๊ธ ์์ฑ, ๊ธ ๋ถ๋ฌ์ค๊ธฐ๋ฅผ ํ๊ณ ์ค๋์ ์์ ๋ฐ ์ญ์ ๋ฅผ ํ ์์ ์ด๋ค.
ํ๋ก์ ํธ
๋๋ ๊นํ๋ธ ์๋๋ฐญ ์ฒ๋ผ ๋ด๊ฐ ํ์ตํ ๊ฒ์ heatmap์ ํํ๋ก ๋ณด์ฌ์ค ์ ์๋ ์น์๋น์ค (๊ฐ์ธ ํ ์ดํ๋ก์ ํธ)๋ฅผ ๋ง๋๋ ์ค์ด๋ค. ์ฌ์ค, ๋ฉํ ๋๊ป์ ๋ด๊ฐ ์๊ฐํ๋ ๊ธฐ๋ฅ๋ค์ ๋ํญ ์ค์ด์๊ณ ์ ์ํ์
์ ์กฐ๊ธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์๋๋ฐ ์๊ฐ๋ณด๋ค ๊ณ ๋ คํ ๊ฒ ๋ง์๋ค. dummy data๋ฅผ ๋ฃ๊ณ ui๋ฅผ ๊ตฌ์ฑํ์ ๋์ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ๋ถ์์ ๋๋ ์ฝ๋๊ฐ ๋ฌ๋ผ์ง๊ณ ์์์น ๋ชปํ๋ warning(ํ์
์คํฌ๋ฆฝํธ props๊ด๋ จ.. ์ผ๋จ any๋ก ๋์ง ํด๋จ๋๋ฐ ๋นจ๋ฆฌ ๋ฐ๊ฟ์ผ ํ๋ค. asap...)์ ๋ง๋๊ธฐ๋ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ด์ด๋ฒ ์ด์ค ์คํ ์ด๋ง ์ฌ์ฉํ๊ณ ๋ฐฑ์๋ ๋ก์ง์ ์์ ๋ชป์ฐ๋ค๋ณด๋ ๊ตฌํ์ด ์ข ์ด๋ ค์ ์ก๋ค. ๋๋ ๋จ์ง ๋ชฉํ์ถ๊ฐ์ ํ ์ผ ์ถ๊ฐ๋ง ํ๋ค๋ฉด ๋ฐฑ์๋์์ ํ์ํ ๊ฒ ๊ณ์ฐ ํ ๊ฐ์์ jsonํ์ผ๋ก ๋ด๋ ค๋ค ์ฃผ๋ฉด ๋งค์ฐ ํธํ๊ฒ ๊ฐ๋ฐํ ์ ์๊ฒ ..

1์ฐจ ์์
ํ๊ณ 2์ฃผ์ฐจ ๋ฉํ ๋ง์ ๋ฐ์ํ์ฌ ์์๊ฐ์ด ๋ฉ์ธํ์ด์ง๋ฅผ ์ดํ๋ง์ ์์ฑํ ์ ์์๋ค. ์ด์ ๊ณผ ๋ค๋ฅด๊ฒ ํจ์ฌ ์ฝ๋๊ฐ ๊น๋ํด์ก๋ค. ์ญ์ TopDown ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ ์ฝ๋์ ๊ตฌ์ฑ์ด ๋ ์๋ฒฝํด์ง๊ณ ์๋ฒฝํด์ง๋ ์ฝ๋ฉํ๋ ๊ฒ๋ ์ฌ๋ฐ๋ค. ์ด์ ์ bottom up ๋ฐฉ์์ผ๋ก ํ์ ๋๋ ์ฝ๋๊ฐ ๋๋ฌด ์๋ง์ด๊ณ ๋ค์ด๋ฐ๋ ์๋ฌด๋ฐ ๊ท์น์์ด ๋์กํ์๋ค... (๋ฐ์ฑ) recoil์ ์ฐ๋ฉฐ.. recoil์ ์ฌ์ฉํ๋ค. ์๋ํ๋ฉด ๋๋ ์ฒ์๋ถํฐ ๊ฐ๋ฐํ ๋ ์ปดํฌ๋ํธ๋ฅผ ๋๋ ๋์๋ค. ์๋ก ๋ถ๋ชจ ์์ ๊ด๊ณ๋ ์๋ ์ปดํฌ๋ํธ์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด์ผ ํ๋ ์ผ์ด ์๊ฒผ๋ค. ์ข ๋ ์์ธํ๊ฒ ๋งํ์๋ฉด ์๋๋ฅผ ํด๋ฆญํ ๋ ๋ฌ์ฑ ๊ณผ์ ์ ์ ์ผ์ด ๋ฐ๋์ด์ผ ํ๋ค. ์ด ํ
์คํธ๋ index.tsx์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ๊ธฐ์กด์ react ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ธฐ๋ ์ด๋ ต๋ค. ๋ฌผ..

์ค๋ ํดํผํ๊ฒ ์ฝ๋ฉ์ ํ๋ค๊ฐ next.js๋ก ์ธํด ๋นํฉ์ ์ข ํ์๋ค. ๋ถ๋ช
์์๊ฒ ์ ์ ๋ฆฌ๊ฐ ๋์ด ์๋ ๊ฒ์ด ์๋ก๊ณ ์นจ๋ง ํ๋ฉด ์คํ์ผ์ด ์ ์ฉ์ด ์ ๋๋ ๋ฌธ์ ์ด๋ค. ๋ํ ์ค๋ฅ๋ฉ์ธ์ง๋ ์์ ๊ฐ๋ค. ์ด๋ ๋ช
๋ฐฑํ next.js ์ด์๋ค. ๋ด ์ฝ๋๋ฅผ ๋ค์ ์ดํด ๋ดค๋ค. ์ ์ฝ๋์์ shift๋ state์ด๋ค. next.js ์๋ฒ์์ styled-components์ shift๋ฅผ ์ธ์ ๋ชปํ๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ค. ์ ๋ถ๋ถ์ ์ด๋ป๊ฒ ๊ณ ์น๋ฉด ์ข์๊น ๋์ ๋ก์ง์ ์ ์ง ํ๋ฉด์ ๋ฐ๊ฟ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น? state๋ฌธ์ ๊ฐ ์๋์๋ค. ์ด๋ ์๋ฒ์์์ ๋ธ๋ผ์ฐ์ ๊ฐ๊ฐ์์ styled-components์ ํด์๊ฐ์ด ๋ฌ๋ผ์ ์๊ธฐ๋ ๋ฌธ์ ์๋ค. babel-plugin-styled-components๋ฅผ ์ค์นํ๊ณ babelrc๋ฅผ ๋ง๋ค์ด ์์ ๊ฐ์ด ..

๋๋์ด..! LeafyLog ๋ฉ์ธ ํ์ด์ง ์ฝ๋ฉ์ ์์ํ๋ค. ์๋ ์ต์ข
๋์์ธ ์์์ด๋ค. ์ฃผ์ ๊ธฐ์ ์ next.js์ typescript์ด๋ค. ๋ฌธ์ ์ 1 ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด๋ ค์ ๋ ์ ์ next.js์ typescript์๋ค. ๋๋ TopDown๋ฐฉ์์ผ๋ก ๊ณต๋ถํ๋ ๊ฒ์ ์ข์ํด์ ์ด๊ฒ๋ค์ ๊ฐ์๋ฅผ ๋จผ์ ํ์ตํ ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ ๋ณด๋ค ์ผ๋จ ์ด ๋๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ๊ฒ์ ์์ํ๋ค. ์ด๋ฐ๋ถํฐ styled-components๊ฐ ์๋ก๊ณ ์นจํ๋ฉด ๋์ํ์ง ์๋ ๋ฑ์ ์์ํ ๋ฌธ์ ๊ฐ ์์๋ค. ๋ํ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋ props์ ๋๊ธธ ๋๋ง๋ค ๋ฌด์จ ํ์
์ธ์ง ์ง์ ํด์ค์ผ ํ๋ ์ฌ๊ฐ ๋ฒ๊ฑฐ๋ก์ด๊ฒ ์๋์๋ค. Typescript์ ์ฅ์ ์ ์ด๋์ ๋ ์๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋น์ฅ ํ๋ก์ ํธ๋ฅผ ํ ๋ ์๊ฐ์ด 2๋ฐฐ๋ก ๊ฑธ๋ฆฌ๋ ์ด๊ฑธ ์ ์จ์ผ ํ๋๊ฐ..

์ถฉ๋จ๋ sw์์นด๋ฐ๋ฏธ์ ๊ต์ก์์ผ๋ก์ ํํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋์๋ค. ์ฒ์๋ถํฐ nextjs๋ฅผ ์ฐ๋ ๋ฐ ์ด๋ ค์ ์ค ํ๋๋ url์ ์ง์ https://localhost:3000๊ณผ ๊ฐ์ด ์
๋ ฅํ๋ฉด ์ ์ฒด ํ์ด์ง์ ์คํ์ผ์ด ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์๋ค. ๊ธ์ ์ฐ๋ ์์ค์ 2๊ฐ์ง ์ค๋ฅ ์ค ํ๊ฐ์ง ์ค๋ฅ๋ ์ฐพ์ ์ ์์๋ค. ์์ ๊ฐ์ด ํด๊ฒฐํ๊ณ , ๋๋จธ์ง ์ค๋ฅ๋ ์๋์ ๊ฐ๋ค. ์๋๋ค.. ์์ ๊ฒ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ด๋ nextjs์์ ssr์ ํ ๋ styled component๊ฐ ๋ฐ์์ด ์ ๋์ด์ ๋ผ๊ณ ํ๋ค. https://tesseractjh.tistory.com/164 [Next.js] Next.js์์ Prop `className` did not match ๊ฒฝ๊ณ ๊ฐ ๋จ๋ ์ด์ ์ด ๊ธ์ Prop `prop..

๋๋์ด ์์ฑ๋ ์๋ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๊ธฐํ๊ฐ ์๊ฒผ๋ค. ์ฌ์ค, ๋ฉํ ๋์ ๋์์ด ์์์ผ๋ฉด ์์ํ์ง๋ ์์์ ํ๋ก์ ํธ์ด๋ค. ์ด๋ฒ ๊ธฐํ์ ๋ง์ด ๋ฐฐ์์ผ์ง! ์ฒ์๋ถํฐ ๋ด๊ฒ ๋์ ์ ์ธ ๊ณผ์ ๋ฅผ ์ฃผ์
จ๋ค. ํ ๋ฒ๋ ํผ๊ทธ๋ง๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์๋๋ฐ ํผ๊ทธ๋ง๋ก ์์ด์ด ํ๋ ์์ ์ ์ํ๋ผ๋ ์์ ์๋ค. ๋ง๋งํ์ง๋ง ๋ฐ๋ก ์์ํ๊ณ ์ด๋์ ๋ ๋ง์กฑํ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์๋ค. ๊นํ๋ธ ์๋๋ฐญ์ ๋ณด๋ฉฐ ๋ฟ๋ฏํ๋ ๊ฒฝํ ๋ค๋ค ์์ ๊ฒ์ด๋ค. ์ปค๋ฐ ๋ฟ๋ง์ด ์๋๋ผ ์ฌ๋ฌ ํ์ต๋ค์ ๊ธฐ๋กํ๊ณ ์ด๋ฅผ ์๋๋ฐญ์ผ๋ก ๋ณผ ์ ์๋ค๋ฉด ๋๊ธฐ๋ถ์ฌ์๋ ๋์์ด ๋ ๊ฒ๊ณ ๋ฌด์๋ณด๋ค ์์ ์ด ํ์ตํ ๋ด์ฉ๊ณผ ๋ชฉํ๋ฅผ ๋น๊ตํ ์ ์์ด ๋ฉํ์ธ์ง์๋ ๋์์ด ๋ ๊ฒ์ด๋ค. (์ ์งํ๊ฒ ์ฑ์คํ ๊ธฐ๋กํ๋ค๋ ๊ฐ์ ํ์) ๋ชฉํ ์ค์ ๊ธฐ๋ฅ๊ณผ ์ง์ฒ๋ ๊ธฐ๋ก ๊ธฐ๋ฅ ๊ทธ๋ฆฌ๊ณ ๋ชฉํ์ ๋ํ ์ง์ฒ๋์ ํผ์ผํ
์ด์ง๋ฅผ ์๋ ค์ฃผ๋ ๊ธฐ๋ฅ. ๊ทธ..