학습
CSS 모듈화된 CSS 패턴
CSS 모듈화된 CSS 패턴 — 고급
모듈화된 CSS 패턴
1. 도입 (왜 배워야 하는가)
모듈화된 CSS 패턴은 현대 웹 개발에서 매우 중요한 개념입니다. 팀 프로젝트나 대규모 애플리케이션을 개발할 때, CSS가 커지면서 관리가 어려워지는 문제를 해결해 줍니다. 모듈화된 접근법을 사용하지 않는다면, 스타일 충돌, 코드 중복, 유지보수의 어려움 등의 문제가 발생할 수 있습니다. 예를 들어, 여러 개발자가 동시에 하나의 스타일 파일을 수정할 경우, 예기치 않은 버그가 생길 수 있습니다. 이러한 문제를 예방하기 위해 모듈화된 CSS 패턴을 배우는 것이 필수적입니다.
2. 핵심 개념 설명
모듈화된 CSS는 코드의 재사용성과 유지보수성을 높이기 위해 CSS를 작은 조각으로 나누는 방법입니다. 주요 개념으로는 BEM, SMACSS, OOCSS 등이 있습니다.
| 용어 | 설명 |
|---|---|
| BEM | Block Element Modifier의 약자로, 블록, 요소, 수정자를 사용하여 CSS 클래스 명명 규칙을 정의합니다. |
| SMACSS | Scalable and Modular Architecture for CSS의 약자로, CSS를 구조화하는 방법론입니다. |
| OOCSS | Object Oriented CSS의 약자로, 스타일을 객체처럼 재사용 가능하게 만듭니다. |
이러한 개념들은 마치 Lego 블록처럼, 각각의 블록(모듈)을 조합하여 더 큰 구조물을 만드는 방식으로 이해할 수 있습니다.
3. 기본 코드 예제
BEM 방식으로 모듈화된 CSS의 기본 사용법을 살펴보겠습니다.
/ BEM 방식의 CSS 예제 /
.button {
background-color: #007bff; / 버튼 배경색 /
color: white; / 글자색 /
padding: 10px 20px; / 패딩 /
border: none; / 테두리 없애기 /
border-radius: 5px; / 모서리 둥글게 /
}
.button--primary {
background-color: #0056b3; / 기본 버튼 색상 /
}
.button--secondary {
background-color: #6c757d; / 보조 버튼 색상 /
}
/ 실행 결과는 아래와 같이 보입니다. /
.button: 기본 버튼 스타일을 정의합니다..button--primary: 기본 버튼 색상을 변경합니다..button--secondary: 보조 버튼 색상을 정의합니다.
4. 실전 활용 예제
1. 쇼핑몰에서 장바구니를 구현할 때
.cart {
display: flex; / 장바구니 아이템을 가로로 정렬 /
flex-direction: column; / 세로 방향으로 나열 /
}
.cart__item {
padding: 15px; / 아이템 패딩 /
border-bottom: 1px solid #ccc; / 아이템 간 경계선 /
}
.cart__item--highlighted {
background-color: #f8f9fa; / 강조된 아이템 배경색 /
}
2. 블로그 게시판 스타일링
.post {
margin: 20px 0; / 게시물 간 간격 /
}
.post__title {
font-size: 1.5rem; / 제목 크기 /
font-weight: bold; / 제목 두께 /
}
.post__content {
font-size: 1rem; / 본문 크기 /
}
5. 흔한 실수와 주의사항
실수 1: 클래스 이름의 일관성 부족
.red-button {
background-color: red;
}
.button--error {
background-color: red;
}
일관된 네이밍 룰을 사용하지 않으면 유지보수가 어려워집니다.
실수 2: 전역 선택자 사용
div {
color: blue;
}
.card {
color: blue;
}
전역 선택자는 예기치 않은 스타일 충돌을 유발할 수 있습니다.