์ฐ๋์ด ์ฐ์ด๋ค... ๊ฐ๋ง์ ๋งฅ๋ถ์ ํค๋ฉด ์ฃ์ผ ์ค๋ฅ ์์ ๋ง ํ๋ ๊ฑฐ ๊ฐ์ ๊ธฐ๋ถ.. vue js ๋ก ์์
ํ๋ ค๋๋ฐ ํ์ผ ์ ์ฅ์ด ์๋๊ณ ์๊พธ permission ์๋ฌ๊ฐ ๋ฌ๋ค.. Retry as Sudo ๋ก ํด๋ ๋น๋ฒ์
๋ ฅํ๊ณ ๋๊ฐ์ ์ฐฝ ๊ณ์ ๋ฐ ๋ฟ.. Error: EACCES: permission denied, rmdir ํด๊ฒฐ๋ฐฉ๋ฒ sudo chown -R [username] . [username]์ echo $USER ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ ๋์ค๋ ๊ฒฐ๊ณผ๋ฅผ ์
๋ ฅํด์ฃผ๋ฉด ๋๋ค. ์ฒ์์ ์ . ์ ๋ชป๋ด์ usage: chown [-fhnvx] [-R [-H | -L | -P]] owner[:group] file ... chown [-fhnvx] [-R [-H | -L | -P]] :group file ... ์ด ์น๊ตฌ๋ค๋ง ๊ณ์..
error
ํ์ฌ ๋ค๋๋ฉด์ ํ์ฌ ์ปดํจํฐ ์ฐ๊ณ , ์ง์์๋ ๋ฐ์คํฌํ์ผ๋ก ํ๊ณ ํ๋ค๋ณด๋ ๋ด ๋งฅ๋ถ์ ์ธ ์ผ์ด ๋ง์ด ์์ด์ก๋๋ฐ ๊ฐ๋ง์ ๋งฅ๋ถ์ผ๋ก ์ธ๊ฐ์ ๋ค์ผ๋ ค ํ๋ค๊ฐ vue.js ์ค์น๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋์ ๊ณ์ ์ ๋จน์๋ค. ๋ด๊ฐ ์
๋ ฅํ ๋ช
๋ น์ด๋ ์๋์ ๊ฐ๋ค. npm install -g @vue/cli ๊ทธ๋ฆฌ๊ณ ๋์จ ์ค๋ฅ. zsh: command not found: npm ๋ฐ์คํฌํ์์๋ ์๋ง๋๋๊ฒ.. ๊ทธ๋ฆฌ๊ณ ๋งฅ๋ถ์ผ๋ก ํ ์ฝ๋ฉ์ด ์ผ๋ง๋ฐ npm๋ node๋ ์๋์ค์ง? ๊ทธ๋ ๋ค๊ณ ํด์ yarn global add @vue/cli ์ด ๋๋ ๊ฒ๋ ์๋์๋ค. npm install๋ ๋์ง ์์์ node ๋ npm ๋ ์๋ฌด๊ฒ๋ ๋์ง ์์๋ค. node๋์๋ค๊ณ ํ๋ ํํ์ด์ง์์ node ๋ฅผ ๋ค์ด ๋ฐ์๋๋ ์ด์ ๋ค๋ฅธ ์ค๋ฅ๋ฅผ ๋์ ๋ค npm ERR! cod..

