S01L02 – ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ

html

๋ฆฌ์•กํŠธ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ: React ๊ฐœ๋ฐœ ์‹œ์ž‘์„ ์œ„ํ•œ ์ข…ํ•ฉ ๊ฐ€์ด๋“œ

๋ชฉ์ฐจ

  1. ์†Œ๊ฐœ
  2. React ํ”„๋กœ์ ํŠธ ์„ค์ •
  3. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์ดํ•ด
  4. VS Code ํ™•์žฅ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ฐ•ํ™”
  5. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ
  6. ๊ฒฐ๋ก 

์†Œ๊ฐœ

"๋ฆฌ์•กํŠธ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ: React ๊ฐœ๋ฐœ ์‹œ์ž‘์„ ์œ„ํ•œ ์ข…ํ•ฉ ๊ฐ€์ด๋“œ"์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „์ž์ฑ…์€ ์ดˆ๋ณด์ž์™€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ React ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ์ดํ•ด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. React๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋“  ์„ค์ •์„ ๋‹ค๋“ฌ๊ณ ์ž ํ•˜๋“ , ์ด ๊ฐ€์ด๋“œ๋Š” ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์ดํ•ด, ๊ฐ•๋ ฅํ•œ VS Code ํ™•์žฅ์œผ๋กœ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ ํ–ฅ์ƒ๊ณผ ๊ฐ™์€ ํ•„์ˆ˜ ์ฃผ์ œ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์™œ React์ธ๊ฐ€์š”?

React๋Š” ๋™์ ์ด๊ณ  ๋ฐ˜์‘์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์™€ ํšจ์œจ์ ์ธ Virtual DOM ๊ตฌํ˜„์œผ๋กœ ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์—์„œ ์ตœ๊ณ ์˜ ์„ ํƒ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

React ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์ 

์žฅ์  ๋‹จ์ 
์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ ์ดˆ๋ณด์ž์—๊ฒŒ ๊ฐ€ํŒŒ๋ฅธ ํ•™์Šต ๊ณก์„ 
์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์œ„ํ•œ Virtual DOM JSX ๋ฌธ๋ฒ•์ด ์œ„ํ˜‘์ ์ผ ์ˆ˜ ์žˆ์Œ
๊ฐ•๋ ฅํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฆฌ์†Œ์Šค ์ž์ฃผ ์—…๋ฐ์ดํŠธ๋˜์–ด ์กฐ์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ
์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•จ

React๋ฅผ ์–ธ์ œ ์–ด๋””์„œ ์‚ฌ์šฉํ• ๊นŒ์š”?

React๋Š” ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA), React Native๋ฅผ ์ด์šฉํ•œ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์ด ์ค‘์š”ํ•œ ๋ณต์žกํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์œ ์—ฐ์„ฑ ๋•๋ถ„์— ๋‹ค์–‘ํ•œ ๋ฐฑ์—”๋“œ ๊ธฐ์ˆ ๊ณผ์˜ ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง• React ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์˜ˆ ๋‹ค์–‘ํ•จ
Virtual DOM ์˜ˆ ์•„๋‹ˆ์š”
ํ•™์Šต ๊ณก์„  ๋ณดํ†ต ๋‹ค์–‘ํ•จ

React ํ”„๋กœ์ ํŠธ ์„ค์ •

React ์—ฌ์ •์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด React ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ

  1. ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™
    ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  React ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•˜์„ธ์š”:
  2. React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐํ™”
    Create React App ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์„ค์ •ํ•˜์„ธ์š”:
  3. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹œ์ž‘
    npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜์„ธ์š”:

    ์ด ๋ช…๋ น์–ด๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ http://localhost:3000/์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋ฒ„๋Š” ํ•ซ ๋ฆฌ๋กœ๋”ฉ์„ ์ง€์›ํ•˜์—ฌ, ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ˆ˜๋™ ์ƒˆ๋กœ ๊ณ ์นจ ์—†์ด ๋ธŒ๋ผ์šฐ์ €์— ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์ดํ•ด

Create React App์œผ๋กœ ์ƒ์„ฑ๋œ ์ผ๋ฐ˜์ ์ธ React ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

  • public/: ์ •์  ์ž์‚ฐ๊ณผ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—ฐ๊ฒฐ๋˜๋Š” index.html ํŒŒ์ผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • src/: React ์ปดํฌ๋„ŒํŠธ, ์Šคํƒ€์ผ์‹œํŠธ, ํ…Œ์ŠคํŠธ ํŒŒ์ผ ๋“ฑ ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์„ ๋ณด์œ ํ•ฉ๋‹ˆ๋‹ค.
  • package.json: ํ”„๋กœ์ ํŠธ ์ข…์†์„ฑ๊ณผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
  • .gitignore: Git์ด ๋ฌด์‹œํ•  ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


VS Code ํ™•์žฅ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ฐ•ํ™”

