Share
Sign In
๐Ÿ“„

๐Ÿšจ Amplify๋กœ ๋ฐฐํฌ์‹œ, Vendor prefix CDN - styled component ์˜ค๋ฅ˜

์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ฅผ ๊ฐ–๋Š”๋‹ค.
๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ž€ ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.
<style> .button { background: red; <!-- gradient ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ --> background: -webkit-linear-gradient(red, yellow); <!-- ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ 4.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ -->0 background: -moz-linear-gradient(red, yellow); <!-- ํŒŒ์ด์–ดํญ์Šค 3.6 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -ms-linear-gradient(red, yellow); <!-- ์ต์Šคํ”Œ๋กœ๋Ÿฌ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: -o-linear-gradient(red, yellow); <!-- ์˜คํŽ˜๋ผ 10.0 ์ด์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ --> background: linear-gradient(red, yellow); <!-- CSS ํ‘œ์ค€ ๋ฌธ๋ฒ• ์ฝ”๋“œ --> } </style>
์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์— ๋งž์ถ”์–ด ์ ‘๋‘์–ด๋ฅผ ๊ธฐ์žฌํ•˜์ง€ ์•Š๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ชจ์•„๋†“์€ CDN์ด ์กด์žฌํ•œ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ
Vendor prefix CDN์ด๋‹ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
์ด๊ฒƒ์ด React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ localhost์™€ build๋ฅผ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ด์ƒ์ด ์—†์ง€๋งŒ,
build ํ›„ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์• ์จ ์ž‘์„ฑํ•œ styled-conponents ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค.
.css๋ฅผ ๋ฐ”๋กœ importํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ด๋ผ๋ฉด Vendor prefix CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
React ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
React.js
๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