๋ง์
๊ธฐ๋ฅ๊ฐ์ง๊ณ ์ฌ์ค ๋ด๊ฐ ์ธ ๊ธฐ๋ฅ์ ์ถฉ๋ถํ์ง๋ง (...) ๊ทธ๋๋ ๋บ์
๊ธฐ๋ฅ๊น์ง ๊ตฌํํด์ ๋ฃ์๋ค. ใ
ใ
์ฒ์์ handleAdd ํจ์ ๋ฐ์ handleSubtract ํจ์๋ฅผ ๋๊ฐ์ด ๋ง๋ค๋ค๋ณด๋, ์ ์ด๊ฑฐ ๊ทธ๋ฅ ํ๋ผ๋ฏธํฐ ๋ฐ์์ ํ๋์ ํจ์๋ก ํฉ์น๋ฉด ๋๊ฒ ๊ตฌ๋! ํ๊ณ ์ฌ๋นจ๋ฆฌ ์์ ํ๋ค! ๋ง์น ์ฒ์๋ถํฐ ๊ณํํ๋ ๊ฒ์ฒ๋ผ ใ
ใ
๋บ์
๊ธฐ๋ฅ const handleOperation = (operator: string) => { const t1 = state.time1.includes(":") ? state.time1.split(":") : [state.time1, "00"]; const t2 = state.time2.includes(":") ? state.time2.split(":") : [state.time2, "00"];..
https://velog.io/@hyeonq/Next.js-next-export [Next.js] next exportํ์ฌ ์ ์ ๋น๋ ์ static files(js, css)๋ฅผ ์ฐพ์ง ๋ชปํ๋ ์ค๋ฅ Next.js๋ React์ฉ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ํ๋ ์์ํฌ์
๋๋ค. ๊ทธ๋ ์ง๋ง React๋ฅผ ์ฌ์ฉํ ๋์ฒ๋ผ ์ ์ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์์ฃ . next export๋ผ๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด out ๋๋ ํ ๋ฆฌ(command ์
๋ ฅ ์ ๋ค๋ฅธ ์ต์
velog.io nextํด๋ ์ญ์ ํ dev. node:events:489 throw er; // Unhandled 'error' event https://velog.io/@zinkiki/Node.js-events.js183-throw-er-Unhandled-error-event-%EC..
next.js 13 ๋ฒ์ ์์ layout.tsx๋ฅผ ์์ ํจ๊ณผ ๋์์ ์ค๋ฅ๊ฐ ๋ฌ๋ค. Uncaught Error: invariant expected app router to be mounted at useRouter app-index.js:32 The above error occurred in the component: ์๋ฌ๊ฐ ๋๋ฉด chat GPT ํํ
๋จผ์ ๋ฌผ์ด๋ณด๋๋ฐ, next.13๋ฒ์ ์ ๋ฑํ ์ด์ฉํ๊ธฐ๊ฐ ์ ๋งคํ๋ค.. ใ
,ใ
์ฑ ์งํผํฐ์ ๋ง์ง๋ง์ด 2021๋
9์์ธ๊ฐ ๊ทธ๋์.. ๊ทผ๋ฐ 13๋ฒ์ ์ ๋์จ์ง ์ผ๋ง ์๋ผ์ ์ฑ์งํผํฐ๊ฐ ๋๊ฐ์ ๋๋ต๋ง ๋ฐ๋ณตํ๋ค ์ถ์ผ๋ฉด ์ ์ด๊ฑฐ next ๋ฌธ์ ๊ตฌ๋ํ๊ณ ๋ฐ๋ก ๊ตฌ๊ธ๋ก ๋
ธ์ ์ ํ์ด๋ฒ๋ฆฌ๋ฉด ๋จ.. https://github.com/vercel/next.js/issues/42829 Next..
์ด ์๋ฌ๋ ์ง๋ ๋ฒ ๊ฒ์๊ธ ์ ์ฐ์ฅ์ ์ด๋ค.. [error] key๊ฐ์ ๋ฃ์ด์ฃผ์ง ์์ ์๊ธฐ๋ ์ค๋ฅ Warning: Encountered two children with the same key, [object Object]. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and co moon-lilac.tistory.com ์ง๋ ๋ฒ์๋ key ๊ฐ์ ๋ฃ์ด์ฃผ์ง ์์์ ์ค๋ฅ๊ฐ ๋ฌ๋๋ฐ, ์ด๋ฒ์๋ ๊ฐ์ ํค ๊ฐ์ ๊ฐ์ง ์น๊ตฌ๊ฐ ์๋ค๋ ์ค๋ฅ๋ฅผ ๋ด์ฃผ์๋ค. ..

์ง๋ ๋ฒ์ ์ด ํ๋ก์ ํธ๋ฅผ ํต์งธ๋ก ํ์
์คํฌ๋ฆฝํธ + next.js๋ก ์ฎ๊ธฐ๋ ์์
์ ํ๋ค. ( + tailwind) ๊ทธ ์ค์ ํ๋์ ํด๊ฒฐ์ด ์๋๋ ์ค๋ฅ๊ฐ ์์๋๋ฐ... Property 'map' does not exist on type 'never' ์ง์ง ๋๋ฅผ ํ๋์ ํผ๊ณคํ๊ฒ ๋ง๋ค์์. ์ธํฐ๋ท์ ๋์์๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ด ๋์ํ์ผ๋ ์ด๊ณณ์ด ํด๊ฒฐ์ด ์๋๋ฉด ์ ๊ณณ์ด ๋นต๊ตฌ๊ฐ ๋๊ณ .... ๊ทธ๋ฌ๋๋ฐ ๊ฒฐ๊ตญ ์กฐ๊ธ~~์ ํ๋ฌดํ ํด๊ฒฐ์ด์๋ค. ๊ทธ๋๋ ์ง์ง ๋๋ฌด ์์์ ์ผ๋จ ์ฝ๋๋ฅผ ๋ณด๋ฉด, export default function VillagerList() { const [data, setData] = useState(null); const [error, setError] = useState(null); const URL = "h..
async Server Component์์ ๋ฐ์ดํฐ๋ฅผ fetching ํ ๋ ๋๋ ์๋ฌ. ์ด ๋ฌธ์ ๋ TypeScript๊ฐ async Component๋ฅผ ์ดํดํ์ง ๋ชปํด ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค. Server Side Rendering ์ฌ์ฉ์ค์, next 13์ ๊ธฐ๋ณธ ํ์ด์ง์ธ page.tsx๋ client side rendering ์ด ๋ถ๊ฐ๋ฅํด, ๋ฐ๋ก component๋ฅผ ๋นผ์ ์์
ํ ํ, page.tsx์ ๋ถ์๋๋ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฌ๋ค. ์ปดํฌ๋ํธ ๊ฐ์ ธ์ฌ ๋ ๋๋ ์๋ฌ๋ ์ฒ์์ด์ด์.. ์ ์๋์ง ใ
ใ
ํ๋ค๊ฐ chat GPT๋ ์ด๋ฐ ๋ต์ ์ฃผ์๋ค. โ ๏ธ ์๋ ์ค๋ฅ ๋ฉ์์ง๋ JSX์์ 'ChannelTab'์ด๋ผ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ง๋ง ๋ฐํ ์ ํ์ด ์ ํจํ React ์์๊ฐ ์๋ Promise ์ด๋ฏ๋ก ์ ํจํ JSX ์..

Parsing error: 'import' and 'export' may only appear at the top level. ์ด๋์ ๊ดํธ๋ฅผ ๋นผ๋จน์๊ฒ ๊ฑฐ๋... ํ๋๋ฐ (์ ๋ต) ์๋ฌ์ค๋ช
๋ ๊ธธ๊ณ export ๊ทผ์ฒ์ }๋ฅผ ๋ฃ์ด๋ดค๋๋ฐ๋ ์ฝ์ฌ๋ฆฌ ๊ณ ์ณ์ง์ง ์์์... ๋ฌด์จ ๋ง์ธ๊ณ ํ๋ import, export ๋ฅผ ์ต๊ณ ๋ฐ์์ ์ฌ์ฉํ๋ผ๋ ๋ง์ธ๋ฐ ์ด์ ์ ์ผ๋ ํจ์๋ฅผ ๋ถ๋ฌ์ค๋ ๊ณผ์ ์์ ์ค๊ดํธ๋ฅผ ๋นผ๋จน์๋ ๊ฒ์ด๋ค ๊ทธ๋ฌ๋ ๋ซํ์ง๊ฐ ์์ ํจ์๋๋ฌธ์ export๊ฐ ์์ผ๋ก ๋ค์ด์๋ฒ๋ ค์ ์ ๋ฐ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ ๊ฒ ์ค๊ฐ ํจ์์ } ๋ฅผ ๋ฃ์ด ์ฃผ์๋๋ ๊ธ์ ํด๊ฒฐ์ด ๋์๋ค :) ๊ฒฐ๋ก ์ ์ผ๋ก ๋ญ ๋นผ๋จน์๊ฒ ์ง ํ๋๊ฒ ๋ง์๋ค..
input ์ ํตํด ์ด๋ฏธ์ง๋ฅผ ์
๋ก๋๋ฅผ ํ๋ ๊ณผ์ ์์, ๋ฐ์ ๋๋ ์ค๋ฅ์ด๋ค ์ด๋ฏธ์ง๋ฅผ ์ ์์ ์ผ๋ก ์
๋ก๋ ํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์์ผ๋, ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋ ์ฐฝ ๊น์ง ๋์ด ์ํ์์ ์ทจ์๋ฅผ ํ๊ฒ ๋๋ ๊ฒฝ์ฐ ์ด๋ฏธ์ง ํ์ผ ์
๋ก๋ input์ ๊ฑธ๋ ค ์๋ ํจ์๋ ๊ทธ๋๋ก ์๋์ ํ๊ฒ ๋๋, ์ค์ ํ์ผ์ด ์์ด์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ํ์ธ์ ์ํด e.target.file ์ ์ฒดํฌ ํด๋ณด๋, ํ์ผ์ ์
๋ก๋ ์ e.target.file์ length๊ฐ 1 ์
๋ก๋๋ฅผ ์ทจ์ ํ ๊ฒฝ์ฐ 0์ด ๋์ค๊ฒ ๋๋ค. ๊ธฐ์กด ์ฝ๋ reader.readAsDataURL(file); ์ ์กฐ๊ฑด๋ฌธ์ ๋ฌ์์ฃผ์๋ค ๋ณ๊ฒฝ ์ฝ๋ if (file) { reader.readAsDataURL(file); }

