기본 개념
@extend는 "A는 B의 한 종류" 같은 상속 관계를 표현할 때 사용합니다.
예를 들어, "에러 메시지는 메시지의 한 종류"라는 관계를 @extend로 표현할 수 있습니다.
이렇게 작성하면 의미적 상속 관계를 코드로 명확하게 표현할 수 있습니다.
요약 설명@extend는 SCSS에서 한 선택자의 스타일을 다른 선택자에 상속시킬 수 있는 기능입니다.
믹스인이 스타일을 복사하는 것과 달리, @extend는 선택자를 그룹화하여 공통 스타일을 공유합니다.이 페이지에서는 @extend의 기본 개념, 동작 원리, 선택자 그룹화 메커니즘, 컴파일 과정, 그리고 실제 사용 예시를 상세히 알아봅니다.
@extend는 SCSS에서 한 선택자의 스타일을 다른 선택자에 상속시킬 수 있는 기능입니다.
상속받은 선택자는 원본 선택자와 같은 그룹으로 묶여서 CSS에 출력되며, 이렇게 하면 CSS 파일 크기를 줄이고 의미적 상속 관계를 코드로 명확하게 표현할 수 있습니다.
@extend는 "A는 B의 한 종류" 같은 상속 관계를 표현할 때 사용합니다.
예를 들어, "에러 메시지는 메시지의 한 종류"라는 관계를 @extend로 표현할 수 있습니다.
이렇게 작성하면 의미적 상속 관계를 코드로 명확하게 표현할 수 있습니다.
@extend 뒤에 상속받을 선택자 이름을 씁니다.
@extend를 사용하면 선택자가 그룹화되어 공통 스타일을 공유합니다.
@extend가 어떻게 동작하는지 내부 메커니즘을 상세히 알아봅니다.
선택자 그룹화 과정과 컴파일 결과를 이해하면, @extend를 사용할 때 최종 CSS가 어떻게 생성되는지 예측할 수 있어 디버깅과 최적화에 도움이 됩니다.
@extend는 선택자를 그룹화하여 CSS를 최적화합니다.
여러 선택자가 같은 스타일을 공유할 때, 하나의 선택자 그룹으로 묶어서 출력합니다.
이렇게 하면 CSS 파일 크기가 줄어들고, 브라우저가 스타일을 더 효율적으로 처리할 수 있습니다.
같은 스타일을 여러 선택자에 반복해서 쓰는 대신, 하나의 선택자 그룹으로 묶어서 출력하기 때문입니다.
@extend가 컴파일 과정에서 어떻게 처리되는지 단계별로 알아봅니다.
SCSS 컴파일러는 먼저 어떤 선택자가 어떤 선택자를 상속하는지 파악합니다.
컴파일러는 상속 관계를 기반으로 선택자 그룹을 생성합니다.
각 선택자의 개별 스타일을 추가합니다.
@extend의 주요 특징들을 정리합니다.
선택자 그룹화, 의미적 상속 관계 표현, CSS 최적화 등 @extend만의 고유한 특성을 이해하면, 믹스인과의 차이를 명확히 구분하고 상황에 맞는 선택을 할 수 있습니다.
@extend의 가장 큰 특징은 선택자를 그룹화한다는 것입니다.
이렇게 하면 CSS 파일 크기가 줄어들고, 브라우저가 스타일을 더 효율적으로 처리할 수 있습니다.
@extend는 의미적 상속 관계를 코드로 표현할 수 있습니다.
이렇게 작성하면 "개는 동물이다", "고양이는 동물이다"라는 의미적 관계를 코드로 명확하게 표현할 수 있습니다.
@extend는 CSS 파일 크기를 줄이고 성능을 향상시킵니다.
@extend 사용
작음
선택자를 그룹화하여 중복 제거
믹스인 사용
큼
각 선택자마다 스타일 반복
@extend를 사용하면 같은 스타일을 여러 선택자에 반복하지 않고, 하나의 선택자 그룹으로 묶어서 출력하므로 CSS 파일이 더 작아집니다.
@extend를 실제 프로젝트에서 활용하는 예시를 살펴봅니다.
에러 메시지 시스템, 버튼 시스템처럼 여러 변형이 있지만 공통 기반을 공유하는 컴포넌트에서 @extend가 어떻게 코드 구조를 단순화하는지 확인할 수 있습니다.
여러 종류의 에러 메시지를 @extend로 체계적으로 관리하는 예시입니다.
이렇게 작성하면 모든 메시지가 공통 스타일을 공유하면서도, 각각의 고유한 스타일을 가질 수 있습니다.
여러 종류의 버튼을 @extend로 체계적으로 관리하는 예시입니다.
이렇게 작성하면 모든 버튼이 공통 스타일을 공유하면서도, 각각의 고유한 색상과 호버 효과를 가질 수 있습니다.
@extend를 사용할 때의 장점과 단점을 정리합니다.
CSS 파일 크기 감소와 성능 향상 같은 장점과 파라미터 사용 불가, 미디어 쿼리 제한 같은 단점을 비교해 보면, 프로젝트에서 @extend를 언제 도입할지 판단하는 기준이 됩니다.
@extend의 개념에 대해 알아본 내용을 정리합니다.
선택자 그룹화를 통한 CSS 최적화와 의미적 상속 관계 표현이라는 @extend의 핵심 가치를 다시 한 번 정리해 두면, 다음 단계인 믹스인과의 비교를 더 명확하게 이해할 수 있습니다.
@extend의 개념: 한 선택자의 스타일을 다른 선택자에 상속시키는 기능다음 페이지에서는 믹스인과의 차이점을 더 자세히 비교해봅니다.