๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“‚ ์‚ฝ์งˆ ๋…ธํŠธ/์—๋Ÿฌ ํ•ด๊ฒฐ8

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜ฅํƒˆ ๋ฆฌํ„ฐ๋Ÿด? Octal literals are not allowed ์—๋Ÿฌ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๐Ÿค” ์˜ค๋Š˜์˜ ์—๋Ÿฌ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž๊ฐ€ ํฌํ•จ๋˜์—ˆ์„ ๋•Œ์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•˜๋Š”๋ฐ, ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. Octal literals..? ์ฒ˜์Œ ๋ณด๋Š” ์—๋Ÿฌ์— ์ฒ˜์Œ ๋“ค์–ด๋ณด๋Š” ๋‹จ์–ด์˜€๋‹ค. ์ผ๋‹จ ์‚ฌ์ „์„ ์ฐพ์•„๋ณด๋‹ˆ octal์€ 8์ง„๋ฒ•์ด๋ผ๋Š” ๋œป์ด๋ผ๊ณ  ํ•˜๋‹ˆ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” 8์ง„๋ฒ•์— ๋Œ€ํ•œ ์–ด๋– ํ•œ ๊ทœ์น™์ด ์žˆ๋‚˜๋ณด๋‹ค ์ถ”์ธกํ–ˆ๋‹ค. ์šฐ์„ ์€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถ”์ฒœํ•ด ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ฒ˜๋Ÿผ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์ด ์—๋Ÿฌ๊ฐ€ ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€, ์˜ฅํƒˆ ๋ฆฌํ„ฐ๋Ÿด์€ ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์—†๋Š”์ง€ ๊ถ๊ธˆํ•ด ์ฐพ์•„๋ณด์•˜๋‹ค. ๐Ÿง ์ฒ˜์Œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ describe('์‹œ๋„ ํšŸ์ˆ˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ', () => { const validTryCounts = [1, 5, 99]; const invalidTryCounts =.. 2023. 12. 2.
[CSS ์šฐ์„ ์ˆœ์œ„] ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์™œ ์Šคํƒ€์ผ ์ ์šฉ์ด ์•ˆ๋˜์ง€? ๐Ÿ› ๏ธ ๊ตฌํ˜„ํ•  ํ™”๋ฉด ๋นจ๊ฐ•์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•œ ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ผ์ผ์ด ๋งŒ๋“ค๊ธฐ ๋ฒˆ๊ฑฐ๋กœ์›Œ์„œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ด๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ–ˆ๊ณ , ๊ทธ ์ค‘ Card ๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์ปค์Šคํ…€์„ ํ–ˆ๋‹ค. ๐Ÿง ์ž˜๋ชป ์“ด ์ฝ”๋“œ ์˜ˆ์‹œ ๊ทธ๋Ÿฐ๋ฐ ์ฝ”๋“œ๋ฅผ ์“ฐ๋‹ค๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. 1. ๋ง‰์ƒ ๋งŒ๋“ค๊ณ  ๋ณด๋‹ˆ, ์นด๋“œ์˜ ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๊ธฐ์— ์ปค์Šคํ…€์„ ๋„˜์–ด์„œ ๊ทธ๋ƒฅ ๋‚ด๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ๊ผด์ด ๋˜์–ด ๋ฒ„๋ฆฐ ๊ฒƒ 2. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋ž˜์Šค์— ์ด๋ฏธ ์ ์šฉ๋œ ์Šคํƒ€์ผ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ์ปค์Šคํ…€ํ•œ ์Šคํƒ€์ผ์ด ๋ฌปํžˆ๋Š” ๊ฒƒ ์ตœ์ €๊ฐ€ /* CSS ํŒŒ์ผ */ .card { border: none !important; display: flex !important; justify-content: space-between !impo.. 2023. 8. 24.
gitignore์— node_modules๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ๋„ Changes๋ชฉ๋ก์— ๋œจ๋Š” ์ด์œ  ๐Ÿค” ์˜ค๋Š˜์˜ ์—๋Ÿฌ ํ‰ํ™”๋กญ๊ฒŒ ๊ณผ์ œ๋ฅผ ํ•˜๋˜ ์ค‘.. ๋ถ„๋ช… gitignore์— node_modules๋ฅผ ์ถ”๊ฐ€ํ•ด ๋‘์—ˆ๋Š”๋ฐ๋„ Changes ๋ชฉ๋ก์— ๋œจ๋Š” ๋ฐ”๋žŒ์— Changes ๊ฐœ์ˆ˜๊ฐ€ 10,000๊ฐœ์— ์œก๋ฐ•ํ•ด ๋ฒ„๋ ธ๋‹ค. ๋‚˜๋Š” ๋ถ„๋ช… ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” node_modules๊ฐ€ ์ปค๋ฐ‹๋˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ–ˆ๋Š”๋ฐ ๋ง์ด์ง€. # dependencies */node_modules /.pnp .pnp.js ๐Ÿง ์—๋Ÿฌ์˜ ์›์ธ ์•Œ๊ณ ๋ณด๋‹ˆ, gitignore๊ฐ€ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.. ์ด ๋ถ€๋ถ„์ด ์›์ธ์ด์—ˆ๋‹ค. ๐Ÿ’ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• gitignore๋Š” ๋ฌด์กฐ๊ฑด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ์—์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค. ๋”๋ถˆ์–ด, ์œ„์™€ ๊ฐ™์ด ๋ฃจํŠธ๋กœ ์œ„์น˜๋ฅผ ์ˆ˜์ •ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ Changes ๋ชฉ๋ก์ด ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค๋ฉด, 1. IDE ์ž์ฒด.. 2023. 6. 12.
Proxy ์„ค์ • ์‹œ ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์—”๋“œํฌ์ธํŠธ๋กœ API๋ฅผ ์š”์ฒญํ•˜์ž ๐Ÿค” ์˜ค๋Š˜์˜ ์—๋Ÿฌ React Proxy ์„ค์ • ์ค‘, ์˜ค๋Š˜์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. GET http://localhost:3001/api/todos 404 (Not Found) Uncaught (in promise) SyntaxError: Unexpected token ' 2023. 6. 11.
<h>์— ๋ฒ„ํŠผ ์†์„ฑ์„ ๋ถ€์—ฌํ•˜๋ฉด .. ๐Ÿค” ์˜ค๋Š˜์˜ ์—๋Ÿฌ React๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๋˜ ์ค‘, ์˜ค๋Š˜์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ˜์†” ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. Received `true` for a non-boolean attribute `button`. If you want to write it to the DOM, pass a string instead: button="true" or button={value.toString()}. ๐Ÿง ์ฒ˜์Œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ ์ฒ˜์Œ์—๋Š” ์š”์†Œ์— button ์†์„ฑ์„ ๋ถ€์—ฌํ•ด, ํด๋ฆญํ•˜๋ฉด ๋ชจ๋‹ฌ์ด ๋‚˜ํƒ€๋‚˜๊ณ  ๋‹ค์‹œ ํด๋ฆญํ•˜๋ฉด ๋ชจ๋‹ฌ์ด ์—†์–ด์ง€๋„๋ก ํ–ˆ๋‹ค. ์ด ๋ถ€๋ถ„์ด ๋ฌธ์ œ์˜€๋‹ค. { title.map(function(a, i){ return ( {/* ์ด ๋ถ€๋ถ„ ์ˆ˜์ • ํ•„์š” */} { setModal(!modal); setModalTitle(i) }}>{ title[i] .. 2023. 5. 22.
Route, Routes๋ฅผ BrowserRouter๋กœ ๊ฐ์‹ธ์ฃผ์ง€ ์•Š์œผ๋ฉด.. ๐Ÿค” ์˜ค๋Š˜์˜ ์—๋Ÿฌ React๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๋˜ ์ค‘, ์˜ค๋Š˜์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. TypeError: Cannot read properties of undefined (reading 'pathname') ํ•ด๋‹น ์—๋Ÿฌ์— ๋Œ€ํ•œ GPT์˜ ๋‹ต์€ ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค. ์ด ์—๋Ÿฌ๋Š” React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ 'pathname' ์†์„ฑ์„ ๊ฐ–๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 'pathname'์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์˜ URL ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์—๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: 1. ๋ธŒ๋ผ์šฐ์ € ๋ผ์šฐํ„ฐ ์˜ค๋ฅ˜: React Router ๋˜๋Š” ๋‹ค๋ฅธ ๋ผ์šฐํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋ธŒ๋ผ์šฐ์ € ๋ผ์šฐํ„ฐ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ž˜๋ชป ๊ตฌ์„ฑ๋˜์–ด 'pathname' ์†์„ฑ์ด .. 2023. 5. 19.
ํ‘ธ์‹œ๊ฐ€ ์•ˆ๋  ๋•, ์ผ๋‹จ 'stash'๋กœ ์ˆจ๊ธฐ์ž ๐Ÿค” ์˜ค๋Š˜์˜ ์‚ฝ์งˆ : ํ‘ธ์‹œ๊ฐ€ ์™œ ์•ˆ๋˜์ง€? VScode ํ„ฐ๋ฏธ๋„์— git push๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ‘ธ์‹œ์™€ ์ปค๋ฐ‹์„ ํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ, ์•„๋ž˜์™€ ๊ฐ™์€ error๋ฅผ ๋งŒ๋‚ฌ๋‹ค. ์•Œ์•„๋ณด๋‹ˆ git stash ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ํ˜„์žฌ ์ž‘์—…์„ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•ด๋‘๊ณ  push๋ฅผ ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. error: failed to push some refs to 'https://github.com/ella-yschoi/TIL.git’ ๐Ÿ’ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1. stash๋กœ ํ˜„์žฌ ์ž‘์—…์„ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค. git stash 2. pull์„ ํ•œ๋‹ค. # ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ๋ณต์‚ฌํ•˜๋˜, ๋ณธ์ธ branch๊ฐ€ master๊ฐ€ ์•„๋‹Œ main์ด๋ผ๋ฉด ๋ณ€๊ฒฝํ•˜์„ธ์š” git pull origin master 3. ๋‹ค์‹œ push๋ฅผ ํ•œ๋‹ค. # ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ๋ณต์‚ฌํ•˜๋˜, ๋ณธ์ธ branc.. 2023. 3. 31.
์ปค๋ฐ‹์ด ์•ˆ๋˜๋Š” ์ด์œ ๋Š” ๊ถŒํ•œ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๐Ÿค” ์˜ค๋Š˜์˜ ์‚ฝ์งˆ : ์ปค๋ฐ‹์ด ์™œ ์•ˆ๋˜์ง€? VScode ํ„ฐ๋ฏธ๋„์— git push๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ปค๋ฐ‹์„ ํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ, ์•„๋ž˜์™€ ๊ฐ™์€ fatal error๋ฅผ ๋งŒ๋‚ฌ๋‹ค. Git: fatal: Unable to create '/Users/yeonsuchoi/TIL/.git/index.lock': Permission denied ์ฐพ์•„๋ณด๋‹ˆ, ์ปค๋ฐ‹์„ ํ•˜๊ณ ์ž ํ•˜๋Š” repository์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜์—ฌ, sudo ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ์— ๋”ฐ๋ฅด๋ฉด, sudo๋Š” 'superuser(root user) do' ํ˜น์€ 'substitue user do'์˜ ์ค„์ž„๋ง๋กœ, ์ฃผ๋กœ ์šฐ๋ถ„ํˆฌ, ๋ฆฌ๋ˆ…์Šค, ๋งฅ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋ผ๊ณ  ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ sudo ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ์—, password๋ฅผ ์ž….. 2023. 3. 4.