정지용
기술스택 목록
프론트엔드

SASS

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

CSS에 변수, 중첩, 믹스인 등 프로그래밍 기능을 추가한 CSS 전처리기

SASS(Syntactically Awesome Style Sheets)는 CSS를 작성하기 위한 전처리기 언어입니다. 변수, 중첩 규칙, 믹스인, 함수 등 프로그래밍 언어의 기능을 제공하여 스타일시트를 더 체계적이고 재사용 가능하게 작성할 수 있습니다. 작성한 SASS 코드는 컴파일 과정을 거쳐 브라우저가 이해할 수 있는 표준 CSS로 변환됩니다.

이럴 때 사용합니다

  • 대규모 프로젝트에서 스타일시트를 체계적으로 관리하고 싶을 때
  • 반복되는 스타일 패턴을 변수와 믹스인으로 재사용하고 싶을 때
  • 디자인 시스템의 색상, 타이포그래피 등을 중앙에서 관리해야 할 때
  • CSS 작성 중 조건문, 반복문 등 프로그래밍 로직이 필요할 때

핵심 개념

Variables
색상, 폰트, 간격 등 반복되는 값을 변수에 저장하고 재사용할 수 있습니다. $로 시작하는 이름으로 선언합니다.
Nesting
선택자를 중첩하여 HTML 구조를 반영한 스타일을 작성할 수 있습니다. 부모 선택자를 반복하지 않아 코드가 간결해집니다.
Mixins
재사용 가능한 스타일 블록을 정의하고 @include로 가져올 수 있습니다. 매개변수를 받아 동적으로 스타일을 생성할 수도 있습니다.
Partials
스타일시트를 여러 파일로 분리하고 @import로 합칠 수 있습니다. 파일명이 _로 시작하면 단독으로 컴파일되지 않습니다.
SCSS vs SASS
SCSS는 중괄호와 세미콜론을 사용하는 CSS 호환 문법이고, SASS는 들여쓰기 기반의 간결한 문법입니다. SCSS가 더 널리 사용됩니다.

변수와 중첩을 사용한 SCSS 예시

변수로 디자인 토큰을 정의하고, 믹스인으로 재사용 패턴을 만들며, 중첩으로 구조화된 스타일을 작성합니다. &는 부모 선택자를 참조합니다.

예시
// 변수 정의
$primary-color: #3498db;
$spacing: 16px;
$border-radius: 4px;

// 믹스인 정의
@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

// 중첩 규칙
.card {
  padding: $spacing;
  border-radius: $border-radius;
  background: white;

  .card-header {
    @include flex-center;
    color: $primary-color;
    margin-bottom: $spacing / 2;
  }

  &:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }
}

처음 쓸 때 흔한 함정

  • 중첩을 너무 깊게 하면 CSS 선택자 특이성이 높아져 유지보수가 어려워집니다
  • 변수나 믹스인을 과도하게 추상화하면 오히려 코드 가독성이 떨어질 수 있습니다
  • 컴파일 과정이 필요하므로 빌드 도구 설정이 반드시 필요합니다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.