๐Ÿš€React ์ฑŒ๋ฆฐ์ง€ Day3

westZeroยท2023๋…„ 6์›” 2์ผ
0

JS & ๋ฆฌ์•กํŠธ ์ฑŒ๋ฆฐ์ง€

๋ชฉ๋ก ๋ณด๊ธฐ
3/10

TIL day3 ๐Ÿšฉ

์˜ค๋Š˜์˜ ํ•œ์ค„ํ‰ : react๋Š” ์ •๋ง ํšจ์œจ์ ์ด์ง€๋งŒ ๋™์‹œ์— ์–ด๋ ค์šด ์นœ๊ตฌ๋กœ๊ตฌ๋‚˜.

์ผ๋‹จ ์˜ค๋Š˜์€ ๊ฐ€๋ณ๊ฒŒ react์˜ PropTypes์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋Š”๋ฐ ์–ดํœด.. ์ •๋ง ์–ด๋ ต๋‹ค ์–ด๋ ค์›Œ!
PropTypes์€ css๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋ชจ๋“ˆํ™”๋ฅผ ์‹œ์ผœ์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์ค€๋‹ค๋Š” ๊ฐœ๋…์ธ ๊ฒƒ ๊ฐ™์€๋ฐ
์†”์งํžˆ ๋‚ด๊ฐ€ ๊ฐœ๋…์ด ์ž˜ ์•ˆ์žกํžˆ๋ฉด ์‹œ๊ฐ„์“ฐ๋ฉด์„œ ๋‹ค์‹œ ๊ฐ•์˜ ๋“ฃ์ง€๋ง๊ณ  ๋‹ค๋ฆ„ ์‚ฌ๋žŒ๋“ค์ด ๋‚จ๊ธด ๊ธ€์„ ๋ณด๋ฉด์„œ ๊ฐœ๋…์ •๋ฆฌํ•˜๋Š”๊ฒŒ ์งฑ์ด๋‹ค.

์ผ๋‹จ ์˜ค๋Š˜ ํ•œ ์ž‘์—…๋“ค์„ ์‚ดํŽด๋ณด์ž!


์ด๋Ÿฐ์‹์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์–ด์„œ

import Button from "./Button";
import styles from "./App.module.css";

function App() { // ํ•จ์ˆ˜์ปดํฌ๋„ŒํŠธ
  return (
      <div>
        <h1 className={styles.title}>Welcome back!</h1>
        <Button text={"continue"}/>
        <Button text={"hola"}/>
      </div>
  );
}

export default App;

์ด๋Ÿฐ์‹์œผ๋กœ importํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค!
์ด๋ ‡๊ฒŒ import๋ฅผ ํ•˜๋ฉด ๋‹จ์ˆœ css์˜€๋˜ ์•„์ด๋“ค์ด ๊ฐ์ฒด๊ฐ€ ๋˜์–ด์„œ ์–ด๋””์„œ๋“  ๋ถˆ๋Ÿฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค!

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ ์™€์„œ css๋ฅผ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ธฐ๋•Œ๋ฌธ์— css๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ํŽธ์•ˆํ•˜๋‹ค!

๊ทธ๋ž˜์„œ PropTypes๋Š” ์–ด๋–ค ์นœ๊ตฌ์ผ๊นŒ..?
์ฐพ์•„๋ณด๋‹ˆ React์—์„œ ์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ(prop) ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ ๋ผ๊ณ  ํ•˜๋„ค์š”...
์•„๋ฌดํŠผ ๊ทธ๋ž˜๋„ ์žฅ๋‹จ์ ๋„ ๊ถ๊ธˆํ•˜๋‹ˆ๊นŒ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค!

