@import
는 Sass에서 여러 개의 SCSS 파일을 하나의 스타일 시트로 합칠 때 사용하는 기능이다. CSS에서도 @import
가 있지만, Sass의 @import
는 빌드 타임에 파일을 병합하기 때문에 성능이 더 좋다.
@import "파일명";
.scss
)는 생략 가능_
(언더스코어)로 시작하는 파일은 컴파일 시 단독 CSS 파일로 변환되지 않음/styles
├── _variables.scss
├── _mixins.scss
├── main.scss
$primary-color: #3498db;
$secondary-color: #2ecc71;
@mixin flex-center {
display: flex;
justify-content: center;
align-items: center;
}
@import "variables";
@import "mixins";
body {
background-color: $primary-color;
}
.container {
@include flex-center;
height: 100vh;
}
Sass에서는 @import
를 오래 사용했지만, 몇 가지 단점이 있어서 Sass v1.32.0부터 @use
가 권장된다.
@use "파일명";
@use
는 파일을 모듈화하여 사용@use "파일명" as *;
를 사용하면 네임스페이스 없이도 사용 가능$primary-color: #3498db;
$secondary-color: #2ecc71;
@import "variables";
body {
background-color: $primary-color; // 변수 직접 사용 가능 (전역)
}
@use "variables";
body {
background-color: variables.$primary-color; // 네임스페이스 필요
}
@use "variables" as *;
body {
background-color: $primary-color; // @import처럼 사용 가능
}
비교 항목 | @import | @use |
---|---|---|
네임스페이스 | 없음 (전역 변수 사용) | 기본적으로 네임스페이스 적용 |
중복 로딩 | 동일한 파일이 여러 번 로드될 수 있음 | 한 번만 로드됨 |
모듈화 | 부족 | 강력한 모듈화 지원 |
최신 권장 여부 | ❌ 비권장 (Legacy) | ✅ 권장 (Modern) |
@import
는 오래된 방식이며, 유지보수성이 떨어짐 ❌@use
를 사용하면 네임스페이스로 충돌 방지하고, 모듈화 가능 ✅@use
사용하는 것이 좋음