์žฌ๋ฐŒ๊ฒŒ ํ•ฉ์‹œ๋‹ค

๊ธฐ๋กํ•˜๊ธฐ, ๊ฐ€์‹œํ™”ํ•˜๊ธฐ

์ „์ฒด ๊ธ€ 31

React.FC ๋Œ€์‹  PropsWithChildren์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

React.FC์˜ ๋ฌธ์ œ์  props์—๋Š” ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ๋ช…์‹œ์  props: props ํƒ€์ž…์— ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” props ์•”์‹œ์  props:@types/react๋“ฑ์— ์˜ํ•ด ์ž๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” props React.FC์˜ props๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ children์„ ํฌํ•จํ•œ๋‹ค. ์ฆ‰, React.FC๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ children์ด ์•”์‹œ์  props๊ฐ€ ๋œ๋‹ค. excess props: ์ปดํฌ๋„ŒํŠธ์— ๋„˜๊ฒจ์ง€์ง€๋งŒ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” props → excess props์˜ ์กด์žฌ๋Š” POLA์›์น™์„ ์–ด๊ธฐ๊ฒŒ ๋งŒ๋“ ๋‹ค. POLA: Principle of Least Astonishment ์ปดํฌ๋„ŒํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ์ƒํ•œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™ ์•”์‹œ์  props์ธ children์€ excess props์— ํ•ด๋‹นํ•œ๋‹ค. ์‚ฌ์šฉ์ž ..

Typescript 2022.11.17

Vanilla Javascript๋กœ SPA ๊ตฌํ˜„ํ•˜๊ธฐ(ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‡ผํ•‘๋ชฐ SPA)

โœ… SPA(Single Page Application) ์ดํ•ดํ•˜๊ธฐ ํŽ˜์ด์ง€ ์ด๋™์˜ ๊ณผ์ •์„ ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด url์„ ์š”์ฒญํ•œ๋‹ค. (์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜, ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ๋“ฑ) ์š”์ฒญํ•œ url์— ๋งž๋Š” ๋ฆฌ์†Œ์Šค(html, css, js)๋ฅผ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜์ฃ ? MPA(Multiple Page Application), SPA(Single Page Application) ๋ชจ๋‘ ํŽ˜์ด์ง€ ์ด๋™์˜ ๊ณจ์ž๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ MPA์™€ SPA๋กœ ๊ตฌ๋ถ„์ด ๋ฉ๋‹ˆ๋‹ค. MPA์˜ ๋ฆฌ์†Œ์Šค ์š”์ฒญ ๋ฐฉ์‹ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด url์„ ์š”์ฒญ ํ•ด๋‹น url์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋ฒ„์— ์š”์ฒญ ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์‘๋‹ต์œผ๋กœ ํ™”๋ฉด์„ ๋ Œ๋”๋ง ์ฆ‰, ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์„œ..

Vanilla JS 2022.11.11

Vanilla Javascript๋กœ ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ

๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์‡ผํ•‘๋ชฐ SPA๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋  ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ–ˆ๋‹ค. ํ™ฉ์ค€์ผ๋‹˜์˜ ๊ธ€์„ ์ฐธ๊ณ ํ•ด ์ดˆ์•ˆ์„ ์งœ๊ณ , ์ˆ˜์ •์„ ๊ฑฐ์ณค๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ constructor: ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ฆ‰ ์ดˆ๊ธฐ state/props๋ฅผ ์„ค์ •ํ•˜๊ณ , template ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฌผ์ธ ๋งˆํฌ์—…์„ ๋ Œ๋”๋งํ•˜๊ณ , ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. setup: ์ดˆ๊ธฐ state๋ฅผ ์„ค์ •ํ•œ๋‹ค. mounted: ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. template: ์ปดํฌ๋„ŒํŠธ์˜ state๋ฅผ ๋ฐ˜์˜ํ•œ ๋งˆํฌ์—…์„ ๋ฆฌํ„ดํ•œ๋‹ค. render: $target๋‚ด์— ๋งˆํฌ์—…์„ ๋ Œ๋”๋งํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ mounted ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. setState: ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ , render ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. mounted ๋ฉ”์„œ๋“œ๋ฅผ ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด์ž. ์˜ˆ์‹œ๋กœ ํ™ฉ..

