프론트엔드 개발 · 중급
Sass나 Less와 같은 CSS 전처리기(CSS Preprocessors)를 사용하는 주된 이점은 무엇이며, 실제 프로젝트에서 어떤 기능(예: 변수, 믹스인, 중첩 등)들을 활용하여 CSS 개발의 효율성과 유지보수성을 높일 수 있는지 설명해주세요.
힌트 · CSS의 반복적인 작업을 줄이고 구조화된 코드를 작성할 수 있게 해주는 변수, 믹스인(mixin), 중첩(nesting), 상속(extend) 등의 기능을 중심으로 설명하세요.
변수믹스인중첩유지보수성재사용성
모범답안
CSS 전처리기를 사용하는 주된 이점은 CSS 코드의 재사용성과 유지보수성을 극대화할 수 있다는 점입니다.
실제 프로젝트에서는 변수를 활용하여 색상, 폰트 사이즈 등 자주 사용되는 값을 한 곳에서 관리하여 일관성을 유지하고 수정이 용이하게 합니다. 믹스인을 사용하면 반복되는 CSS 속성들을 묶어 재사용할 수 있어 코드 중복을 줄이고 생산성을 높입니다. 예를 들어, 그림자 효과나 테두리 반경과 같은 속성을 믹스인으로 만들어 여러 요소에 쉽게 적용할 수 있습니다.
중첩 기능을 사용하면 HTML 구조를 반영하여 CSS 코드를 계층적으로 작성할 수 있어 가독성을 높이고 스타일 규칙을 더 명확하게 표현할 수 있습니다. 이러한 기능들을 통해 CSS 개발 효율성을 높이고, 코드 유지보수성을 향상시킬 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 HTML / CSS 면접 질문
- CSS `position` 속성 중 `static`이 아닌 다른 값을 가질 때 형성되는 포지셔닝 컨텍스트(Positioning Context)에 대해 설명하고, `z-index` 속성이 이 컨텍스트 내에서 어떻게 동작하는지 구체적인 예시와 함께 설명해주세요.
- CSS 가상 클래스(Pseudo-classes)와 가상 요소(Pseudo-elements)의 차이점을 설명하고, 각각을 실제 웹 개발에서 어떤 목적으로 활용할 수 있는지 2가지 이상의 구체적인 예시를 들어 설명해주세요.
- 반응형 웹 디자인(Responsive Web Design)을 구현하기 위한 핵심적인 CSS 기술들을 설명하고, 특히 `viewport` 메타 태그와 미디어 쿼리(Media Queries)를 활용하여 다양한 디바이스와 화면 크기에 대응하는 전략을 구체적으로 설명해주세요.
- 대규모 웹 애플리케이션에서 CSS를 효과적으로 관리하고 확장하기 위한 아키텍처 패턴(예: BEM, SMACSS, OOCSS) 중 하나를 선택하여 설명하고, 해당 패턴을 실제 프로젝트에 적용했을 때의 장점과 한계점을 구체적인 사례와 함께 논해주세요.
- 웹 페이지 로딩 성능 최적화를 위해 Critical CSS를 추출하고 인라인하는 기법에 대해 설명하고, 이 과정에서 발생할 수 있는 잠재적인 문제점(예: FOUC, 캐싱 문제)과 해결 방안을 논해주세요.
- 복잡한 동적 웹 UI 컴포넌트(예: 커스텀 드롭다운, 탭 메뉴, 모달 다이얼로그)를 HTML과 CSS만으로 구현할 때, WAI-ARIA 속성을 사용하여 웹 접근성을 어떻게 보장할 수 있는지 구체적인 속성(예: role, aria-expanded, aria-labelledby)과 그 활용 사례를 들어 설명해주세요.