next.js์์ .env.local ํ์ผ์ ํ๊ฒฝ๋ณ์๋ฅผ ๋ฃ์ด์ ์ฌ์ฉํ ์ ์๋ค. ์์๊ฐ์ด ํ์ด์ด๋ฒ ์ด์ค ํ์ด์ด์คํ ์ด ์ ๊ทผ ํค๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ๊ณต๊ฐํ๋ฉด ์์ข๊ธฐ ๋๋ฌธ์ ํ๊ฒฝ๋ณ์๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋๊ฒ ์ข๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก .env.local ์ ํตํ ๋ชจ๋ ํ๊ฒฝ๋ณ์๋ Node.js์์๋ง ์ฌ์ฉํ ์ ์๋๋ฐ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ ค๋ฉด NEXT_PUBLIC_์ ๋ถ์ฌ์ผ ํ๋ค๊ณ ํ๋ค. (์์ ์ฌ์ง์ฒ๋ผ) ๊ทผ๋ฐ ์ ์ฌ์ง์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง ๋งจ ๋ง์ง๋ง๋ถ๋ถ์ ์ ๋ ๊ฒ ๋ฐ๊ฟ ๋์๋ ์ ์๋ํ๊ธด ํ๋ค. nextjs ๋ .env.local์์ process.env๋ก ํ๊ฒฝ๋ณ์๋ฅผ ๋ก๋ํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ์ง์์ด ์๋ค๊ณ ํ๋ค. ์๋ฌดํผ ์ด ๋ฐ์๋ .env, .env.development, .env.production ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ..
์ ์ฒด ๊ธ
์ฑ์ฅํ๊ธฐ ์ํ ๊ธ์ ์์ฑํ๋ ค๊ณ ๋ ธ๋ ฅ์ค ์ ๋๋ค1. ์์ผ์ ๋ฐฐ์ด๋ค. - ๋ฐ์ดํฐ ํต์ ์์๋ ์์ผ์ ๊ตฌ์ฑํ๊ณ , ์ค์ต์ ์งํํ์๋ค. ๋ฐ์ดํฐ ํต์ ์์๋ ๊ฐ ๋ ์ด์ด์ ํ๋กํ ์ฝ์ ์ง์ ๊ตฌํํด๋ณด๋ ์ค์ต์ ํ์๊ณ L1,L2 ๋ฅผ ๊ณต๋ถํ์๋ค. ์ปดํจํฐ๋คํธ์ํฌ์์๋ ๊ทธ ์์ ๋ ์ด์ด๋ค์ ๋ํด ๊ณต๋ถํ๋ค. 2. TCP/IP์ ๋ํ ์์ธํ ํ์ต TCP์๋ ๋ง์ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์๊ณ , IP์๋ Dijkstra ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ด ํฌํจ๋์ด์๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ๋ค์ ํ์ตํ๊ฒ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์๋ 3๊ฐ์ง๊ฐ ์ฃผ ํ์ต ๋ชฉํ๊ฐ ๋๊ฒ ๋ค. ์ปดํจํฐ ๋คํธ์ํฌ์ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ ์ดํด ์์ผํ๋ก๊ทธ๋๋ฐ ์ปดํจํฐ๋คํธ์ํฌ ๋ณด์ ์ดํด
ํ์
์คํฌ๋ฆฝํธ๋ก ์ฝ๋ฉ์ ํ๋ค๋ณด๋ฉด ์ฌ์ฌ์น ์๊ฒ ๋ณผ ์ ์๋ ๊ฒฝ๊ณ ๊ฐ [error] Property does not exist on type 'something' ์ด๋ค. ์ด๋ค ๋ธ๋ก๊ทธ ๊ธ์์ ์ด๋ฅผ ๊ทธ์ any๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐํ๋๋ฐ ์ด๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ๋ค. ์๋ ์ด๊ธฐ ๋ ๋๋ง ์์ ๋ด ๊ฐ์ธํ๋ก์ ํธ์ธ leafylog์ heatmap ๋ถ๋ถ์ ์คํฌ๋กค์ ํ๋จ๊ณ ์ ํ๊ธฐ ์ํ์ฌ ๋ฃ์ ์ฝ๋์ด๋ค. ํ์
์คํฌ๋ฆฝํธ์์๋ ์์๊ฐ์ด ์ถ๊ฐํ์์ ๋ ์๋ํฐ์ ๊ฒฝ๊ณ ๊ฐ ๋ฌ๋ค. Propery does not exist on type never์ด๋ค. never๋ ์๋ฌด๊ฒ๋ ์ง์ ํด์ฃผ์ง ์์์ ๋๋ฅผ ์๋ฏธํ๋ค. ๋ณธ ์๋ฌ์ ํด๊ฒฐ์ฝ๋์ธ๋ฐ ๋ฅผ ์ฐ์ง ์๋๋ค๋ฉด never๊ฐ ๋๋ค. ํ์
์ ์ ๋๋ก ์ง์ ํด์ฃผ์ง ์๋๋ค๋ฉด ๊ณ์ํด์ ๊ฒฝ๊ณ ๊ฐ ๋์ฌ ๊ฒ์ด๊ธฐ์ ํ์
์ง์ ์ ์ ..
๋ด ์ฝ๋ํธ๋ฆฌ ์์ด๋: rlaxowls1
๊ฐ์ธ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ํ ๊ฑฐ๋ฉด ๋ด๊ฐ ์ํด๋ณธ ๊ฒ๋ค์ ๊ตฌํํด ๋ณด๋๊ฒ ์ข๋ค. ์๋ฅผ๋ค์ด ํฌ์ผ๋ชฌ api๋ฅผ ์ด์ฉํ ๋๊ฐ ๋ง๋ค๊ธฐ์์ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํด ๋ณธ๋ค๋๊ฐ ํ๋๊ฒ ๋์์ด ๋ ๊ฒ์ด๋ค. ํ์ต๊ธฐ๋ก ์น์๋น์ค๋ ์ ์ฐจ ์๋น์ค๋ฅผ ํ์ฅํด๋๊ฐ๋ฉด์ ์ฌ๋๋ค์๊ฒ ๊ณต๊ฐํ์ฌ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ด๋ค. ํ์
์คํฌ๋ฆฝํธ์ ์ต์ํด์ง๋๊ฒ ์ข๋ค. ์ค์ํ ๊ฑด ํ์
์ ์ด๋ป๊ฒ ์ฌ์ฌ์ฉ์ฑ์ด ์ฉ์ดํ๊ฒ ํ๊ณ ํจ์๋ฅผ ๋ ๋ช
ํํ๊ฒ ์ค๋ช
ํด์ค ์ ์๋์ง. ํ์
์คํฌ๋ฆฝํธ์์ ์๋ฌ๊ฐ ๋๋ฉด useState ํน์ '=' ์์ ํ์
์ด ๋งค์นญ์ด ๋์ง ์๋์ง ํ์ธํด๋ณด๋ฉด ์ข๋ค.
์ฌ๋ฌ๋ถ๋ค ๋ฆฌ์กํธ์์ useEffect๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฉ์ ํ๋๋ฐ useEffect๊ฐ 2๋ฒ ์คํ๋์ด ๋๊ฐ ํ์
จ๋ ์ ์ด ์์ผ์ ๊ฐ์? ์ ๋ํ useEffect์์ ๋ฐ์ดํฐ๊ฐ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ์ฝ์ ์ถ๋ ฅ์ ํด๋ณด๋ฉด 2๋ฒ์ด ์ถ๋ ฅ๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด๊ฒ์ ์ด์ ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 1.React StrictMode - CRA์์ React Strict Mode ์๊ธฐ cra๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค๋ฉด strict mode๊ฐ index.js์ ์ ์ฉ๋์ด ์์ ํ
๋ฐ ์ด๊ฒ์ ์ ๊ฑฐํ๋ฉด ๋ฉ๋๋ค. 2. Next.js์์ React Strict Mode ์์ ๊ธฐ next.config.js์์ reactStrictMode๋ฅผ false๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋ฉ๋๋ค. strict ๋ชจ๋๋ ์์ ํ์ง ์์ ์๋ช
์ฃผ๊ธฐ, ๋ ๊ฑฐ์ API ์ฌ..
๋๋ ๊นํ๋ธ ์๋๋ฐญ ์ฒ๋ผ ๋ด๊ฐ ํ์ตํ ๊ฒ์ heatmap์ ํํ๋ก ๋ณด์ฌ์ค ์ ์๋ ์น์๋น์ค (๊ฐ์ธ ํ ์ดํ๋ก์ ํธ)๋ฅผ ๋ง๋๋ ์ค์ด๋ค. ์ฌ์ค, ๋ฉํ ๋๊ป์ ๋ด๊ฐ ์๊ฐํ๋ ๊ธฐ๋ฅ๋ค์ ๋ํญ ์ค์ด์๊ณ ์ ์ํ์
์ ์กฐ๊ธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์๋๋ฐ ์๊ฐ๋ณด๋ค ๊ณ ๋ คํ ๊ฒ ๋ง์๋ค. dummy data๋ฅผ ๋ฃ๊ณ ui๋ฅผ ๊ตฌ์ฑํ์ ๋์ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ๋ถ์์ ๋๋ ์ฝ๋๊ฐ ๋ฌ๋ผ์ง๊ณ ์์์น ๋ชปํ๋ warning(ํ์
์คํฌ๋ฆฝํธ props๊ด๋ จ.. ์ผ๋จ any๋ก ๋์ง ํด๋จ๋๋ฐ ๋นจ๋ฆฌ ๋ฐ๊ฟ์ผ ํ๋ค. asap...)์ ๋ง๋๊ธฐ๋ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ด์ด๋ฒ ์ด์ค ์คํ ์ด๋ง ์ฌ์ฉํ๊ณ ๋ฐฑ์๋ ๋ก์ง์ ์์ ๋ชป์ฐ๋ค๋ณด๋ ๊ตฌํ์ด ์ข ์ด๋ ค์ ์ก๋ค. ๋๋ ๋จ์ง ๋ชฉํ์ถ๊ฐ์ ํ ์ผ ์ถ๊ฐ๋ง ํ๋ค๋ฉด ๋ฐฑ์๋์์ ํ์ํ ๊ฒ ๊ณ์ฐ ํ ๊ฐ์์ jsonํ์ผ๋ก ๋ด๋ ค๋ค ์ฃผ๋ฉด ๋งค์ฐ ํธํ๊ฒ ๊ฐ๋ฐํ ์ ์๊ฒ ..
์์ ๋ฐ์ดํฐ๋ฅผ firestore์์ ๋ฐ์์๋ค. ์์ state์ ์ ์ฅ์ ํด์ผํ๋ค. ์ด๊น์์ด ์๊ธฐ๋ ์๋ฌ useState์ ๋ฌด์จ ํ์
์ธ์ง ์ฃผ์ง ์๊ณ ๋ฐฐ์ด์ด๋ผ๋ ๊ฒ๋ง ์๋ ค์คฌ์ผ๋ ์์ ๊ฐ์ ์๋ฌ๊ฐ ์๊ธด๋ค. ์ด ์น๊ตฌ๋ค๋ never ํ์
์ด ์๋๋ผ๋ฉด์ ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ฟ๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋๋ค ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค. ํ๋๋ฅผ ํด๊ฒฐํ๋คํด๋ ํ๋๋ง ํด๊ฒฐ๋๊ณ ๋๋จธ์ง๋ ํด๊ฒฐ๋์ง ์์๋ค. ์๊ฐ์ด ํด์ค๋ค๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก title,spentTime,progress๊ฐ {id:string}์ด ์๋๋ผ๊ณ ํ๋๋ฐ ์ด ๋ถ๋ถ์ ์ ์ด๋ ๊ฒ ๊ฒฝ๊ณ ๊ฐ ๋์ค๋์ง ์ดํด๊ฐ ์๋๋ค. ํด๊ฒฐ๋๋ค๋ฉด ๋ค์ ํฌ์คํ
ํด์ผ๊ฒ ๋ค.