๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
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
๋ฆฌ์•กํŠธ(React.js)๋ž€ ๋ญ˜๊นŒ? ์™œ ๋ฆฌ์•กํŠธ(React.js)๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

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

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
[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 ๋˜๋Š” ..