@use, @forward 기본 이해 - by. UXKM

  • Publishing
  • SCSS
  • 파일 분리와 SCSS 구조 설계
  • @use, @forward 기본 이해
요약 설명

@use@forward는 SCSS의 모듈 시스템에서 파일을 불러오고 전달하는 기능입니다.
@use는 파일을 불러와서 사용하고, @forward는 파일을 다른 곳에서 사용할 수 있게 전달합니다.

이 페이지에서는 @use의 기본 문법, 네임스페이스, as 키워드, @forward의 개념과 사용법, @use@forward의 차이, 그리고 실제 사용 예시를 상세히 알아봅니다.

@use 기본 이해

@use파셜 파일을 불러와서 사용하는 기능입니다.
네임스페이스, as 키워드, 네임스페이스 제거 등 기본 문법을 이해해 두면, @import 대신 @use를 사용하는 이유와 모듈 시스템의 장점을 실무에서 바로 활용할 수 있습니다.

@use의 기본 개념

@use"이 파일을 사용하겠다"는 의미입니다.
다른 파일에서 정의한 변수, 믹스인, 함수를 가져와서 사용할 수 있습니다.

@use "variables"_variables.scss 파일을 불러와서 사용한다는 의미입니다.

기본 문법

@use의 기본 문법은 다음과 같습니다.

언더스코어(_)와 확장자(.scss)는 생략할 수 있습니다.

네임스페이스 사용

@use로 불러온 변수나 믹스인은 네임스페이스(파일명)를 붙여서 사용해야 합니다.

네임스페이스를 사용하면 어떤 파일에서 온 변수인지 명확하고, 변수 이름 충돌을 방지할 수 있습니다.

as 키워드로 네임스페이스 변경

as 키워드를 사용하여 네임스페이스를 변경할 수 있습니다.

긴 파일명을 짧은 네임스페이스로 변경하여 사용할 수 있습니다.

네임스페이스 제거

as *를(을) 사용하여 네임스페이스를 제거할 수 있습니다.

네임스페이스를 제거하면 @import처럼 사용할 수 있지만, 변수 이름 충돌 위험이 있으므로 주의가 필요합니다.

@forward 기본 이해

@forward파일을 다른 곳에서 사용할 수 있게 전달하는 기능입니다.
여러 파셜을 하나의 모듈로 묶어서 전달할 때 사용하므로, 변수·믹스인을 카테고리별로 그룹화하거나 라이브러리처럼 제공할 때 특히 유용합니다.

@forward의 기본 개념

@forward"이 파일의 내용을 다른 곳에서도 사용할 수 있게 전달한다"는 의미입니다.
중간 파일에서 여러 파셜을 모아서 하나의 모듈로 만들 때 사용합니다.

_variables.scss_colors.scss_spacing.scss전달하여, main.scss에서는 variables 하나만 불러와도 두 파일의 내용을 모두 사용할 수 있습니다.

@forward의 기본 문법

@forward의 기본 문법은 @use와 동일합니다.

@use와 @forward의 차이

@use@forward차이점을 명확히 이해하는 것이 중요합니다.
@use는 현재 파일에서 직접 사용하고, @forward는 다른 파일에서 사용할 수 있게 전달하는데, 이 차이를 이해하면 모듈 구조를 설계할 때 어떤 것을 선택할지 명확하게 판단할 수 있습니다.

@use: 사용

@use파일을 불러와서 현재 파일에서 사용합니다.

@use현재 파일에서만 사용할 수 있게 합니다.

@forward: 전달

@forward파일을 다른 곳에서 사용할 수 있게 전달합니다.

@forward다른 파일에서도 사용할 수 있게 전달합니다.

차이점 비교

두 기능의 차이를 표로 비교해봅니다.

  • 구분
  • @use
  • @forward
  • 의미

    사용

    전달

  • 사용 범위

    현재 파일에서만 사용

    다른 파일에서도 사용 가능

  • 용도

    파일을 불러와서 직접 사용

    여러 파일을 묶어서 전달

  • 사용 예시

    main.scss에서 variables 사용

    _variables.scss에서 colors, spacing 전달

@use와 @forward 함께 사용

@use@forward같은 파일에서 함께 사용할 수 있습니다.
@forward로 다른 파일에 전달하면서, @use로 현재 파일에서도 사용하는 예시입니다.

  1. 색상 변수 파일 생성
  2. 변수 파일에서 @forward와 @use 함께 사용

    @forward로 colors를 전달하고, @use로 현재 파일에서도 사용합니다.

  3. 메인 파일에서 variables를 통해 colors 사용

    variables를 통해 colors의 변수를 사용할 수 있습니다.

이렇게 하면 _variables.scss에서 colors의 변수를 사용하면서, 동시에 다른 파일에서도 variables를 통해 colors의 변수에 접근할 수 있습니다.

실제 활용 예시

@use@forward실제 프로젝트에서 활용하는 예시를 살펴봅니다.

변수 모듈 구성

여러 변수 파일을 하나의 모듈로 묶어서 사용하는 예시입니다.

이렇게 하면 여러 변수 파일을 하나의 모듈로 묶어서 관리할 수 있습니다.

컴포넌트 모듈 구성

여러 컴포넌트 파일을 하나의 모듈로 묶어서 사용하는 예시입니다.

@forward의 고급 기능

show와 hide

showhide를 사용하여 특정 항목만 전달하거나 제외할 수 있습니다.
show지정한 항목만 전달하고, hide지정한 항목을 제외하여 나머지를 전달합니다.

이렇게 하면 내부용 변수나 믹스인을 숨기고, 공개할 항목만 전달할 수 있습니다.

as 키워드로 네임스페이스 변경

@forward에서도 as 키워드를 사용할 수 있습니다.

@use@forward 사용 가이드

@use@forward언제 어떻게 사용할지 가이드라인을 제시합니다.

@use를 사용하는 경우

다음과 같은 경우에는 @use를 사용합니다:

  • 직접 사용: 파일을 불러와서 현재 파일에서 직접 사용할 때
  • 메인 파일: main.scss 같은 메인 파일에서 파셜을 불러올 때
  • 컴포넌트 파일: 컴포넌트 파일에서 변수나 믹스인을 사용할 때

@forward를 사용하는 경우

다음과 같은 경우에는 @forward를 사용합니다:

  • 모듈 구성: 여러 파일을 하나의 모듈로 묶을 때
  • 중간 파일: 중간 파일에서 여러 파셜을 전달할 때
  • 라이브러리 구성: 라이브러리처럼 여러 파일을 묶어서 제공할 때

정리

@use, @forward 기본 이해에 대해 알아본 내용을 정리합니다.

  • @use 기본 개념: 파일을 불러와서 사용하는 기능
  • 네임스페이스: 파일명을 네임스페이스로 사용하여 변수 이름 충돌 방지
  • as 키워드: 네임스페이스 변경 또는 제거 (as *, as 별명)
  • @forward 기본 개념: 파일을 다른 곳에서 사용할 수 있게 전달하는 기능
  • @use vs @forward: @use는 사용, @forward는 전달
  • 함께 사용: 같은 파일에서 @use@forward를 함께 사용 가능
  • 고급 기능: show, hide, as 키워드로 세밀한 제어 가능
  • 사용 가이드: 직접 사용은 @use, 모듈 구성은 @forward

다음 페이지에서는 기본적인 SCSS 폴더 구조 예시를 자세히 알아봅니다.