Skip to content

๐Ÿค” ์Šคํƒ€์ผ ์„ ํƒ์ด์œ  (Emotion)

Hyerin edited this page Jul 11, 2024 · 2 revisions

๐Ÿค” ์™œ Emotion ์ธ๊ฐ€?

  • ์ƒˆ๋กœ์šด css ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ฐ๊ธฐ ๋ณด๋‹ค๋Š”, ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋Ÿฌ๋‹์ปค๋ธŒ๋ฅผ ์ค„์ด๊ณ ์ž ํ•จ
  • styled-component์™€ emotion ์•ˆ์—์„œ ์„ ํƒํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

1. ๋†’์€ ๋‹ค์šด๋กœ๋“œ ์ˆ˜

2022๋…„ ๊ธฐ์ค€์œผ๋กœ, @emotion/core์™€ @emotion/react์˜ ๋‹ค์šด๋กœ๋“œ ์ˆ˜๋ฅผ ํ•ฉ์น˜๋ฉด styled-components๋ณด๋‹ค ์•ฝ 2๋ฐฐ ๋” ๋งŽ์€ ๋‹ค์šด๋กœ๋“œ ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ๋‹ค. Emotion์˜ ์ธ๊ธฐ๋„์™€ ์‹ ๋ขฐ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค .

2. TypeScript ์ง€์›

Emotion์€ ์ž์ฒด์ ์œผ๋กœ TypeScript๋ฅผ ์ง€์›ํ•˜์—ฌ, ์ถ”๊ฐ€์ ์ธ ๋ชจ๋“ˆ ์„ค์น˜ ์—†์ด๋„ TypeScript์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

3. CSS ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง

Emotion์€ styled-components์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ CSS ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด CSS์™€ JavaScript ์ฝ”๋“œ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

4.๊ฒฝ๋Ÿ‰์„ฑ

Emotion์€ styled-components๋ณด๋‹ค ๋” ๊ฐ€๋ฒผ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

5.ํšจ์œจ์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ

Emotion์€ ์ „๊ฐœ ์—ฐ์‚ฐ์ž, composition, CSS ๋ณ€์ˆ˜ ๋ฌธ๋ฒ• ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ CSS ์ฝ”๋“œ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž์˜ ํŽธ์˜์„ฑ์„ ๋†’์ด๊ณ , ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

6.๋ฐ”๋ฒจ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ง€์›

Emotion์€ @emotion/babel-plugin์„ ์ œ๊ณตํ•˜์—ฌ, ์ž๋™์œผ๋กœ ๋ผ๋ฒจ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์ด๋Š” ์ˆ˜๋™์œผ๋กœ ๋ผ๋ฒจ์„ ์ง€์ •ํ•  ํ•„์š”๋ฅผ ์—†์• ์ฃผ์–ด, ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๋‹จ์ˆœํ™”ํ•œ๋‹ค.

Clone this wiki locally