210911 ๊ฐœ๋ฐœ๊ธฐ๋ก: React ์—์„œ (๋™์ ์œผ๋กœ) ์ด๋ฏธ์ง€ ์‚ฌ์šฉํ•˜๊ธฐ

2021. 9. 13. 07:27ใ†๐Ÿ“” TIL

๋ฆฌ์•กํŠธ์—์„œ '์ •์ '์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋ ต์ง€ ์•Š๋‹ค.

์—ฌ๊ธฐ์„œ '์ •์ '์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œ ํ•œ๋‹ค๋Š” ๊ฒƒ์€, ๋žœ๋”ฉํŽ˜์ด์ง€์˜ ๊ณ ์ •๋œ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๋”ฑํžˆ ๋ณ€๊ฒฝ๋  ํ•„์š”๊ฐ€ ์—†๋Š” (์ •์ ์ธ) ์ด๋ฏธ์ง€๋ฅผ ๋œปํ•œ๋‹ค.

 

์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€๋ฅผ import ํ•œ ํ›„, ํ•ด๋‹น ๋ณ€์ˆ˜(poster) ๋ฅผ img ํƒœ๊ทธ์˜ src์— ๋„ฃ์–ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

์ด๋ฏธ ๊ฒฝ๋กœ๋ฅผ from ์—์„œ ์„ ์–ธํ–ˆ์œผ๋‹ˆ ๊ตณ์ด src prop ์— ๊ฒฝ๋กœ๋ฅผ ๋‹ค์‹œ ์“ธ ํ•„์š”์—†์ด ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

import poster from "../images/์Šฌ์˜.png"

...
<img id="poster" src={poster} alt="์Šฌ์˜"/>
...

 

๐ŸŽ  React ์—์„œ (๋™์ ์œผ๋กœ) ์ด๋ฏธ์ง€ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ• (require(...).default)

๋™์ ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•  ๊ฒฝ์šฐ, ์ด ๋ฐฉ๋ฒ•์€ ๊ทธ๋‹ค์ง€ ์ข‹์ง€ ์•Š๋‹ค.

๋งŒ์•ฝ ์ƒํ™ฉ์— ๋”ฐ๋ผ 10๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•ด์•ผํ•œ๋‹ค๋ฉด, poster ์ด๋ฏธ์ง€๋ฅผ import ํ–ˆ๋“ฏ์ด 10๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ import ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์šฐ์„  ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ  require()์˜ ์ธ์ž๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์žŠ์ง€ ์•Š๊ณ  .default ๋ฅผ require() ํ•จ์ˆ˜์— ๋ถ™์—ฌ์ค€๋‹ค.

 <img
	src={require(`../images/${imageName}.png`).default}
	alt={imageName}
/>

 

์ด ๋ฐฉ๋ฒ•์€ ๋ณ„๋„๋กœ ์ด๋ฏธ์ง€๋ฅผ import ํ•  ํ•„์š”์—†์ด ๊ณง๋ฐ”๋กœ img ํƒœ๊ทธ์˜ src์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

require() ์™€ default ํ•จ์ˆ˜ ์—†์ด ๊ฒฝ๋กœ๋งŒ์„ ๋ฐฑํ‹ฑ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, '์—‘๋ฐ•' ์ด ๋œจ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

default ์—†์ด require() ๋งŒ ์‚ฌ์šฉํ•ด๋„ ์—‘๋ฐ•์ด ๋œจ๋Š”๋ฐ, ์ด๋Š” require() ํ•จ์ˆ˜๊ฐ€ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ์ด object ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

.default ์„ค์ •์„ ๋ถ™์—ฌ์ฃผ๋ฉด ์ด๋ฏธ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์™€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.