Visual Studio Code(VS Code)๋Š” React ๊ฐœ๋ฐœ์— ๋งž์ถคํ™”๋œ ํ™•์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ๋‹ค์žฌ๋‹ค๋Šฅํ•œ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•˜๋ฉด ์ฝ”๋”ฉ ํšจ์œจ์„ฑ๊ณผ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.1 ES7+ React/Redux/React-Native Snippets

์„ค๋ช…:

์ด ํ™•์žฅ ๊ธฐ๋Šฅ์€ JavaScript, React, Redux, React Native ๊ฐœ๋ฐœ์— ์œ ์šฉํ•œ ์Šค๋‹ˆํŽซ ๋ชจ์Œ์„ ์ œ๊ณตํ•˜์—ฌ ์ถ•์•ฝ ๋ช…๋ น์–ด๋กœ ๋” ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ:

  • React ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • Redux ์•ก์…˜๊ณผ ๋ฆฌ๋“€์„œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ จ ์Šค๋‹ˆํŽซ์œผ๋กœ React Native ๊ฐœ๋ฐœ์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜:

  1. VS Code๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. ํ™•์žฅ ๋ณด๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค (Ctrl+Shift+X ๋˜๋Š” Cmd+Shift+X).
  3. ES7+ React/Redux/React-Native Snippets์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

4.2 VS Code React Refactor

์„ค๋ช…:

React Refactor๋Š” React ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ์ผ๋ จ์˜ ๋ฆฌํŒฉํ† ๋ง ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊นจ๋—ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ:

  • JSX์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ์ž์‹  ์žˆ๊ฒŒ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • React ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜:

  1. VS Code๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. ํ™•์žฅ ๋ณด๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. VS Code React Refactor๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

4.3 Prettier - Code Formatter

์„ค๋ช…:

Prettier๋Š” ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ๋•Œ ์ž๋™์œผ๋กœ ํฌ๋งทํŒ…ํ•˜์—ฌ ์ฝ”๋“œ๋ฒ ์ด์Šค ์ „๋ฐ˜์— ๊ฑธ์ณ ์ผ๊ด€๋œ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•˜๋„๋ก ํ•˜๋Š” ์˜๊ฒฌ ์ค‘์‹ฌ์˜ ์ฝ”๋“œ ํฌ๋งคํ„ฐ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ:

  • ์—ฌ๋Ÿฌ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • VS Code์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜ ํฌ๋งทํŒ… ๊ทœ์น™์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜:

  1. VS Code๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. ํ™•์žฅ ๋ณด๊ธฐ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
  3. Prettier - Code Formatter๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. (์„ ํƒ ์‚ฌํ•ญ) VS Code ์„ค์ •์—์„œ Prettier๋ฅผ ๊ธฐ๋ณธ ํฌ๋งคํ„ฐ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

4.4 Material Icon Theme

์„ค๋ช…:

Material Icon Theme๋Š” ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์œ ํ˜•์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์•„์ด์ฝ˜์„ ์ œ๊ณตํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์‹œ๊ฐ์  ๋งค๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ํƒ์ƒ‰์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ:

  • Material Design ์›์น™์„ ์ค€์ˆ˜ํ•˜๋Š” ๋ฐฉ๋Œ€ํ•œ ์•„์ด์ฝ˜ ์ปฌ๋ ‰์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ์œ ํ˜•์— ๋”ฐ๋ผ ์•„์ด์ฝ˜์„ ์ž๋™์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฐ˜์ ์ธ ๊ฐ€๋…์„ฑ๊ณผ ๋ฏธํ•™์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์„ค์น˜:

  1. VS Code๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. ํ™•์žฅ ๋ณด๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. Material Icon Theme์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. Command Palette (Ctrl+Shift+P ๋˜๋Š” Cmd+Shift+P)์—์„œ Material Icon Theme: Activate๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ…Œ๋งˆ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ™•์žฅ ์„ค๋ช… ์ฃผ์š” ์ด์ 
ES7+ React/Redux/React-Native Snippets ๋” ๋น ๋ฅธ React ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ์†๋„๋ฅผ ๋†’์ด๊ณ  ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
VS Code React Refactor React ์ „์šฉ ๋ฆฌํŒฉํ† ๋ง ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๋ฆฌํŒฉํ† ๋ง์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.
Prettier - Code Formatter ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ํฌ๋งทํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•˜๊ณ  ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
Material Icon Theme ํŒŒ์ผ์„ ์œ„ํ•œ Material Design ์•„์ด์ฝ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํƒ์ƒ‰์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๋ฏธํ•™์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ

React ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ฐ•ํ™”ํ–ˆ์œผ๋‹ˆ, ์ด์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹œ์ž‘

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”:

์ด ๋ช…๋ น์–ด๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๊ธฐ๋ณธ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ http://localhost:3000/์—์„œ ์—ฝ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ํ•ซ ๋ฆฌ๋กœ๋”ฉ์„ ์ง€์›ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ƒˆ๋กœ ๊ณ ์นจํ•˜์ง€ ์•Š๊ณ ๋„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ํƒ์ƒ‰

