728x90

๐Ÿ’ป์›น(Web)/React 16

React hook: useEffect, useState, useMemo, useCallback

useEffect์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋  ๋•Œ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ์ƒํƒœ๊ฐ€ props๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. useStatestate์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋œ๋‹ค. useState: ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋ Œ๋”๋ง๋œ๋‹ค. ๋ Œ๋”๋ง์— ๋ฐ˜์˜๋˜์–ด UI์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ.useRef: ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, useRef๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ํ™”๋ฉด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.๋”ฐ๋ผ์„œ ์ž…๋ ฅ ๊ฐ’์ด ํ™”๋ฉด์— ์ฆ‰์‹œ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•ด๋‹น ์ƒํƒœ๋ฅผ ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด useRef๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.  useMemouseMemo๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ state๊ฐ€ ์žˆ์„ ๋•Œ ๋ถˆํ•„..

๋นŒ๋“œ ๋„๊ตฌ ๋น„๊ต: Webpack๊ณผ Vite์˜ ์ฐจ์ด / ์ปดํŒŒ์ผ๊ณผ ๋นŒ๋“œ

๐Ÿ“Œ๋นŒ๋“œ๋ž€?์›น ๊ฐœ๋ฐœ์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ  ๋ณ€ํ™˜ํ•˜์—ฌ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋นŒ๋“œ ๋„๊ตฌ๋กœ๋Š” Webpack, Vite ๋“ฑ์ด ์žˆ๋‹ค. โœ”๐Ÿ‘€ Webpack๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ ์ค‘ ํ•˜๋‚˜๋‹ค. Webpack์€ CommonJS์™€ ES ๋ชจ๋“ˆ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฉฐ, ๋ณ„๋„์˜ ๋ณ€ํ™˜ ์—†์ด๋„ require์™€ module.exports๋ฅผ ์ธ์‹ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด ๋ชจ๋“  ๋ชจ๋“ˆ์„ ๋ถ„์„ํ•˜๊ณ  ์˜์กด์„ฑ์„ ํŒŒ์•…ํ•˜๋ฉฐ ์ด๋กœ์ธํ•ด ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. โœ”๐Ÿ‘€ ViteVite๋Š” ๋น ๋ฅธ ๋นŒ๋“œ ์†๋„์™€ ์ฆ‰๊ฐ์ ์ธ ๋ชจ๋“ˆ ์—…๋ฐ์ดํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ES ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ES๋ชจ๋“ˆ์„ ์ง์ ‘ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ดˆ๊ธฐ ๋นŒ๋“œ ์—†์ด ํ•„์š”ํ•œ..

[TypeScript]TypeScript ์ดํ•ดํ•˜๊ธฐ(1) - ํƒ€์ž… ์ง‘ํ•ฉ / ์ถ”๋ก  / ๋‹จ์–ธ

โœจํƒ€์ž…๊ณผ ์ง‘ํ•ฉ ํƒ€์ž…์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ์ง‘ํ•ฉ์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํƒ€์ž… ๊ฐ„์—๋Š” ์„œ๋กœ ํฌํ•จ ๊ด€๊ณ„(์Šˆํผ-๋ถ€๋ชจ ํƒ€์ž…, ์„œ๋ธŒ-์ž์‹ ํƒ€์ž…)์ด ์กด์žฌํ•œ๋‹ค. โœ”ํƒ€์ž… ํ˜ธํ™˜์„ฑA์™€ B ๋‘๊ฐœ์˜ ํƒ€์ž…์ด ์กด์žฌํ•  ๋•Œ A ํƒ€์ž…์˜ ๊ฐ’์„ B ํƒ€์ž…์œผ๋กœ ์ทจ๊ธ‰ํ•ด๋„ ๊ดœ์ฐฎ์€์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์—…์บ์ŠคํŒ…: ์„œ๋ธŒ ํƒ€์ž…์˜ ๊ฐ’์„ ์Šˆํผ ํƒ€์ž…์˜ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ โœ”๋‹ค์šด์บ์ŠคํŒ…: ๋ฐ˜๋Œ€๋กœ ์Šˆํผ ํƒ€์ž…์˜ ๊ฐ’์„ ์„œ๋ธŒ ํƒ€์ž…์˜ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ โœ–→ ์ง‘ํ•ฉ์˜ ํฌํ•จ ๊ด€๊ณ„์ฒ˜๋Ÿผ ์—…์บ์ŠคํŒ…์€ ๋ชจ๋“  ์ƒํ™ฉ์— ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋‹ค์šด ์บ์ŠคํŒ…์€ ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์— ๋ถˆ๊ฐ€ํ•˜๋‹ค. โœ”Unknown(์ „์ฒด ์ง‘ํ•ฉ)๋ชจ๋“  ์„œ๋ธŒ ํƒ€์ž…์„ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๊ฐ–๋Š” ์ „์ฒด ์ง‘ํ•ฉ์œผ๋กœ unknown ํƒ€์ž… ๋ณ€์ˆ˜์— ๋ชจ๋“  ํƒ€์ž…์˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ unknown ํƒ€์ž…์˜ ๊ฐ’์€ any๋ฅผ ์ œ์™ธํ•œ ์–ด๋– ํ•œ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์—๋„ ํ• ..

