๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CSS

[CSS] Sass(SCSS) ์•Œ์•„๋ณด๊ธฐ

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 8. 18.
๋ฐ˜์‘ํ˜•

Sass(SCSS)๋ž€?

Sass(=SCSS)์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ์ „์— ์šฐ์„  CSS๋ถ€ํ„ฐ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค. CSS๋ž€ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒŒ ์—†์„ ์ •๋„๋กœ ์ถฉ๋ถ„ํžˆ ํ›Œ๋ฅญํ•œ ์–ธ์–ด์ด๊ธด ํ•˜๋‚˜ ์น˜๋ช…์  ๋‹จ์  ๋˜ํ•œ ์กด์žฌํ•œ๋‹ค. CSS๋Š” ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ๋งค์šฐ ๋ถˆ๋ฆฌํ•˜๋‹ค.
Sass๋Š” ์ด๋Ÿฌํ•œ CSS์˜ ์น˜๋ช…์  ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ CSS ํ™•์žฅ ์–ธ์–ด์ด๋ฉฐ, CSS์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค๋„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Sass(SCSS)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

Sass(SCSS)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ยท ๊ฐ€๋…์„ฑ : CSS๋ณด๋‹ค ๊ฐ„๋‹จ๋ช…๋ฃŒํ•œ ๋ฌธ๋ฒ•์œผ๋กœ CSS๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ํ‘œํ˜„ ๊ฐ€๋Šฅ
ยท ํ˜ธํ™˜์„ฑ : ๋ชจ๋“  ๋ฒ„์ „์˜ CSS์™€ ์™„๋ฒฝ ํ˜ธํ™˜
ยท ๊ธฐ๋Šฅ์„ฑ : ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, CSS๋ณด๋‹ค ๋ชจ๋“  ๋ฉด์—์„œ ๋›ฐ์–ด๋‚จ
ยท ์ธ์ง€๋„ : ์—…๊ณ„์—์„œ๋„ ์ธ์ •๋ฐ›์œผ๋ฉฐ ์‹ค๋ฌด์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋จ
ยท ํ™•์žฅ์„ฑ : Sass ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‹ค์ˆ˜ ์กด์žฌ
ยท ์•ˆ์ •์„ฑยท์‹ ๋ขฐ๋„ : ์˜ค๋žœ ๊ธฐ๊ฐ„๋™์•ˆ ์ ๊ทน์ ์ธ ์„œํฌํŠธ ์•„๋ž˜ ๊ด€๋ฆฌ๋˜์–ด ์˜จ ํ™•์žฅ ์–ธ์–ด

Sass์™€ SCSS์˜ ์ฐจ์ด์ 

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ Sass์™€ SCSS๋ฅผ ๋ฌถ์–ด์„œ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ์‚ฌ์‹ค Sass์™€ SCSS๋Š” ๊ฐ™์€ CSS์˜ ํŒŒ์ƒ ์–ธ์–ด์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋ฌธ๋ฒ• ์ƒ๊น€์ƒˆ๋Š” ๋‹ค๋ฅด๋‹ค. ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

/* Sass ์˜ˆ์‹œ์ฝ”๋“œ */
$font-stack: Helvetica, sans-serif
$primary-color: #333

body
  font: 100% $font-stack
  color: $primary-color

/* SCSS ์˜ˆ์‹œ์ฝ”๋“œ */
$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

์œ„์˜ ์˜ˆ์‹œ์ฝ”๋“œ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด Sass๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ์™€ ์ค„๋ฐ”๊ฟˆ ํ˜•์‹์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์กŒ์œผ๋ฉฐ CSS์—์„œ์˜ ์ค‘๊ด„ํ˜ธ์™€ ์„ธ๋ฏธ์ฝœ๋ก ์„ ์ƒ๋žตํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด, SCSS๋Š” ๊ธฐ์กด์˜ CSS์™€ ๋‹ค๋ฅผ ๋ฐ” ์—†์ด ์ค‘๊ด„ํ˜ธ์™€ ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

SCSS๋Š” Sass์˜ 3 ๋ฒ„์ „์—์„œ๋ถ€ํ„ฐ ๋“ฑ์žฅํ•œ ์–ธ์–ด๋กœ ๊ธฐ์กด Sass์˜ ๋ฌธ๋ฒ• ๋ฐฉ์‹์ด CSS์™€ ์ƒ์ดํ•˜์—ฌ ๋ถˆํŽธํ•˜๊ณ  ์ต์ˆ™์น˜ ์•Š์„ ํผ๋ธ”๋ฆฌ์…”๋“ค์—๊ฒŒ ์นœ๊ทผํ•˜๊ณ  ์ต์ˆ™ํ•œ CSS์™€ ๋น„์Šทํ•œ ๊ตฌ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ๋“ฑ์žฅํ•˜์˜€๋‹ค.
Sass ๊ณต์‹ ๋ ˆํผ๋Ÿฐ์Šค์กฐ์ฐจ๋„ Sass๋ณด๋‹ค CSS์™€ ๋” ๋น„์Šทํ•œ SCSS๋ฅผ ์„ ํ˜ธํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž ์ˆ˜๋„ SCSS ์ชฝ์ด ์••๋„์ ์œผ๋กœ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— SCSS๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.



CSS์—๋Š” ์—†๊ณ  Sass(SCSS)์—๋งŒ ์žˆ๋Š” ๊ธฐ๋Šฅ

CSS์—๋Š” ์—†์ง€๋งŒ Sass(SCSS)์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

๋ณ€์ˆ˜(SCSS Variables)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์ฒ˜๋Ÿผ ์žฌ์‚ฌ์šฉํ•˜๋ ค๋Š” ์†์„ฑ ์ •๋ณด๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.
์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ $ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

/* CSS */
/* ์žฌ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ. ์ผ์ผ์ด ์ˆ˜์ž‘์—… ํ•ด์ค˜์•ผ ํ•จ. */
body {
    font: 100% Helvetica, sans-serif;
    color: #333;
}

/* SCSS */
/* ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์†์„ฑ์„ ์ €์žฅํ•ด์„œ ์–ธ์ œ๋“ ์ง€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ. */
$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.