๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[Next.js] ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ (feat. TS)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ด ํฌ์ŠคํŒ…์€ Next.js 11 ๋ฒ„์ „(page router) ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. 13๋ฒ„์ „ ์ดํ›„ app router ํ™˜๊ฒฝ์—์„œ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ด ํฌ์ŠคํŒ…์—์„œ 1 ~ 1-3๊นŒ์ง€๋งŒ ๋ณด์‹œ๊ณ  ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. Next.js + Typescript ํ™˜๊ฒฝ์—์„œ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜ ์ค‘ ์นด์นด์˜คํ†ก์œผ๋กœ ๊ณต์œ ํ•˜๊ธฐ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์„œ ๊ตฌํ˜„์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋ช‡๋ช‡ ์˜ค๋ฅ˜๋„ ๋งˆ์ฃผ์น˜๊ณ  ๋”ฐ๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋กํ•˜๊ธฐ ์ผ๋‹จ ์ฒซ ๋ฒˆ์งธ๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ์— ์•ž์„œ์„œ Kakao Developers์—์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1-1 ๋กœ๊ทธ์ธ ์‚ฌ์ดํŠธ์— ์ ‘์† ํ•ด์ฃผ์‹œ๊ณ  ์ฒซ ํ™”๋ฉด์—์„œ ๋กœ๊ทธ์ธ์„ ํ•ด์ฃผ์‹œ๊ณ  '๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜'์„ ํด๋ฆญํ•ด์ฃผ์„ธ์š”. 1-2 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ ๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์• ..

article thumbnail
๋ฆฌ์•กํŠธ(React.js)๋ž€ ๋ญ˜๊นŒ? ์™œ ๋ฆฌ์•กํŠธ(React.js)๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋ฆฌ์•กํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋กœ ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ ์‹œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ตœ๊ทผ๋“ค์–ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์‹ค์ œ๋กœ ํšŒ์‚ฌ์—์„œ๋„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉ๋˜๊ณ ์žˆ๋Š” ์ถ”์„ธ์ฃ . ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฆฌ์•กํŠธ๊ฐ€ ์–ด๋–ค ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ(React.js)๋Š” ๋ฌด์—‡์ผ๊นŒ โ“ React.js๋Š” ํŠนํžˆ SPA(Single Page Application)์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. React๋Š” Facebook์—์„œ ์ผํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด jordan walke๊ฐ€ ์ฒ˜์Œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์•ฑ์˜ view layer๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์•„..

article thumbnail
[Redux] Redux๋ฅผ ์™œ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ? Redux(๋ฆฌ๋•์Šค)๋ž€?

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ React๋ฅผ ์ฒ˜์Œ ํ•™์Šตํ•˜๋˜ ์‹œ์ ˆ, Redux๊ฐ€ ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์™œ ํ•„์š”ํ•œ์ง€์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์ดํ•ด ์—†์ด 'Redux๋ฅผ ์™œ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š”์ง€'์— ๋Œ€ํ•ด ์˜๋ฌธ์„ ๊ฐ–๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, React๋ฅผ ์ด์šฉํ•˜์—ฌ ํด๋ก  ์ฝ”๋”ฉ์„ ํ•˜๊ฑฐ๋‚˜ ์‹ค์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์–ด ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŽ์€ Props๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ(Props Driling)์„ ๊ฒช๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝํ—˜์„ ํ†ตํ•ด "์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ"์˜ ํ•„์š”์„ฑ์„ ์ฒด๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Redux์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Redux๋ž€ โ“ Redux๋Š” JavaScript ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Redux๋Š” React์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜..

