프론트엔드 개발 · 중급
Flexbox와 CSS Grid는 모두 레이아웃을 구성하는 강력한 도구입니다. 두 기술의 주요 차이점은 무엇이며, 각각 어떤 상황에서 더 적합하게 사용될 수 있는지 구체적인 사용 사례를 들어 설명해주세요.
힌트 · Flexbox는 주로 1차원(행 또는 열) 레이아웃에, CSS Grid는 2차원(행과 열 동시) 레이아웃에 적합하다는 점을 강조하고, 각각의 유스케이스를 제시하세요.
1차원 레이아웃2차원 레이아웃콘텐츠 중심레이아웃 중심정렬
모범답안
Flexbox와 CSS Grid는 모두 CSS 레이아웃을 구성하는 강력한 도구이지만, 주요 차이점은 차원입니다. Flexbox는 주로 1차원 레이아웃, 즉 행 또는 열을 기준으로 콘텐츠를 정렬하는 데 최적화되어 있습니다. 반면 CSS Grid는 2차원 레이아웃, 즉 행과 열을 동시에 제어하여 복잡한 격자 구조를 만들 때 유용합니다.
예를 들어, 간단한 네비게이션 바를 만들 때는 Flexbox가 적합합니다. 항목들을 가로로 정렬하고 간격을 균등하게 배치하는 데 효과적이죠. 반면, 웹사이트 전체 레이아웃이나 복잡한 대시보드 UI를 만들 때는 CSS Grid가 더 적합합니다. 행과 열을 명확하게 정의하고 각 영역에 콘텐츠를 배치하는 데 훨씬 강력한 기능을 제공합니다. Flexbox는 콘텐츠 중심, Grid는 레이아웃 중심이라고 생각하면 이해하기 쉽습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 HTML / CSS 면접 질문
- CSS에서 'display' 속성의 주요 값들(block, inline, inline-block, none)에 대해 설명하고, 각각의 특징을 비교해주세요.
- CSS에서 선택자의 명시도(Specificity)는 어떻게 계산되며, 이를 효과적으로 관리하여 스타일 충돌을 피하고 원하는 스타일을 적용하는 방법은 무엇인가요? `!important`의 사용은 언제 권장되며, 어떤 부작용이 있을 수 있나요?
- CSS 박스 모델(Box Model)에서 `content-box`와 `border-box`의 차이점을 설명하고, 실제 웹 개발에서 `box-sizing` 속성을 어떻게 활용하여 레이아웃 문제를 해결할 수 있는지 구체적인 예를 들어 설명해주세요.
- CSS `position` 속성 중 `static`이 아닌 다른 값을 가질 때 형성되는 포지셔닝 컨텍스트(Positioning Context)에 대해 설명하고, `z-index` 속성이 이 컨텍스트 내에서 어떻게 동작하는지 구체적인 예시와 함께 설명해주세요.
- CSS 가상 클래스(Pseudo-classes)와 가상 요소(Pseudo-elements)의 차이점을 설명하고, 각각을 실제 웹 개발에서 어떤 목적으로 활용할 수 있는지 2가지 이상의 구체적인 예시를 들어 설명해주세요.
- 반응형 웹 디자인(Responsive Web Design)을 구현하기 위한 핵심적인 CSS 기술들을 설명하고, 특히 `viewport` 메타 태그와 미디어 쿼리(Media Queries)를 활용하여 다양한 디바이스와 화면 크기에 대응하는 전략을 구체적으로 설명해주세요.