header-img
Info :
728x90

 

React ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด, ๋ฐฐํฌ ํ™˜๊ฒฝ?์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์…‹ํŒ…ํ•ด์•ผํ•˜๋Š” case๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋ณดํ†ต API ์ฃผ์†Œ๋ฅผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๋งŽ์ด ์…‹ํŒ…ํ•ด๋‘๊ณ ๋Š” ํ•˜๋Š”๋ฐ..

์šด์˜ API ์ฃผ์†Œ์™€ ๊ฐœ๋ฐœ API ์ฃผ์†Œ๋ฅผ ๋ฐฐํฌ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์…‹ํŒ…ํ•ด๋‘๊ณ  ์‹ถ์€ case๊ฐ€ ๋”ฑ ์ด์— ํ•ด๋‹นํ•œ๋‹ค.

 

 

React :: ํ™˜๊ฒฝ๋ณ€์ˆ˜(.env) ์…‹ํŒ…ํ•˜๊ธฐ

ํ† ํฐ์ด๋‚˜ API ํ‚ค ๊ฐ™์€ ๊ฒƒ์€ ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ ์ง‘์–ด ๋„ฃ์œผ๋ฉด ๋ฐฐํฌ ์‹œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ๋ชจ๋‘ ๋“œ๋Ÿฌ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์ˆจ๊ฒจ์„œ ์ฝ”๋”ฉ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๊ฐ€ "ํ™˜๊ฒฝ๋ณ€์ˆ˜" ์ด๋‹ค.

bornatnoon.tistory.com

 

์šฐ์„  ๊ธฐ์ดˆ ์…‹ํŒ… ๋ฐฉ๋ฒ•์„ ์ฒจ๋ถ€ํ•ด๋ณธ๋‹ค. (.env ํŒŒ์ผ์„ ํ•˜๋‚˜๋งŒ ์“ฐ๋Š” ์ผ€์ด์Šค)

 

์ผ€์ด์Šค์— ๋”ฐ๋ฅธ .env ์„ค์ • ๋ฐฉ๋ฒ•

โ€ป ์ฐธ๊ณ . ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ CRA(Create-React-App) ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐ ์ƒ์„ฑํ•จ.

 

ํ•ด๋‹น ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์ƒ์„ฑ ์‹œ์—๋Š” ์•„๋งˆ dotenv ๋ผ๋Š” ๊ฒƒ์„ ์„ค์น˜ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ณผ์ •์ด ์ถ”๊ฐ€๋กœ ์š”์ฒญ๋  ๋“ฏ ํ•˜๋‹ค.

 

.env ํŒŒ์ผ ์ƒ์„ฑ

 

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์…‹ํŒ…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ”„๋กœ์ ํŠธ ์ตœ์ƒ์œ„(root) ๊ฒฝ๋กœ์— ํŒŒ์ผ ์ƒ์„ฑํ•œ๋‹ค.

 

์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š” .env ํŒŒ์ผ์˜ ์ข…๋ฅ˜์—๋Š”

โ‘ด.env โ‘ต.env.development โ‘ถ.env.local โ‘ท.env.production โ‘ธ.env.test ...

 

๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์šฉ๋„์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์…‹ํŒ…ํ•ด์ค€๋‹ค.

 

์ƒ์„ฑํ•œ ํŒŒ์ผ์„์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ๋นŒ๋“œ ์ข…๋ฅ˜ ๋ณ„๋กœ ์ ์šฉ์ด ๋œ๋‹ค.

์šฐ์„  ์ˆœ์œ„๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. (์™ผ์ชฝ์ด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋” ๋†’์Œ)

start : .env.development.local > .env.development > .env.local > .env
build : .env.production.local > .env.production > .env.local > .env
test : .env.test,local > .env.test > .env.local > .env

 

.env ํŒŒ์ผ ๋ณ€์ˆ˜ ์„ค์ •

 

## .env.development

REACT_APP_URL = localhost
REACT_APP_KEY = localkey

 

## .env.production

REACT_APP_URL = serverapi
REACT_APP_KEY = servercommonkey

 

.env ๋ณ€์ˆ˜ ์‚ฌ์šฉ๋ฒ•

์œ„์—์„œ ์„ค๋ช…ํ•œ ์šฐ์„ ์ˆœ์œ„์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

์‚ฌ์šฉ๋ฒ•์€ ๊ธฐ๋ณธ ๋ณ€์ˆ˜ ์‚ฌ์šฉ๋ฒ•๊ณผ ๋™์ผ.

// in .js
const temp = process.env.REACT_APP_
// in .html
%process.env.REACT_APP_%

 

package.json ์„ค์ • ํ™•์ธ

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์œ„์˜ ๊ฐœ๋…๋งŒ์œผ๋กœ๋„ ํ”„๋กœ์ ํŠธ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ธ๋ฐ...

๋งŒ์•ฝ ์ด ์„ค์ •์ด ์ž˜ ์•ˆ๋จนํžˆ๋Š” ๊ฒฝ์šฐ์—๋Š” package.json ์„ค์ •์„ ํ™•์ธํ•ด๋ณด๋„๋ก ํ•˜์ž.

// package.json

"scripts": {
    "start": "react-scripts start",
    "build": "env-cmd -f .env.production react-scripts build",
  },

 

 

๋ชจ๋“  ์„ค์ •์ด ์™„๋ฃŒ ๋˜๋ฉด

npm start ๋ฅผ ํ•˜๋ฉด .env.development ํŒŒ์ผ์ดใ…ก, npm build ๋ฅผ ํ•˜๋ฉด .env.production ํŒŒ์ผ์ด ์ ์šฉ๋˜์–ด ์‹คํ–‰ ๋  ๊ฒƒ์ด๋‹ค.

 

 

728x90
๋”๋ณด๊ธฐ
FRONTEND/React