[FE] Atomic Design (아토믹 디자인)
유지 보수 및 컴포넌트 재사용 최대화를 위한 디자인 시스템, Atomic Design
Atomic Design은 화학점 관점에서 영감을 얻어 모든 컴포넌트를 Atom(원자)로 구성한 뒤, 이를 바탕으로 상위 컴포넌트들을 만들어 코드의 재사용을 최대화 시킬 수 있는 방법론이다.
아토믹 디자인 이러한 개념을 차용해, Atoms(원자) < 분자(Molecules) < 유기체(Organisms) < 템플릿(Templates) < 페이지(Pages) 5가지 레벨로 나눈다.
Atom (원자)
- 더 이상 분해할 수 없는 기본 컴포넌트
- 다른 Atom과 결합하여 Molecule 혹은 Organism에서 여러 단위와 결합하여 사용
- 색, 폰트, 애니메이션 같은 추상적인 요소가 포함될 수 있다.
ex ) label, input, button과 같은 기본 HTML 컴포넌트
Molecule (분자)
- 2개 이상의 원자로 구성되어 있다.
ex ) Input Form, Navigation, Card 등
Organism (유기체)
- Mocule들을 결합해 유기체 형성
ex ) Form Item을 여러 개 조합한 SignUp Form 등
Template (템플릿)
- 여러 Organism의 집합
- Page를 만들 수 있도록 컴포넌트를 레이아웃에 배치하고 구조를 잡는 와이어 프레임
Page (페이지)
- 실제 사용자가 보는 컨텐츠를 담은 화면
- Template에 컴포넌트를 주입