패스잇
프론트엔드 개발 · 심화

대규모 웹 애플리케이션에서 CSS를 효과적으로 관리하고 확장하기 위한 아키텍처 패턴(예: BEM, SMACSS, OOCSS) 중 하나를 선택하여 설명하고, 해당 패턴을 실제 프로젝트에 적용했을 때의 장점과 한계점을 구체적인 사례와 함께 논해주세요.

힌트 · 모듈화, 재사용성, 명명 규칙, 특수성 관리를 중심으로 설명하고, 학습 곡선이나 초기 설정 비용 등의 한계점을 언급하세요.

BEMCSS Modules컴포넌트 기반네이밍 컨벤션유지보수성

모범답안

음, 대규모 웹 애플리케이션에서 CSS를 효과적으로 관리하기 위해 저는 BEM (Block, Element, Modifier) 방법론을 선호합니다. BEM은 컴포넌트 기반으로 CSS를 작성하도록 유도하여 재사용성과 유지보수성을 높여줍니다.

예를 들어, "button"이라는 블록이 있다면, ".button" 클래스를 사용하고, 버튼 내의 텍스트 요소는 ".button__text"와 같이 명명합니다. 버튼의 스타일을 변경하고 싶다면 ".button--primary"와 같은 modifier를 추가할 수 있습니다.

BEM의 장점은 명확한 네이밍 컨벤션 덕분에 CSS 클래스 간의 충돌을 방지하고, 코드의 가독성을 높여 협업에 용이하다는 점입니다. 하지만 단점으로는 클래스 이름이 길어질 수 있고, 초기 학습 곡선이 존재한다는 점입니다. 그럼에도 불구하고 장기적인 유지보수 관점에서는 BEM이 효과적인 선택이라고 생각합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 HTML / CSS 면접 질문

← HTML / CSS 면접 질문 전체 보기