Yarn Berry ์ ์šฉ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

โœ… ๋ฌธ์ œ ์ œ์•„๋ฌด๋ฆฌ yarn set version berry๋ฅผ ํ•ด๋„ yarn install๋งŒ ํ•˜๋ฉด node_modules ํด๋”๊ฐ€ ์ƒ์„ฑ๋จ โœ… ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ํ˜น์‹œ๋‚˜ ํ•ด์„œ yarn config๋กœ ์„ค์ •์„ ํ™•์ธํ•ด๋ดค๋‹ค. nodeLinker๊ฐ€ 'node-modules'๋กœ ์„ค์ •๋˜์–ด ์žˆ์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์„ธํŒ…ํ•˜๋˜ ๋ ˆํผ์ง€ํ† ๋ฆฌ์— .yarnrc.yml ํŒŒ์ผ์ด ๋ณ„๋„๋กœ ์—†์—ˆ์œผ๋ฏ€๋กœ ๊ธ€๋กœ๋ฒŒ ์„ธํŒ…์ธ ๊ฒƒ์œผ๋กœ ์ถ”์ •๋˜์—ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์—์„œ ๋ฃจํŠธ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ํ™•์ธํ•ด๋ณด๋‹ˆ .yarnrc.yml ํŒŒ์ผ์ด ์žˆ์—ˆ๊ณ , ํŒŒ์ผ ์•ˆ์—๋Š” ๋‚ด ์˜ˆ์ƒ๋Œ€๋กœ nodeLinker: node-modules๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์—ˆ๋‹ค. ํ•ด๋‹น ๋ผ์ธ์„ ์ง€์› ๋‹ค. โœ… ๊ฒฐ๊ณผ ๋‚˜๋„ ๋“œ๋””์–ด node_modules์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์—ˆ๋‹ค! ๊ฐ„๋‹จํ•œ๊ฑด๋ฐ ํ—ค๋งธ๋‹ค ์›์ธ ๋ช…ํ™•ํžˆ ์ฐพ๊ณ  ๋ง๋”ํžˆ ํ•ด๊ฒฐํ•ด์„œ ๋ฟŒ๋“ฏํ•จ

React 2022.10.21

ํ”„๋กœ์ ํŠธ ์Šค์บํด๋”ฉ ๊ธฐ๋ก ๐Ÿ“ธ

์ฒซ ๋ฒˆ์งธ, ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ์˜ ๋ผˆ๋Œ€๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ–‰์œ„๋ฅผ ๋œปํ•œ๋‹ค. ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์ธ README, License๋ฅผ ๋น„๋กฏํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ, ์ปดํŒŒ์ผ ์„ค์ • ๋“ฑ์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” CLI ํ˜น์€ UI ๋„๊ตฌ๊ฐ€ ์ด์™€ ๊ฐ™๋‹ค. ์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์šฉ์–ด์‚ฌ์ „ ์šฐ๋ฆฌ๋Š” React Native ๋‚ด์—์„œ Next.js๋กœ ์›น๋ทฐ๋ฅผ ๋„์šฐ๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ Next.js ๋ ˆํผ์ง€ํ† ๋ฆฌ์™€ React Native ๋ ˆํผ์ง€ํ† ๋ฆฌ ๋‘ ๊ฐœ๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ๋‚œ ๊ทธ ์ค‘ RN ๋ ˆํผ์ง€ํ† ๋ฆฌ์˜ ์Šค์บํด๋”ฉ์„ ๋‹ด๋‹นํ–ˆ๋‹ค!๐Ÿ™‹๐Ÿป‍โ™€๏ธ ๋””ํ”„๋งŒ ์ด์ „ ๊ธฐ์ˆ˜์˜ RN ๋ ˆํผ์ง€ํ† ๋ฆฌ์™€, ๋‹ค๋ฅธ ํŒ€์› ๋ถ„์ด ๋๋‚ด๋†“์œผ์‹  ์›น ๋ ˆํผ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค. ๋‹ค๋ฅธ ํŒ€์›๋“ค์ด clone์„ ๋ฐ›์•˜์„ ๋•Œ๋„ ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ , ์ฐธ๊ณ ํ•œ ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ์ถ”๊ฐ€๋˜์–ด ์žˆ๋Š” ๊ฐ์ข… ํˆด๋“ค(ํŒจํ‚ค์ง€๋“ค)์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณธ ์ ..

