๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[JavaScript] ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ slice() vs splice() ์ฐจ์ด์ 

๐Ÿ’ก slice() ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ slice() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. slice() ๋ฉ”์„œ๋“œ๋Š” ์›๋ž˜ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์–•์€ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. slice(optional start parameter, optional end parameter) ์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ณผ์ผ ๋ชฉ๋ก์„ ๋งŒ๋“ค์—ˆ๋‹ค. const fruits = ['apple', 'banana', 'mango', 'melon']; slice() ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• โ“ slice() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์–•์€ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. console.log(fruits.slice()); // ['apple', 'banana', 'm..

article thumbnail
[React Native] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ™˜๊ฒฝ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(.env) ์ ์šฉํ•˜๊ธฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ React Native + TypeScript ๋กœ ๊ฐ„๋‹จํ•œ ์–ดํ”Œ์„ ๋งŒ๋“ค๋ฉด์„œ ๊ณต๋ถ€ํ•˜๋˜ ๋„์ค‘์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (env)๋ฅผ ์ ์šฉ์ด ํ•„์š”ํ–ˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ React์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ๋ฒ•๊ณผ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™์•„์„œ ์ƒ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. 1. react-native-dotenv react-native-dotenv๋Š” React Native ํ™˜๊ฒฝ์—์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜(env)๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์„ ์ผœ๊ณ  ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. npm i react-native-dotenv ๋˜๋Š” yarn add react-native-dotenv ๊ทธ๋ฆฌ๊ณ  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ™˜๊ฒฝ์—์„œ๋Š” ์ถ”๊ฐ€๋กœ types๋ฅผ ์„ค์น˜ํ•ด ์ค˜์•ผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. npm install -D @types/react-native-dote..

article thumbnail
[React] Jest์™€ React testing library๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•œ React app ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ (feat. TDD)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ 'ํด๋ฆฐ ์ฝ”๋“œ'์ฑ…๊ณผ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ ๊ด€๋ จ ์˜์ƒ์ด๋‚˜ ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ค‘์š”์„ฑ์„ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. ์•ž์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ React์—์„œ Jest์™€ React testing library๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ณต์Šตํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•ด ๋ณธ๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ˆซ์ž๊ฐ€ ์ฆ๊ฐ๋˜๋Š” ๊ฐ„๋‹จํ•œ ์•ฑ์„ TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค. Jest์™€ React testing library Jest ? Jest๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ…Œ์ŠคํŠธ..

article thumbnail
[React] ReactDOM.render is no longer supported in React 18 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ React + Typescript ํ™˜๊ฒฝ์—์„œ React Testing library์™€ jest๋ฅผ ์ด์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ ค๋Š” ๋„์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผ ํ•  ๊ฒƒ์€ ๋ณ„ ๊ฑฐ ์•„๋‹ˆ์—ˆ์ง€๋งŒ ํž˜๋“ค๊ฒŒ(?) ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ฐพ์•„์„œ ๊ธฐ๋ก์„ ํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. 1. ๋ฌธ์ œ ๋ฐœ์ƒ CRA typescript๋กœ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ๋‚œ ํ›„์— npm test ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋“ค์ด ์ž˜ ์‹คํ–‰์ด ๋˜๋Š”์ง€ ํ™•์ธ์„ ํ•ด๋ดค๋‹ค. ํ•˜์ง€๋งŒ ReactDOM.render is no longer supported in React 18 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž์ฒด๋Š” PASS๊ฐ€ ๋˜๋ฉด์„œ ์ž˜ ์‹คํ–‰์ด ๋˜์—ˆ์ง€๋งŒ ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋งค์šฐ ์‹ ๊ฒฝ ์“ฐ์˜€๋‹ค. 2. ๋ฐœ์ƒ ์›์ธ Rea..

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..