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

react

(29)
React / map, filter๋กœ ๋ฐ˜๋ณต ๋ Œ๋”๋งํ•˜๊ธฐ map๊ณผ filter map๊ณผ filter๋Š” ๋‘˜๋‹ค ๋ฐฐ์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋‹ค. map() : ๋ฐฐ์—ด ๋‚ด์˜ ๋ชจ๋“  ์š”์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ์ฝœ๋ฐฑ์„ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜filter() : ๋ฐฐ์—ด์˜ ๊ฐ๊ฐ์˜ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ์„ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ, true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” (์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”) ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜๋‘˜๋‹ค ์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ์‹œ๋กœ ์ผ๋‹จ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠธ์™€์ด์Šค์˜ ๋ฉค๋ฒ„๋“ค์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค.const twice = [ { name: "๋‚˜์—ฐ", birth: 1995, country: "ํ•œ๊ตญ" }, { name: "์ •์—ฐ", birth: 1996, country: "ํ•œ๊ตญ" }, { name: "๋ชจ๋ชจ", birth: 1996, country: "์ผ..
React / JSX ๋ฌธ๋ฒ• JSX(JavaScript XML)React์—์„œ ์‚ฌ์šฉ๋˜๋Š” Javascript์˜ ํ™•์žฅ ๋ฌธ๋ฒ•์œผ๋กœ, HTML๊ณผ ์œ ์‚ฌํ•œ ํ˜•ํƒœ๋กœ Javascript ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.๋ฌด์กฐ๊ฑด jsx๋ฅผ ์“ธ ํ•„์š”๋Š” ์—†์ง€๋งŒ, ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ๊ทœ์น™return๋ฌธ ์•ˆ์— HTML ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋‘ ์ค„ ์ด์ƒ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ ์†Œ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์•ผ ํ•จํ•˜๋‚˜์˜ ์ตœ์ƒ์œ„ ์š”์†Œ๋กœ ๋ฌถ์–ด์ค˜์•ผ ํ•จ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” Javascript ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๊ฐ์‹ธ์ง€ ์•Š์€ ํ•จ์ˆ˜์—์„œ๋Š” ๋‘ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜ (Fragment : ๋ธŒ๋ผ์šฐ์ €์ƒ html ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ํ”์  ์—†์ด ๊ทธ๋ฃนํ™”)๋กœ๋ผ๋„ ๊ฐ์‹ธ์ค˜์•ผ ํ•œ๋‹ค.์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด Javascript ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•จ // JSX ๋ฌธ๋ฒ• ์‚ฌ์šฉfunction App() { return..
React / ์ปดํฌ๋„ŒํŠธ CDD(Component Driven Development) ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœํ™”๋ฉด์„ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก Class ์ปดํฌ๋„ŒํŠธ, ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ(๋งŽ์ด ๊ถŒ์žฅ) ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Œ Class ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค ๋ฌธ๋ฒ• โฌ‡๏ธ๋”๋ณด๊ธฐ๋”๋ณด๊ธฐํด๋ž˜์Šค(Class)๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ์—ญํ• ๋กœ, ๋ถ•์–ด๋นต ํ‹€์— ๋งŽ์ด ๋น„์œ ๋˜๊ณ  ์žˆ๋‹ค... (๊ฐ์ฒด - ๋ถ•์–ด๋นต, ํด๋ž˜์Šค - ๋ถ•์–ด๋นต ํ‹€) 1) ๊ธฐ๋ณธ ๊ตฌ์กฐclass Person { constructor(name, age) { // ์ƒ์„ฑ์ž (๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์‹คํ–‰๋จ) this.name = name; this.age = age; } sayHello() { // ๋ฉ”์„œ๋“œ (๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜) console.log(`์•ˆ๋…•ํ•˜์„ธ์š”! ์ €๋Š” ${th..
React / ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ React ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ• CRAVite (๊ถŒ์žฅ)๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋กœ Webpack ์‚ฌ์šฉ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋กœ Rollup ์‚ฌ์šฉ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋„ ๋ฒˆ๋“ค๋ง ์ง„ํ–‰ O๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฒˆ๋“ค๋ง ์ง„ํ–‰ X์„œ๋ฒ„ ์‹œ์ž‘๊ณผ ๋ฆฌ๋กœ๋”ฉ ์‹œ๊ฐ„ ๋А๋ฆผ (์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ• ๋•Œ๋งˆ๋‹ค ๋ฒˆ๋“ค๋ง ์ง„ํ–‰)์„œ๋ฒ„ ์‹œ์ž‘๊ณผ ๋ฆฌ๋กœ๋”ฉ ์‹œ๊ฐ„ ๋น ๋ฆ„Webpack์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ด์šฉ ๊ฐ€๋Šฅ๋น ๋ฅธ ๊ฐœ๋ฐœ ์†๋„์— ์œ ๋ฆฌ๋ชจ๋“ˆ๋„ ๊ฐ™์ด ์„ค์น˜(node_modules)๋ชจ๋“ˆ์€ ๋”ฐ๋กœ ์„ค์น˜ํ•ด์•ผ ๋จnpx create-react-app npm create vite@latest * ๋ฒˆ๋“ค๋ง : ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ฝ”๋“œ์™€ ํŒŒ์ผ์„ ํ•œ๋ฒˆ์— ๋ฌถ์–ด์ฃผ๋Š” ๊ณผ์ • * CRA๊ฐ€ ์ด์ œ ์ถ”์ฒœ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋А๋ฆฐ ๊ฐœ๋ฐœ ์†๋„ → Webpack ๊ธฐ๋ฐ˜์ด๋ผ ๋นŒ๋“œ์™€ HMR ์†๋„๊ฐ€ ๋А๋ ค ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋ฐ˜์˜์ด ๋Šฆ์Œ.๋ฒˆ๋“ค ํฌ๊ธฐ ํผ → ๊ธฐ๋ณธ ์„ค์ •์ด ์ตœ์ ํ™” ๋ถ€์กฑ,..
React / Node.js, npm, npx ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• (Mac) React์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.๊ฐ€์ƒ DOM์„ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ ๋ Œ๋”๋ง์ด ๊ฐ€๋Šฅ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI๋ฅผ ๊ฐ€์ง๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉJSX ๋ฌธ๋ฒ•์œผ๋กœ ์ง๊ด€์ ์ธ UI ์ž‘์„ฑSPA(Single Page Application) ๊ฐœ๋ฐœ ์ง€์› React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 1. ์ฝ”๋“œ ์ผ๊ด€์„ฑ์ด ๋†’์Œvanila Javascript (์ˆœ์ˆ˜ Javascript)๋Š” ์ฝ”๋“œ์— ์ •ํ•ด์ง„ ๊ทœ๊ฒฉ(๋ณ€์ˆ˜ ์„ ์–ธ, ๋„ค์ด๋ฐ, ํ•จ์ˆ˜ ์„ ์–ธ ๋“ฑ)์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ผ๊ด€์„ฑ์ด ๋–จ์–ด์ ธ ์„œ๋กœ์˜ ์ฝ”๋“œ์— ์ ์‘ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฆฌ์•กํŠธ์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ, ๋„ค์ด๋ฐ ๊ทœ์น™, ํŒŒ์ผ ๊ตฌ์กฐ, ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ์‹ ๋“ฑ ์ผ๊ด€๋œ ๊ทœ์น™์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋…์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 2. SPA ํ”„๋ ˆ์ž„์›Œํฌ๋ฆฌ์•กํŠธ๋Š” SPA..