๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WEB/Front-End๐ŸŒ

[React] ๋ฆฌ์•กํŠธ์—์„œ CSS ์ˆ˜์ • + Deploy(๋ฐฐํฌ) ํ•˜๊ธฐ

by narang111 2021. 9. 28.

๋ฆฌ์•กํŠธ์—์„œ์˜ ๋ฐฉ๋ฒ•์ด๋ผ๊ธฐ ๋ณด๋‹ค create-react-app์˜ ์ง€๋ฐฐ ํ•˜์—์„œ css๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? ์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

index.js ํŒŒ์ผ์— index.css๋ฅผ import ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

index.css์— ๋“ค์–ด์™€์„œ ๋ฐฐ๊ฒฝ์ƒ‰์„ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์ ์šฉ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

Deploy(๋ฐฐํฌ) ํ•˜๊ธฐ

๊ทธ ์ „์— ์šฐ๋ฆฌ๊ฐ€ ์…‹ํŒ…ํ•ด๋†“์€ ๋ฆฌ์•กํŠธ ์•ฑ์„ ์‚ดํŽด๋ณด์•˜๋‹ค.

๋ณด์ด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒˆ๋กœ๊ณ ์นจ ์šฐํด๋ฆญํ•ด์„œ ์บ์‹œ ๋น„์šฐ๊ธฐ, ๊ฐ•๋ ฅ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•œ๋‹ค.

๋ณดํ†ต ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ๋ญ”๊ฐ€ ๋‹ค์šด๋ฐ›์•„์„œ ๋ณด๊ด€ํ•˜๋Š”๋ฐ ์ด๊ฒƒ์„ ์บ์‹œ๋ผ๊ณ  ํ•œ๋‹ค.

๊ฐ•๋ ฅ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ†ตํ•ด ์บ์‹œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•ด์„œ ์‹คํ–‰์„ ํ•˜๋ฉด ์šฉ๋Ÿ‰์ด ์•ฝ 1.7MB ์ด๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.

๊ธฐ๋Šฅ์ด ์—†๋Š”๋ฐ ์™œ 1.7MB ์ด๋ƒ, ๋ฆฌ์•กํŠธ๊ฐ€ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ์ถ”๊ฐ€ํ•ด๋†“์€ ์ƒํƒœ์ด๋‹ค.

create-react-app์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ์€ ํŒŒ์ผ์˜ ๋ฌด๊ฒŒ๊ฐ€ ๋ฌด๊ฒ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด 1.7MB ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๋ฉด ์šฉ๋Ÿ‰, ๋ณด์•ˆ์ ์ธ ๋ฌธ์ œ ๋“ฑ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ๋งŽ๋‹ค.

 

 

 

๊ทธ๋ž˜์„œ create-react-app์€

๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ๋Š” npm run start ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ

production mode ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋–„, ์ฆ‰ ๋นŒ๋“œ๋ฅผ ํ•  ๋•Œ๋Š” npm run build ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

build๋กœ ์‹คํ–‰์„ ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ build ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋ฟ… ์ƒ๊ธด๋‹ค.

์—ฌ๊ธฐ์—๋„ ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” index.html ์ด ์žˆ๋‹ค. index.html์„ ์—ด์–ด๋ณด๋ฉด ๊ณต๋ฐฑ์—†์ด ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ๋‹ค.

create-react-app์ด ์‹ค์ œ production ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์•ฑ์„ ๋งŒ๋“ค๊ธฐ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” index.html ํŒŒ์ผ์—์„œ์˜ ๊ณต๋ฐฑ๊ณผ ๊ฐ™์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๋Š” ์ •๋ณด๋ฅผ ์‹น ์—†์•ค๋‹ค.

src ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ create-react-app์ด ์šฉ๋Ÿ‰์„ ์ค„์ธ๋‹ค๋˜๊ฐ€, ๋ณด์•ˆ์ ์œผ๋กœ ์ข‹์ง€์•Š์€ ๊ฒƒ๋“ค์„ ์—†์• ๋Š” ์ž‘์—…์„ ํ•œ ๋’ค index.html ํŒŒ์ผ์ด ๊ทธ๊ฒƒ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์šฐ๋ฆฌ ๋Œ€์‹  ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

 

์š”์•ฝ:

์‹ค์ œ๋กœ ์„œ๋น„์Šคํ•  ๋•Œ๋Š” build ์•ˆ์˜ ํŒŒ์ผ์„ ์จ์•ผํ•œ๋‹ค.

์›น ์„œ๋ฒ„์˜ document root ์ฆ‰, ์›น ์„œ๋ฒ„๊ฐ€ ๋ฌธ์„œ๋ฅผ ์ฐพ๋Š” ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋‹ค๊ฐ€ build ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ ์ชฝ์˜ ํŒŒ์ผ๋“ค์„ ์œ„์น˜์‹œํ‚ค๋ฉด ๋œ๋‹ค. => ์‹ค์„œ๋ฒ„ ํ™˜๊ฒฝ ์™„์„ฑ!

 

 

npm run build ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์•ˆ๋‚ด๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ

serve -s build ๊ฐ€ ๋ฌด์—‡์ด๋ƒ?

serve๋ผ๊ณ  ํ•˜๋Š” npm์„ ํ†ตํ•ด์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์›น ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค.

 

npm install -g server 

์ด ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด ์ปดํ“จํ„ฐ ์–ด๋””์—์„œ๋‚˜ serve๋ผ๋Š” ๋ช…๋ น์–ด๋กœ ์›น ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค

npx serve

ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰์‹œํ‚ฌ ์›น ์„œ๋ฒ„๋ฅผ ๋‹ค์šด๋ฐ›์•„ ์‹คํ–‰

npx serve -s build

serve๋ผ๋Š” ์›น์„œ๋ฒ„๋ฅผ ๋‹ค์šด๋ฐ›์•„์„œ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ build๋ผ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ(์ด์ „์— npm run build๋กœ ์ƒ์„ฑ)๋ฅผ document root ๋กœ ํ•˜๊ฒ ๋‹ค(-s)

 

 

npx serve -s build ๋ฅผ ์น˜๊ณ  ์—”ํ„ฐ!

http://localhost:5000 ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋œ๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ํ•ด์„œ ๋‹ค์‹œ reload๋ฅผ ํ•ด๋ณด๋ฉด 1.7MB์˜€๋˜ ์šฉ๋Ÿ‰์ด 147kB๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ฐœ๋ฐœํ™˜๊ฒฝ์˜ ์•ฑ์€ ๋™์ž‘ํ•˜๋Š” ๋ชจ์Šต์€ ๋˜‘๊ฐ™์ง€๋งŒ ๋ฌด๊ฒ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.