[TypeScript]TypeScript์˜ ๊ฐœ์š” ๋ฐ ๊ธฐ์ดˆ

๐Ÿ“ŒTypeScript ๊ฐœ์š” ๋ฐ ๊ธฐ์ดˆโœจTypeScript ๊ฐœ์š”TypeScript๋ž€ ์–ด๋–ค ์–ธ์–ด์ธ๊ฐ€?TypeScript๋ž€ JavaScript๋ฅผ ๋” ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Type์ด๋ผ๋Š” ์•ˆ์ „์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ํ•œ ํ™•์žฅํŒ JavaScript๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.โ€ป์ฐธ๊ณ : tsconfig.js → TypeScript์˜ ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜ ํŒŒ์ผ์ด๋‹ค.โ€ป์ฐธ๊ณ : tsconfig.js → TypeScript์˜ ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜ ํŒŒ์ผ์ด๋‹ค.  โœจTypeScript์˜ ์›์‹œํƒ€์ž…: number, string, boolean, null, undefinedTypeScript์˜ ์›์‹œํƒ€์ž…์ธ Type number, string, boolean, null, undefined์— ๋Œ€ํ•ด TypeScript๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.// type ์ฃผ์„ ๋˜๋Š” t..

ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋”ฉ์ปจ๋ฒค์…˜

์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํŒ€์›๋“ค๋ผ๋ฆฌ ์ฝ”๋”ฉ์ปจ๋ฒค์…˜์„ ์ •ํ•ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๐Ÿคํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋”ฉ์ปจ๋ฒค์…˜ โ€ป์ฐธ๊ณ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜โ˜‘๏ธ์‹๋ณ„์ž: ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฐฐ์—ด, ํด๋ž˜์Šค ๋“ฑ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„โŒ ์ง๊ด€์ ์œผ๋กœ ์˜๋ฏธ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€๊ธ‰์ ์ด๋ฉด ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.โŒ ํ•œ๊ธ€์„ ์ง๋ฒˆ์—ญํ•œ ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.โŒ ๊ณต๋ฐฑ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.โŒ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๐Ÿ‘Œ๐Ÿป ๋ณ€์ˆ˜, ํ•จ์ˆ˜๋Š” ์นด๋ฉœ ์ผ€์ด์Šค๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.userName, totalAmount, orderName // goodusername, TotalAmount, order_name // bad๐Ÿ‘Œ๐Ÿป ๋ฐฐ์—ด์€ ๋ณต์ˆ˜ํ˜•์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.๐Ÿ‘Œ๐Ÿป private ๋ณ€์ˆ˜๋Š” _๋ฅผ ์ ‘๋‘์‚ฌ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค...

[React]Custom Hook

Custom HookCustom Hook์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.์žฌ์‚ฌ์šฉ์„ฑ: ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋™์ผํ•œ ๋กœ์ง์„ ๋ฐ˜๋ณตํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, Custom Hook์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๋‹ค.์ปดํฌ๋„ŒํŠธ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ: ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๋งŽ์•„์ง€๋ฉด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. Custom Hook์œผ๋กœ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋” ๊น”๋”ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.๋‹จ์ผ ์ฑ…์ž„ ์›์น™: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•œ๊ฐ€์ง€ ์ฑ…์ž„๋งŒ ๊ฐ€์ง€๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด Custom Hook์„ ์‚ฌ์šฉํ•ด ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๋ฉด ์ข‹๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ช…ํ™•ํ•œ ์—ญํ• ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค.์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ถ€์ˆ˜ ํšจ๊ณผ ์ฒ˜๋ฆฌ: ๋ณต์žกํ•œ ์ƒํƒœ ๊ด€๋ฆฌ๋‚˜ ๋ถ€์ˆ˜ ํšจ๊ณผ(side effects)๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ, Custom..

[React]Vite, Redux

CRA๋ž€ JavaScript๋กœ ๊ตฌ์„ฑ๋œ Webpack(์›นํŒฉ)์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์†๋„๊ฐ€ ๋Š๋ฆฐํŽธ์ด๋‹ค. ์ฝ”๋“œ์˜ ์–‘์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ๋Š๋ฆฐ ์†๋„๋ฅผ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Esbuild๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋นŒ๋“œํˆด์ธ vite๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.*Esbuild: Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ JavaScript ๋นŒ๋“œํˆด, ์†๋„๊ฐ€ ๋น ๋ฆ„ ๐Ÿ“ŒWebpack๊ณผ Vite์˜ ์ฐจ์ด์ ๊ฐœ๋ฐœ์„œ๋ฒ„Webpack: ์†Œ์Šค ์ฝ”๋“œ์™€ ๋ชจ๋“  ์ข…์† ๊ด€๊ณ„์˜ ๋ชจ๋“  ๋ฒˆ๋“ค๋ง ํ›„ ์„œ๋ฒ„๊ฐ€ ์ค€๋น„๋œ๋‹ค.Vite: Esbuild๋กœ ๋ฏธ๋ฆฌ ๋ฒˆ๋“ค๋งํ•œ ๋ชจ๋“ˆ์„ ํ•„์š”ํ•  ๋•Œ ๋™์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ฆ‰๊ฐ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ๊ตฌ๋™๋œ๋‹ค.ํ”„๋กœ๋•์…˜ ๋นŒ๋“œWebpack: ๊ฐ ๋ชจ๋“ˆ์„ ๋ฒ”์œ„๋งˆ๋‹ค ํ•จ์ˆ˜๋กœ ๋งคํ•‘ํ•˜์—ฌ ๊ฒฐํ•ฉํ•œ๋‹ค.Vite: ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๋ชจ๋“  ์ข…์† ๋ชจ๋“ˆ์„ ์ „์—ญ ๋ฒ”์œ„๋กœ ์„ ์–ธํ•˜์—ฌ ๊ฒฐํ•ฉํ•œ๋‹ค. ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ๋•Œ..

