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

SCSS

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

이 기술은 무엇인가요?

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

SCSS(Sassy CSS)는 CSS의 상위 집합 문법으로, 변수·함수·조건문·반복문 등을 지원하여 스타일시트를 프로그래밍 방식으로 작성할 수 있게 합니다. 대규모 프로젝트에서 CSS 코드의 중복을 줄이고 유지보수성을 높이기 위해 만들어졌습니다. 작성한 SCSS 파일은 컴파일 과정을 거쳐 브라우저가 이해할 수 있는 표준 CSS로 변환됩니다.

이럴 때 사용합니다

  • 컴포넌트별 스타일을 모듈화하고 테마 변수를 중앙에서 관리해야 할 때
  • 반복되는 스타일 패턴을 믹스인으로 추상화해 코드 중복을 줄이고 싶을 때
  • 중첩 문법으로 HTML 구조에 대응하는 가독성 높은 스타일시트를 작성하려 할 때
  • 디자인 시스템의 색상·간격·타이포그래피를 변수와 함수로 체계화하려 할 때

핵심 개념

Variable
$ 기호로 시작하는 변수를 선언해 색상·크기·폰트 등을 재사용할 수 있습니다. 전역 테마 값을 한곳에서 관리할 때 유용합니다.
Nesting
선택자를 중첩해서 작성할 수 있어 HTML 구조를 반영한 스타일 계층을 표현합니다. & 기호로 부모 선택자를 참조할 수 있습니다.
Mixin
@mixin으로 스타일 블록을 정의하고 @include로 재사용합니다. 매개변수를 받아 동적인 스타일 조합을 만들 수 있습니다.
Partial & Import
파일명 앞에 _를 붙인 partial 파일로 스타일을 분할하고, @import나 @use로 불러와 모듈화된 구조를 만듭니다.
Function
@function으로 값을 계산해 반환하는 함수를 정의합니다. 색상 조작, 단위 변환 등 계산 로직을 캡슐화할 때 사용합니다.

변수, 중첩, 믹스인 기본 예시

변수로 테마 값을 정의하고, 믹스인으로 공통 레이아웃을 재사용하며, BEM 네이밍을 중첩 문법으로 표현한 예시입니다.

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

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

// 중첩 & 사용
.card {
  background: white;
  border-radius: $border-radius;

  &__header {
    @include flex-center;
    color: $primary-color;
  }

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

처음 쓸 때 흔한 함정

  • 중첩을 과도하게 깊게 쓰면 CSS 특정도가 높아져 오히려 유지보수가 어려워집니다
  • @import는 deprecated되었으므로 새 프로젝트에서는 @use와 @forward를 사용해야 합니다
  • 믹스인과 함수를 혼동하기 쉬운데, 믹스인은 스타일 블록을, 함수는 값을 반환합니다

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

프로젝트별 활용 방식

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

함께 사용한 기술

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