์žฅ์  :

  1. ํƒ€์ž… ์ฒดํฌ๋ฅผ ํ†ตํ•œ ๋ฒ„๊ทธ ์ตœ์†Œํ™”: ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ๋˜๋Š” props์˜ ์œ ํ˜•๊ณผ ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
  2. ์ฝ”๋“œ ๋ฌธ์„œํ™” ์ง€์›: PropTypes๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ด๋–ค prop์„ ๋ฐ›์•„์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ปดํฌ๋„ŒํŠธ์˜ ์ดํ•ด์™€ ์œ ์ง€๋ณด์ˆ˜์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  3. ์ž‘์„ฑ๋œ ๊ทœ์น™์— ๋งž์ง€ ์•Š๋Š” ๊ฐ’์„ ํฌํ•จํ•œ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์˜ค๋ฅ˜ ์‹๋ณ„๊ณผ ์ˆ˜์ •์ด ์ˆ˜์›”ํ•ฉ๋‹ˆ๋‹ค.
  4. ์‹คํ–‰ ์‹œ prop ๊ฒ€์‚ฌ๋กœ ์ธํ•ด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋“ฑ์˜ ์ •์  ํƒ€์ž…์‚ฌ๊ฐ€ ์—†์–ด๋„ ์†Œ์Šค ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐœ๊ฒฌํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์  :

  1. ์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•„์š”: PropTypes๋Š” React v15.5 ์ดํ›„ ๋ณ„๋„์˜ ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋˜๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋Ÿฐํƒ€์ž„ ์‹œ ์ถ”๊ฐ€ ์˜ค๋ฒ„ํ—ค๋“œ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์‹œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(๊ฐœ๋ฐœ ๋ชจ๋“œ์—์„œ๋งŒ).
  3. ์„ฑ๋Šฅ ์ตœ์ ํ™” ํ•„์š”: ๋นŒ๋“œ ์‹œ PropTypes๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ถˆํ•„์š” ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ์‹คํ–‰ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ์™€ ๊ฒน์นจ: ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ ๋„๊ตฌ(์˜ˆ: TypeScript, Flow)๋ฅผ ์‚ฌ์šฉ๋ฉด PropTypes๋Š” ๋œ ํ•„์š”ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ ํ•˜๋Š”๋ฐ์š”! ๋นŒ๋“œ ์‹œ ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค๋Š” ์ด์œ ๊ฐ€ ์ •๋ง ๊ถ๊ธˆํ•ด์„œ ์ €๋Š” ๊ผญ ์ œ ์†์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ฒ ์Œ๋‹ค..
์•„๋ฌดํŠผ๊ฐ„์— ์ด๋ ‡๊ฒŒ ์ˆ˜์—…๋‚ด์šฉ ์ •๋ฆฌ๋Š” ๋งˆ์น˜๊ฒ ๊ณ ...

๋ณ„๋„๋กœ.. ์ •๋ง ๊ฐœ๋ฐœ์—์„œ ์ œ์ผ ์–ด๋ ค์šด ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…..

๋ถ„๋ช… ์–ด์ œ๊นŒ์ง€ ์ž˜๋˜๋˜ react๊ฐ€

> react-for-beginners@0.1.0 start
> react-scripts start

'react-scripts'์€(๋Š”) ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€ ๋ช…๋ น, ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ, ๋˜๋Š”
๋ฐฐ์น˜ ํŒŒ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ด๋Ÿฌ๋ฉด์„œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™๋˜์ง€ ์•Š๋Š”๊ฒŒ ์•„๋‹ˆ๊ฒ ์–ด์š”..

๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ react-script๊ฐ€ ์ •์ƒ ์„ค์น˜๋˜์ง€ ์•Š์•˜๋‹ค๋Š”...
๋ถ„๋ช… ์–ด์   ํ–ˆ๋Š”๋ฐ... ๋ญ์ง€..
ํ•˜๋ฉด์„œ ์ผ๋‹จ..
npm install react-scripts ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ž˜ ์„ค์น˜๋˜๋‹ค๊ฐ€..

npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated rollup-plugin-terser@7.0.2: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated prop-type@0.0.1: this package is no longer maintained and propably broken
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.

added 1486 packages, and audited 1487 packages in 35s

234 packages are looking for funding
run npm fund for details

6 high severity vulnerabilities

To address all issues (including breaking changes), run:
npm audit fix --force

Run npm audit for details.

์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€...

ํ•˜ ๋‚˜ ์šฐ๋ƒ,,,

์•„๋ฌดํŠผ ๋˜ ์—ด์‹ฌํžˆ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค..

๋ฐ›์€ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋Š” ํŠน์ • ํŒจํ‚ค์ง€๋“ค์ด ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์„ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”. ์ด ๋ช…๋ น์€ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์™€ ํ•จ๊ป˜ ์ผ๋ถ€ ํŒจํ‚ค์ง€์˜ ํ™˜๊ฒฝ ์„ค์ • ๋ฐฉ์‹ ๋ณ€๊ฒฝ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
npm audit fix
2.๊ฐ•์ œ๋กœ ๋ชจ๋“  ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด์„œ --force ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋น„ํ˜ธํ™˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•˜์„ธ์š”. ๊ทธ๋ž˜๋„ ์ด ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜์„ธ์š”:
npm audit fix --force
ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ ์ผ๋ถ€ ํŒจ์ง€ ์„ค์ •์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ํ•ด๊ฒฐ์ฑ…๋“ค์ด ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๋””๋ฒ„๊น… ์‹œ์— ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด๋Œ€๋กœ ์‹œ์ž‘ํ•ด๋„ ์‹คํ–‰์—๋Š” ํฐ ์ง€์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ „ ์ œ๊ฐ€ ์ฝ๊ณ ์‹ถ์€ ๋ถ€๋ถ„๋งŒ ์ฝ๊ธฐ๋กœ ํ–ˆ์–ด์š”,, ์ผ๋‹จ ๋ฌด์‹œํ•˜๊ณ  ํ™•์ธํ•ด๋ณด๋‹ˆ ์ž˜ ์ž‘๋™ํ–ˆ๋‹ค..

๊ตฟ.

profile
mi carro es bonito

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด