ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐ŸŒˆ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(Vendor Prefix)

์›น ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ์–ด๋–ค ํƒœ๊ทธ์˜ styles์— display: webkit-box ๋˜๋Š” display: ms-flexbox๋“ฑ์ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
์ด๋Š” ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค(vendor prefix)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ž€, ์ต์Šคํ”Œ๋กœ๋Ÿฌ, ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ, ์˜คํŽ˜๋ผ ๋“ฑ์˜ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ด๋ฅผ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ ‘๋‘์‚ฌ(prefix) ์ด๋‹ค.
CSS ๊ถŒ๊ณ ์•ˆ์— ํฌํ•จ ์•ˆ๋œ ๊ธฐ๋Šฅ์ด๋‚˜ CSS ๊ถŒ๊ณ ์•ˆ์—๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์ •๋œ ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ํ‘œ์ค€ ๊ธฐ์ˆ ์ด ๋™์ž‘ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ํ•ด๋‹น ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” style์ด ์ ์šฉ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ €๋“ค์˜ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ie : -ms-
  • chrome, safari : -webkit-
  • firefox : -moz-
  • opera : -o-

๐Ÿ’ป Autoprefixer ์„ค์น˜

์ด๋Ÿฌํ•œ ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๊ฐ๊ฐ์˜ ์†์„ฑ์— ๋ชจ๋‘ ์™ธ์›Œ์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†๋‹ค.
๋”ฐ๋ผ์„œ ์ž๋™์œผ๋กœ ๋ถ™์—ฌ์ฃผ๋Š” ํŒจํ‚ค์ง€ Autoprefixer ๋ฅผ ์„ค์น˜ํ•˜์ž.

1. ํ„ฐ๋ฏธ๋„์— npm i -D postcss autoprefixer ์ž…๋ ฅ

2. package.jsonํŒŒ์ผ์— ๋‹ค์Œ ๋ถ€๋ถ„์„ ์ถ”๊ฐ€

"browserslist": [
      "> 1%".
      "last 2 versions"
      ] 

์ด๋Š” ์ „ ์„ธ๊ณ„ ์ ์œ ์œจ์ด 1% ์ด์ƒ์ธ ๋ธŒ๋ผ์šฐ์ €์˜ ๋งˆ์ง€๋ง‰ ๋‘ ๊ฐœ์˜ ๋ฒ„์ „๊นŒ์ง€๋Š” ์ง€์›ํ•œ๋‹ค ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

3. ๋ฃจํŠธ ๊ฒฝ๋กœ์— .postcssrc.js ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ๋‹ค์Œ์„ ์ž…๋ ฅ ํ›„ ์ €์žฅ

module.exports = {
      plugins: [
          require('autoprefixer')
      ]    
  }

node.js์—์„œ๋Š” ESM์ด ์•„๋‹Œ CommonJS๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— import ๋Œ€์‹ ์— require, export ๋Œ€์‹ ์— module.exports๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

4. ํ„ฐ๋ฏธ๋„์—์„œ npm run dev ์ž…๋ ฅ

์—ฌ๊ธฐ์„œ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋ฉด package.json์—์„œ postcss์˜ ๋ฒ„์ „๊ณผ autoprefixer์˜ ๋ฒ„์ „์ด ์ถฉ๋Œ๋๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋”ฐ๋ผ์„œ ํ„ฐ๋ฏธ๋„์—์„œ npm i -D autoprefixer@9 ๋ฅผ ์ž…๋ ฅํ•ด autoprefixer๋ฅผ 9๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์„ค์น˜ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ๋„ autoprefixer๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด package.jsonํŒŒ์ผ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ €์žฅํ•˜์ž.

"postcss": {
    		"plugins": {
      			"autoprefixer": {}
    		}
}
๋Œ“๊ธ€