article thumbnail
[React] react-datepicker ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ํ•˜๊ธฐ(์บ˜๋ฆฐ๋”, ๋‹ฌ๋ ฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ด๋ฒˆ์— ํŒ€ ํ”„๋กœ์ ํŠธ๋กœ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ•˜๋Š” ์›น์•ฑ์„ ํด๋ก  ์ฝ”๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ธฐ๊ฐ„์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” Input์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์บ˜๋ฆฐ๋”๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์บ˜๋ฆฐ๋”์—์„œ ๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜๋ฉด Input์— ํ•ด๋‹น ๋‚ ์งœ๊ฐ€ ์ž…๋ ฅ๋  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์บ˜๋ฆฐ๋”๋ฅผ ์ผ์ผ์ด ๊ตฌํ˜„ํ•˜๊ธฐ์—๋Š” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฑฐ ๊ฐ™์•„์„œ, ๋ฆฌ์•กํŠธ ์บ˜๋ฆฐ๋” ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด๋˜ ์ค‘์— react-datepicker๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊ป ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์บ˜๋ฆฐ๋” ๊ด€๋ จํ•ด์„œ๋Š” ์ฒ˜์Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. react-datepicker react-datepicker๋Š” ๋ฆฌ์•กํŠธ์—์„œ ๋‹ฌ๋ ฅ์„ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์ด ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค! npm ์‚ฌ์ดํŠธ์˜ ์ฃผ๊ฐ„ ๋‹ค์šด๋กœ๋“œ ํšŸ์ˆ˜๋ฅผ ..

article thumbnail
[React] Link ํด๋ฆญ ์‹œ url์€ ๋ฐ”๋€Œ์ง€๋งŒ ์ปดํฌ๋„ŒํŠธ๋Š” ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ (์˜ค๋ฅ˜ ๋…ธํŠธ)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋ฆฌ์•กํŠธ๋กœ ํŒ์ฝ˜ ํƒ€์ž„์„ ํด๋ก  ์ฝ”๋”ฉํ•˜๋Š” ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ์ œ์ž‘ํ•˜๋ฉด์„œ ๊ณต๋ถ€ ์ค‘์—, Link (react-router-dom)์„ ํด๋ฆญํ•˜๋ฉด url์€ ๋ณ€๊ฒฝ์ด ๋˜์ง€๋งŒ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์ง€ ์•Š์•„์„œ ์ œ๋Œ€๋กœ ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๋‹ค. ํ•ด๊ฒฐํ•˜๊ณ  ๋‚˜๋‹ˆ๊น ์ •๋ง ๋ณ„ ๊ฒƒ ์•„๋‹ˆ์—ˆ์ง€๋งŒ...(๊ฐœ๋… ๋ถ€์กฑ) ๋ฌด์—‡์ด ๋ฌธ์ œ์ด๊ณ , ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ๋‹ค์‹œ ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•ด๋ณธ๋‹ค. โ— ๋ฌธ์ œ ๋ฌธ์ œ์˜ ํ™”๋ฉด์ด๋‹ค. Detail ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์˜ํ™”์˜ ๊ด€๋ จ ์˜ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ๋ณด์—ฌ์ฃผ๋Š” ์ปดํฌ๋„ŒํŠธ๋‹ค. Detail ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ด€๋ จ ์˜ํ™”๋ฅผ ๋ณด์—ฌ์ค€ ๋’ค, ๊ด€๋ จ ์˜ํ™”๋ฅผ ํด๋ฆญํ•˜๋ฉด ๊ทธ ๊ด€๋ จ ์˜ํ™”์˜ Detail ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์ง„์— ๋ณด์ด๋Š” ๋ฐ”์™€ ๊ฐ™์ด ํด๋ฆญ์„ ํ•˜๋ฉด url์€ ์ž˜ ๋ณ€๊ฒฝ์ด ๋˜์ง€๋งŒ ํ•ด๋‹น ์˜ํ™”์˜ Deta..

article thumbnail
[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐ˜๋ณต๋ฌธ for๋ฌธ์˜ ์ข…๋ฅ˜(for, for in, for of, forEach)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ์ด๋ ‡๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ for๋ฌธ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•œ ๊ธ€์„ ์ •๋ฆฌํ•˜๋Š” ์ด์œ ๋Š” ํ˜„์žฌ ๋‚˜์ค‘์— ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ค€๋น„ํ•˜๋ฉด์„œ for๋ฌธ์„ ์ž‘์„ฑํ•  ๋•Œ๊ฐ€ ๋งŽ์€๋ฐ, ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ for๋ฌธ์— ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ๋Š” ๊ฑด ์•Œ์•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ œ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•œ for๋ฌธ์€ ๊ธฐ๋ณธ์ ์ธ for๋ฌธ๊ณผ forEach๋ฌธ๋งŒ ์ž์ฃผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ๊ทธ ์™ธ์—๋Š” ๊ฑฐ์˜ ํ•œ ๋ฒˆ๋„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†์—ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ for๋ฌธ๊ณผ ์ ‘์ด‰ ํ•ด๋ณด๋ฉด์„œ ๊ฐ๊ฐ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ for๋ฌธ๋งˆ๋‹ค ์žฅ์ ์ด ์žˆ๊ณ , ์„ฑ๋Šฅ์˜ ์ฐจ์ด๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๊ธฐํšŒ์— ํ™•์‹คํ•˜๊ฒŒ ์•Œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š” ์ •๋„์ธ์ง€์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•œ๋‹ค.๐Ÿ’ก ์•Œ์•„๋ณผ ๊ฒƒ๋“ค(์ „ํ˜•์ ์ธ) forfor infor offo..

article thumbnail
[JavaScript ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ผ๊ณฑ ๋‚œ์Ÿ์ด ๋ฌธ์ œ ํ’€์ด

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณธ๋‹ค. โ“ ๋ฌธ์ œ ์ผ๊ณฑ ๋‚œ์Ÿ์ด ์™•๋น„๋ฅผ ํ”ผํ•ด ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋“ค๊ณผ ํ•จ๊ป˜ ํ‰ํ™”๋กญ๊ฒŒ ์ƒํ™œํ•˜๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ์—๊ฒŒ ์œ„๊ธฐ๊ฐ€ ์ฐพ์•„์™”๋‹ค. ์ผ๊ณผ๋ฅผ ๋งˆ์น˜๊ณ  ๋Œ์•„์˜จ ๋‚œ์Ÿ์ด๊ฐ€ ์ผ๊ณฑ ๋ช…์ด ์•„๋‹Œ ์•„ํ™‰ ๋ช…์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ์•„ํ™‰ ๋ช…์˜ ๋‚œ์Ÿ์ด๋Š” ๋ชจ๋‘ ์ž์‹ ์ด "๋ฐฑ์„ค ๊ณต์ฃผ์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด"์˜ ์ฃผ์ธ๊ณต์ด๋ผ๊ณ  ์ฃผ์žฅํ–ˆ๋‹ค. ๋›ฐ์–ด๋‚œ ์ˆ˜ํ•™์  ์ง๊ด€๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ๋Š”, ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค์˜ ํ•ฉ์ด 100์ด ๋จ์„ ๊ธฐ์–ตํ•ด ๋ƒˆ๋‹ค. ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฐฑ์„ค๊ณต์ฃผ๋ฅผ ๋„์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ฅผ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ ์˜ค. (๋ฌธ์ œ ์ถœ์ฒ˜ : ํ•œ๊ตญ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ์ž…๋ ฅ ์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ..

article thumbnail
[React]Module not found: Can't resolve './node_modules/react' ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ React๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ๋„์ค‘์— react router๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. react router๋ฅผ ์„ค์น˜ ํ–ˆ๋Š”๋ฐ, ๋กœ๊ทธ์— npm error๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋กœ ์‹คํ–‰ ์‹œํ‚ค์ž ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ./src/App.js Module not found: Can't resolve './src/components/Navbar/Navbar' in '/Desktop/React_Components/test/src' Module not found: Can't resolve './node_modules/react' ๐Ÿ’ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• create-react-app์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฆฌ์•กํŠธ ํŒŒ์ผ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ์žˆ๋Š” package-lock.json ๋˜๋Š” ..

article thumbnail
[JavsScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์˜ค๋””์˜ค(audio) ์žฌ์ƒ, ์ผœ๊ณ  ๋„๊ธฐ,๋„˜๊ธฐ๊ธฐ | audio play

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ์˜ค๋””์˜ค๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ์Œ์•…์„ ์ผœ๊ณ  ๋„๊ณ , ๋‹ค์Œ ์Œ์•…์œผ๋กœ ๋„˜๊ธฐ๋Š” ์—ฌ๋Ÿฌ ์Œ์•…์„ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ HTML์—๋Š” audioํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์˜ค์ง ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋งŒ audio ์ œ์–ด๋ฅผ ํ–ˆ๋‹ค๊ฐ€ ๋ง‰ํ˜”์ง€๋งŒ, ๊ฒฐ๊ตญ ์ž˜ ํ•ด๊ฒฐ์„ ํ•ด์„œ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, const audio = new Audio('audio_file.mp3'); audio.play(); HTML์— ๋”ฐ๋กœ ์˜ค๋””์˜ค ํƒœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ์ด๋Ÿฐ ์‹์œผ๋กœ audio ์ฝ”๋”ฉ์„ ํ•ด์„œ ๋กœ์ปฌ์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , ๊นƒํ—ˆ๋ธŒ ํผ๋ธ”๋ฆฌ์‹ฑ์„ ํ•˜์—ฌ ์‚ฌ์ดํŠธ๋กœ ๋ฐฐํฌํ•˜๋‹ˆ๊น ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋กœ ์˜ค๋””์˜ค ์žฌ์ƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค..