본문 바로가기
디자인패턴

아토믹 디자인 패턴(atomic design)

by 검은도자기 2022. 1. 3.

정의

사용자 인터페이스를 작고 단순한 컴포넌트로 분리하여 효율적으로 관리하는 방법론

 

 

역사

2013년 6월 브래드 프로스트(Brad Frost)라는 스타일 가이드 관련 경험도가 높은 웹디자이너가 제시한 디자인 패턴입니다.

 

 

아토믹 디자인 구조

구조는 원자(Atoms) -> 분자(Molecules), 유기체(Organisms), 템플릿(Templetes), 페이지(Pages)로 이루어져 있습니다.

 

 

1. 원자(Atoms)

atomic design — Atoms example

  • 사용자 인터페이스에서 더 이상 쪼갤 수 없는 가장 작은 컴포넌트입니다.
  • 대표적인 원자 컴포넌트는 레이블(Label), 텍스트(Text), 컨테이너(Container), 버튼(Button), 아이콘(Icon) 등입니다.

 

 

2. 분자(Molecules)

atomic design — Molecules example

  • 두 개 이상의 원자로 구성된 컴포넌트입니다. 
  • 대표적인 분자 컴포넌트는 입력 폼(Input forms), 내비게이션(Navigation), 카드(Card) 등입니다.

 

 

3. 유기체(Organisms)

atomic design — Organisms example

  • 원자와 분자들의 조합으로 이루어진 컴포넌트입니다.
  • 대표적인 유기체 컴포넌트는 헤더(제목, 검색 표시줄, 항목 목록), 여러 카드를 관리하는 그리드 등입니다.

 

 

 

4. 템플릿(Templates)

atomic design — Templates example

  • 유기체, 분자 및 원자들의 조합으로 이루어진 컴포넌트입니다.
  • 대표적인 템플릿 컴포넌트는 Lorem Ipsum, Image Placeholder 등으로 채워진 스켈레톤 뷰 등입니다.

 

 

5. 페이지(Pages)

atomic design — Pages example

  • 실제 콘텐츠들을 배치한 UI를 보여주며, 템플릿의 구체화된 컴포넌트입니다.
  • Page는 사용자가 볼 수 있는 최종 콘텐츠가 보이는 화면입니다.

 

 

장점

  • 가독성 향상: 템플릿을 보기만 해도 문자 그대로 코드를 읽을 수 있으며 구성 요소 구조는 매우 간단합니다.
  • 유지 관리 가능성: 향상된 가독성은 응용 프로그램의 유지 관리에 정비례합니다.
  • 재사용성: 중복되는 컴포넌트를 줄일 수 있고, 결과적으로 개발 소요시간을 단축할 수 있습니다.

 

 

단점

  • 러닝 커브가 매우 높음: 컴포넌트 개념에 대한 높은 이해도를 필요로 한다.
  • UI 변화에 유연하지 않음 : 컴포넌트는 너비에 대해 알 수 없기 때문에 실제 페이지의 사이즈가 변경될 때 크기가 조정된다.
  • 많은 시간 소요: 컴포넌트 재사용성을 고려하는 것에 시간 소모가 큽니다.

 

 

왜 아토믹 디자인을 사용할까?

여러 가지 글들을 종합해 본 결과, 다는 아니지만 아키텍처를 고려하지 않고 개발한 프로젝트들이 점점 커지면서, 새로운 기능을 하나 추가할 때마다 여러 코드를 재작성하는 일들이 반복되기 때문에.. 아토믹 디자인의 필요성이 느껴서 사용한다고 합니다.

 

 

마무리

오늘은 요새 웹 프런트를 개발한다고 하면 한 번씩 고민하게 되는 아토믹 디자인 패턴에 대해서 공부해봤습니다.

공부를 해보니 아토믹 디자인 패턴이 모든 상황에서 좋은 디자인 패턴이 아니라는 걸 알게 되었습니다.

프로젝트가 커지면 고려해 볼만하나 초창기 또는 상황이 여유롭지 않다면 아토믹 디자인 패턴은 오히려 오버 엔지니어링이 될 수도 있겠다는 생각이 들었습니다. 

아직 부족하거나 틀린 부분이 있을 수도 있으니 주의하시면 좋을 거 같습니다.

이번 포스팅은 마무리하면서 다음 포스팅에서 뵙겠습니다.

 

 

'디자인패턴' 카테고리의 다른 글

BlOC 패턴이란?  (0) 2021.09.11