React 2022.10.18

Husky๋กœ Git hooks ์ž๋™ํ™”ํ•˜๊ธฐ(+ lint-staged, commitlint)

Git hooks๋ž€? ํŠน์ • git ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • ๋™์ž‘์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ ์˜ˆ) commit ์‹œ์— ์ž๋™์œผ๋กœ lint๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ Husky๋ž€? ์†์‰ฌ์šด Git Hook ์ ์šฉ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Husky์™€ Github Actions์˜ ์ฐจ์ด Husky: ๋กœ์ปฌ์—์„œ ํŠน์ • git ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ Github Actions: ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • ์ž‘์—…๋“ค์„ ์‹คํ–‰. CI/CD๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค. ์ด ๊ตฌ๋ถ„์ด ์ •ํ™•ํ•œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์šฐ์„  ๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ์ดํ•ดํ–ˆ๋‹ค. ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Git hooks ์ข…๋ฅ˜ ํ”„๋กœ์ ํŠธ์—์„œ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Git hooks ์ข…๋ฅ˜๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค! cd .git/hooks ls lint-staged, com..

eslint ํ”Œ๋Ÿฌ๊ทธ์ธ ์ข…๋ฅ˜, ์ด ์ •๋ฆฌ

ํ”„๋กœ์ ํŠธ ์Šค์บํด๋”ฉ ์ค‘ ์ˆ˜๋งŽ์€ eslint ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋œ ๋‚˜.. ์ผ์ผ์ด ๊ตฌ๊ธ€๋งํ•˜๋Š๋ผ ๊ณ ์ƒํ–ˆ์–ด์„œ, ํ˜น์‹œ ๋‚˜๊ฐ™์€ ์‚ฌ๋žŒ์ด ์žˆ์„๊นŒ ์ •๋ฆฌํ•ด๋ด„!๐Ÿ˜‡ ํŒจํ‚ค์ง€๋“ค์„ ๋ช‡ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•ด๋’€์œผ๋‹ˆ, ์•„๋ž˜ ๋ถ„๋ฅ˜๋กœ ๊ฐ ํŒจํ‚ค์ง€์˜ ๋Œ€๋žต์ ์ธ ์—ญํ• ๋“ค์„ ํŒŒ์•…ํ•˜์‹  ๋‹ค์Œ ์ž์„ธํ•œ ์„ค์น˜ ๊ณผ์ •์„ ๊ตฌ๊ธ€๋ง ํ•˜์‹œ๋ฉด ๋  ๋“ฏํ•ฉ๋‹ˆ๋‹ค! prettier ์‚ฌ์šฉ ๊ด€๋ จ prettier์™€ eslint๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํŒจํ‚ค์ง€๋“ค์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ prettier๋Š” ์ฝ”๋“œ ํฌ๋งทํŒ…์ด ์ฃผ ๋ชฉ์ ์ด๊ณ , eslint๋Š” lint(์—๋Ÿฌ๋ฅผ ์žก์•„๋‚ด๋Š” ์ผ)๊ฐ€ ์ฃผ ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต ๋‘ ๊ฐ€์ง€๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. eslint-config-prettier eslint-plugin-prettier typescript ์‚ฌ์šฉ ๊ด€๋ จ @typescript-eslint/eslint-plugin @typ..

React 2022.10.15

Yarn Berry๋กœ React Native ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ

Yarn Berry๋กœ React Native ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•ด๋ณด์ž. https://dev-yakuza.posstree.com/ko/react-native/install-on-mac/ ๋งฅ(Mac)์— react native ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ react-native๋กœ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋งฅ(Mac)์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด ๋ณด๊ณ , react-native๋กœ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค. dev-yakuza.posstree.com ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„ ๊ธ€์„ ์ฐธ๊ณ ํ–ˆ๋‹ค. Yarn Berry๋ผ๋Š” ํŠน์ˆ˜์„ฑ์ด ๋”ํ•ด์กŒ์„ ๋ฟ์ด๋‹ค.. ๐Ÿซ ๐Ÿซ Yarn Berry ๊ฐ„๋žตํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ Yarn 2.0 ์ดํ›„๋ถ€ํ„ฐ Yarn Berry๋ผ๊ณ  ์ง€์นญํ•œ๋‹ค. Plug'N'Play(PnP) ๋ผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. node_modules ํด๋” ๋Œ€..