[React]์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ์„ฑ/์ผ๊ด€์„ฑ

๐Ÿ”Ž์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ & ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ + ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด๋ณด์ž. 1. ๋ชฉํ‘œ/์š”๊ตฌ์‚ฌํ•ญ1) ๋ฒ„ํŠผ์˜ shape์€ ํ•ญ์ƒ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.๋ฒ„ํŠผ์˜ ์ „์ฒด์ ์ธ ๋ชจ์–‘์€ ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ฆ‰, ์–ด๋–ค ํฌ๊ธฐ๋ฅผ ๊ฐ–๋“ , ์–ด๋–ค ์ƒ‰์„ ๊ฐ–๋˜์ง€ ๊ฐ„์— border-radius, padding ๊ฐ’์— ๋Œ€ํ•œ ์†์„ฑ๋“ค์€ ๊ณ ์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. 2) variant props์„ ํ†ตํ•ด preset๋œ ์ƒ‰์ƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.์ผ๊ด€์„ฑ ์žˆ๋Š” ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ œํ•œ์ ์œผ๋กœ props๋ฅผ ํ†ตํ•ด ์ •์˜๋œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค.๋ฏธ๋ฆฌ ์ •์˜๋œ ์ƒ‰์„ variant๋ผ๋Š” props์„ ์ด์šฉํ•˜์—ฌ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค. 3) size props๋ฅผ ํ†ตํ•ด preset๋œ ํฌ๊ธฐ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.์ƒ‰์ƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€..

[React]AWS EC2๋กœ React ๋ฐฐํฌํ•˜๊ธฐ, ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ

Netlify, Firebase๋กœ React ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ ์ดํ›„, AWS๋ฅผ ํ†ตํ•œ React ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ๋ฐฉ๋ฒ•๋„ ์•Œ์•„๋ณด์•˜๋‹ค๐Ÿ™Œ๐Ÿป AWS๋ฅผ ํ†ตํ•ด React์™€ ๊ฐ™์€ SPA๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. AWS EC2๋ฅผ ํ™œ์šฉํ•œ ๋ฐฐํฌ์™€ AWS S3+cloudfront๋ฅผ ํ™œ์šฉํ•œ ๋ฐฐํฌ์ด๋‹ค. ์ด๋•Œ, ๊ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์—์„œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ๋‹ค๋ฅด๋‹ค. EC2๋ฅผ ์ด์šฉํ•œ ๊ฒฝ์šฐ ์›น ์„œ๋ฒ„์™€ WAS ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ณ , S3+cloudfront๋ฅผ ์ด์šฉํ•œ ๊ฒฝ์šฐ ์ •์  ์ฝ˜ํ…์ธ ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ”ŽEC2๋ฅผ ํ†ตํ•œ ๋ฐฐํฌ EC2๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„์™€ WAS ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, react ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” express ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค. express ์„œ๋ฒ„๋Š” ์›น ์„œ๋ฒ„๋กœ๋„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ณ , WA..

[React]Firebase๋กœ React ๋ฐฐํฌํ•˜๊ธฐ, Mixed-Content ์—๋Ÿฌ

Netlify๋กœ React ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•œ ์ดํ›„, ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฐํฌ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ Firebase๋ฅผ ์ด์šฉํ•ด React ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค๐Ÿ™Œ๐Ÿป ๐Ÿ”ŽFirebase Firebase๋Š” ๊ฐœ๋ฐœ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ๋ชจ๋ฐ”์ผ ๋ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ(์˜ˆ: ์‚ฌ์šฉ์ž์ธ์ฆ, DB, ๋ฐฐํฌ)๋“ค์„ ์ •ํ˜•ํ™”๋œ ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๐Ÿ”ŽFirebase๋ฅผ ํ†ตํ•ด React ํ”„๋กœ์ ํŠธ ๋ฐฐํฌํ•˜๊ธฐ Firebase๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค ์ค‘ ๋ฐฐํฌ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด๋ณด๋„๋ก ํ•˜์ž. 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ ์•„๋ž˜ ๋งํฌ์—์„œ “ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ”๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. https://console.firebase.google..

728x90