๋คํฌ๋ชจ๋๋ฅผ ๊ตฌํํ๋ ์ค... ๋ง์ดํ ์๋ฌ... ๋๋ ์ฌ์ฉ๋ ์ํ ํ์
์ด ์๋ฌ๊ฐ ๋ฌ๋ค๊ณ .. Uncaught TypeError: Cannot read properties of null (reading 'useContext') react.development.js:209 Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might b..

ํ๋ก ํธ์๋ ์กฐ์๋ถ๋ค๊ณผ ์ฌ๋ค๋ฆฌํ๊ธฐ!! ๋ก ์ ํ ๊ฒฐ๊ณผ ๋ง์ดํ์ด์ง ํ๋ฉด ๊ตฌํ์ ๋งก๊ฒ ๋์๋ค.. (+์ฌ์ด๋๋ฐ) ์๋ง ์ถํ์ ์ด ๊ธฐ๋ฅ ๊ตฌํ๋ ํ๊ฒ ๋ ๋ฏ.. ๋ฉฐ์น ๋์ ๊ฑธ์ณ์ ์์ฑํ๋๋ฐ, ์ฌ์ค์ css์์ ์ธ์์ด์์ง๋ง ๋ง์ css๋ ๊ตฌ์กฐ์ง๋ ๊ฑด ํ ๋ฒ ๋ฌผ๊ผฌํธ๊ธฐ ์์ํ๋ ๊ธ๋ฐฉ ๊ธ๋ฐฉ ๋ง๋ค์ด ๋๋๋ฐ, ๊ณ์ํด์ eslint, prettier ์๋ฌ๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ง์ง ์๋ค ๋๋ฌธ์ ๋๋ฌด๋๋ฌด ์ ๋จน์. ใ
_ใ
์ฌ์ง์ด ํ๋ฐ์๋ tsconfig.json ์ค๋ฅ๊ฐ ๊ณ์ ๋ฌ๋๋ฐ, ์ด๊ฑด ์คํ์ ๋ฌธ์ ๋ ์๊ณ ๊ตฌ๊ธ์ ๋์ค๋ ๋ชจ~~๋ ์์ด๋ก ๋ ๊ฒ๊น์ง ๋ค ์ฐพ์๋ดค๋๋ฐ๋ ํด๊ฒฐ์ด ์๋ผ์ ใ
์ถํ์ ์๋ค ์
์ ๋ํ ๊ณต๋ถ๊ฐ ํ์ํ ๋ฏ์ถ๋ค. ๋ฐ๋ณด ๊ฐ์๋ ๋ถ๋ถ์ ๋ช ๊ฐ ๊ผฝ์๋ฉด,, ๋ณ์๋ฅผ ์ง์ ํ๋๋ฐ๋ ์ฝ์ง ๋ชปํ๋ eslint ์ค๋ฅ๊ฐ ์์๋ค. ์ฐพ์๋ณด๋ ์ด๋ฐ..