React 2022.10.12

Github Actions๋กœ CI ์ ์šฉํ•˜๊ธฐ(๊ทน ์ดˆ๋ณด์ž์šฉ๐Ÿ˜ˆ), Github Actions ์ž‘๋™ ํ™•์ธํ•˜๋Š” ๋ฒ•

์ด๊ฑฐ ๋ณด์‹ญ์‹œ์˜ค!!! ์ œ๊ฐ€ ๋ฉ‹์ง„ ๊ฒƒ์„ ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค!!! ํฌํฌ ๋ฟŒ๋“ฏโœŒ๐Ÿป์ด๋Ÿฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณธ ๊ฒŒ ์ฒ˜์Œ์ด๋ผ ๋งŽ์ด ํ—ค๋งธ๋‹ค. ๋‚˜๊ฐ™์€ ์ดˆ๋ณด์ž๋“ค์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•ด๋ณด๊ฒ ๋‹ค. ๐Ÿ’๐Ÿป‍โ™‚๏ธ Github Actions๋ž€? CI/CD ํˆด์ด๋‹ค. Jenkins, CircleCI, TravisCI ๋“ฑ์˜ ๋‹ค๋ฅธ ํˆด๋“ค๋„ ์žˆ์ง€๋งŒ Github Actions์˜ ๊ฒฝ์šฐ Github์—์„œ ์ œ๊ณตํ•˜๋Š” CI/CD ํˆด์ด๋ผ๋Š” ๊ฒŒ ํฐ ์ด์ ์ด๋‹ค. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ ์šฉ ๋ฐฉ๋ฒ• ํ”„๋กœ์ ํŠธ ์ตœ์ƒ๋‹จ์— .github ํด๋” ์ƒ์„ฑ ๊ทธ ์•ˆ์— workflows ํด๋” ์ƒ์„ฑ ๊ฐœ๋ณ„ workflow ํŒŒ์ผ ์ž‘์„ฑ. ํ™•์žฅ์ž๋Š” .yml ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํŒŒ์ผ๋ช…์€ ์ž์œ ๋กญ๊ฒŒ ์ง€์œผ๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” CI ๋ผ๋Š” ์ด๋ฆ„์˜ workflow๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ํŒŒ์ผ๋ช…์€ ci.yml๋กœ ์ง€์—ˆ๋‹ค. workflow๋Š” ๋ง๊ทธ๋Œ€๋กœ ์ผ๋ จ์˜ ..

๋ชจ๋“ˆํ™”์˜ ๊ฐœ๋…๋ถ€ํ„ฐ Yarn Berry๊นŒ์ง€

๋””ํ”„๋งŒ์—์„œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋กœ Yarn Berry๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. Yarn Berry์˜ ํŠน์ง•์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด, ๋ชจ๋“ˆํ™”์™€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์˜ ๊ฐœ๋…๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์งš์–ด๋ณด์•˜๋‹ค. ๐Ÿ—‚ ๋ชจ๋“ˆํ™”์˜ ํ•„์š”์„ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•ด๋„ ๋ชจ๋‘ ๊ฐ™์€ ์ „์—ญ ์Šค์ฝ”ํ”„ ์œ„์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ณต์œ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“ˆํ™”๋ฅผ ์œ„ํ•ด์„ , ES6 ๋ชจ๋“ˆ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค. script ํƒœ๊ทธ์— module ํƒ€์ž…์„ ์„ค์ •ํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋ชจ๋“ˆ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“ˆ๋กœ ๋กœ๋“œํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์€ ๋ชจ๋“ˆ ์Šค์ฝ”ํ”„์— ํฌํ•จ๋œ๋‹ค. ๋ชจ๋“ˆ ์Šค์ฝ”ํ”„ ๋‚ด์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์€ ๋ณ„๋„์˜ ๋…๋ฆฝ๋œ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์™ธ๋ถ€์—์„œ๋Š” exportํ•œ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ES6์—์„œ๋Š” named export ๋ผ๋Š” ๋ชจ๋“ˆ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. export ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ..

React 2022.10.10