React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์ฃผ์š” ํŒŒ์ผ๋“ค์„ ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

src/index.js

์„ค๋ช…:

  • ํ•„์š”ํ•œ ๋ชจ๋“ˆ๊ณผ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • App ์ปดํฌ๋„ŒํŠธ๋ฅผ index.html์˜ root div์— ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.
  • ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋ฅผ ๊ฐ•์กฐํ•˜๊ธฐ ์œ„ํ•ด React.StrictMode๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • reportWebVitals๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ ์ธก์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

src/App.js

์„ค๋ช…:

  • React ๋ฐ ๊ด€๋ จ CSS๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • App ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ•˜๋ฉฐ, ํ™˜์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋œ ํ—ค๋”๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•  ๋•Œ ํ…์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ํ•ซ ๋ฆฌ๋กœ๋”ฉ์„ ์‹œ์—ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•ซ ๋ฆฌ๋กœ๋”ฉ๊ณผ Virtual DOM

React์˜ ํ•ซ ๋ฆฌ๋กœ๋”ฉ ๊ธฐ๋Šฅ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜๋™์œผ๋กœ ์žฌ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ DOM์˜ ๊ฒฝ๋Ÿ‰ ํ‘œํ˜„์ธ Virtual DOM์„ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฐ์ง€๋˜๋ฉด React๋Š” ํ•„์š”ํ•œ DOM ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ตœ์ ์˜ ์„ฑ๋Šฅ๊ณผ ์›ํ™œํ•œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Virtual DOM์˜ ์žฅ์ :

  • ์„ฑ๋Šฅ ํšจ์œจ์„ฑ: ์‹ค์ œ DOM์— ๋Œ€ํ•œ ์ง์ ‘ ์กฐ์ž‘์˜ ์ˆ˜๋ฅผ ์ค„์—ฌ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜: ํ•ซ ๋ฆฌ๋กœ๋”ฉ์„ ํ†ตํ•ด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ฆ‰๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํ™”๋œ ๊ฐœ๋ฐœ: ๋ณต์žกํ•œ DOM ์ž‘์—…์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปดํฌ๋„ŒํŠธ ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

React ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋™์ ์ด๊ณ  ํšจ์œจ์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ์ค‘์š”ํ•œ ์ฒซ๊ฑธ์Œ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋ฉฐ, ๊ฐ•๋ ฅํ•œ VS Code ํ™•์žฅ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์ฝ”๋“œ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์š”์ :

  • ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”: Create React App์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์ค€ํ™”๋œ ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ์ง„ํ–‰ํ•˜์„ธ์š”.
  • ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ: ํ•„์ˆ˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ํŒŒ์ผ์— ์ต์ˆ™ํ•ด์ง€์„ธ์š”.
  • VS Code ํ™•์žฅ: ES7+ ์Šค๋‹ˆํŽซ, React Refactor, Prettier, Material Icon Theme๊ณผ ๊ฐ™์€ ํ™•์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค์„ธ์š”.
  • ํ•ซ ๋ฆฌ๋กœ๋”ฉ๊ณผ Virtual DOM: ์‹ค์‹œ๊ฐ„ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ ๋ฐ ์ตœ์ ํ™”๋œ ๋ Œ๋”๋ง์˜ ์ด์ ์„ ๋ˆ„๋ฆฌ์„ธ์š”.

์ด๋Ÿฌํ•œ ๊ธฐ์ดˆ ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด React ์—ฌ์ •์„ ์‹œ์ž‘ํ•˜๋ฉด ์„ฑ๊ณต์„ ์œ„ํ•œ ๊ธฐ๋ฐ˜์„ ๋‹ค์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ–‰๋ณตํ•œ ์ฝ”๋”ฉ ๋˜์„ธ์š”!

SEO ํ‚ค์›Œ๋“œ: React ๊ฐœ๋ฐœ, React ์‹œ์ž‘ํ•˜๊ธฐ, React ํ”„๋กœ์ ํŠธ ์„ค์ •, React๋ฅผ ์œ„ํ•œ VS Code ํ™•์žฅ, React Virtual DOM, React ํ•ซ ๋ฆฌ๋กœ๋”ฉ, React ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ, ES7 React ์Šค๋‹ˆํŽซ, React Refactor, Prettier ์ฝ”๋“œ ํฌ๋งคํ„ฐ, Material Icon Theme, ์ดˆ๋ณด์ž์šฉ React ๊ฐ€์ด๋“œ, React ํŠœํ† ๋ฆฌ์–ผ, React ๋ชจ๋ฒ” ์‚ฌ๋ก€.

์ฐธ๊ณ : ์ด ๊ธฐ์‚ฌ๋Š” AI์— ์˜ํ•ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.






Share your love