🎨
디자인 시스템의 범위는 어디까지인가?

비고
Tags
디자인
Select
recommand
notion image
 
 

디자인시스템 참고 자료

개요

어떤 것까지 디자인 시스템에 포함시켜야 하는 걸까? 라는 의문에서 시작.
  • A : 이미 재사용된 컴포넌트, 또는 재사용될 가능성이 있는 컴포넌트는 특이 케이스라 할지라도 이미 시스템에 여러번 사용됐다면 디자인 시스템에 들어가야 한다.
  • B : 그런 예외적인 것들은 비록 여러번 재사용 됐다고 할 지라도 디자인 시스템 항목이 아니다.
  • C : 고차 컴포넌트는 디자인 시스템이 아니라고 생각한다. 이런 것까지 다 포함시킨다면 디자인 시스템 쪽에만 코드가 가득할 것이다.

개인적으로 느끼는 문제점

  • 완벽하게 설계된 컴포넌트만이 시스템 요소가 될 수 있어! 라는 인식이 강해 디자인 시스템이 활성화되지 못하고 있어서 인식을 개선시킬 필요가 있다.
  • 아이콘, 버튼, 타이포그래피, 페이지 레이아웃, 컬러시스템 등이 사용되고 있으며, 더 많은 요소들을 포함시키고 적극적으로 활용해야 한다.

모두 동의한 부분

  • 버튼, 아이콘, 타이포 등의 기저 컴포넌트는 당연히 디자인시스템에 포함돼야 한다

의견이 나뉜 부분

  • 특수한 상황이라고 생각되는 부분
    • 프로그레스바가 차오르고 다 끝나면 활성화되는 버튼
    • 버튼의 내용으로 아이콘과 텍스트가 아닌, 카운트 다운이 들어간 버튼
  • 기저 컴포넌트가 아닌, 고차 컴포넌트의 경우
    • 예시
    • 예시
 

디자인 시스템의 목적

main

  • 일관된 디자인 경험 전달
  • 폭발적인 생산성 향상

side

  • 개발 경험 향상
  • 디자인 경험 향상
💡
중요 포인트 - main, side 효과 전부 디자인 시스템이 있는 것을 재사용 함으로써 오는 이점이다. - 따라서 디자인 시스템에 정의된 요소 자체를 재사용하거나, 이들을 조합하여 새로운 복합 컴포넌트들을 만들어 나가야 의미가 커진다.
notion image
notion image
 

디자인 시스템 포함 범위

기저 컴포넌트

  • 버튼, 타이포, 아이콘, 슬라이더, 체크박스, …
 
기저 컴포넌트를 디자인 시스템에 포함시킬 지 여부는 앞서 모두가 동의했던 부분이다.
그 이유를 나름대로 해석해보면 다음과 같다.
🤔
- 디자인 시스템의 목적과 이점은 디자인 시스템 요소를 재활용하거나, 이들을 조합해서 새로운 것을 만들어 나가야 main, side 이점이 발생한다고 했다. - 기저 컴포넌트는 두 가지 모두에 해당되며, 복합 컴포넌트를 만들어 나가기 위한 초석이므로 디자인시스템에서 빠질 수 없다.
 

복합 컴포넌트 / 고차 컴포넌트

  • 뉴스레터 컴포넌트, 캘린더, drawer, 레이아웃, 템플릿, …
 
디자인 시스템에 포함시킬 지 여부에 대해 찬반이 나뉘었던 부분이다.
각 입장별 이유를 나름대로 해석해보면 다음과 같다.
🤔
포함 반대 이유 - 디자인 시스템 요소를 통해 새로운 것들이 “만들어져 나가야 한다” 라는 생각이 더 지배적. - 따라서 어느정도 더 상위 요소를 만들기 어려운 요소들은 디자인 시스템 포함 대상이 아닌 것 같다. 포함 찬성 이유 - UI, 코드의 재사용과 일관된 UI 전달 목적이 더 지배적. - 고차 컴포넌트라고 하더라도, 여러 군데에서 쓰일 경우 사용자에게 같은 경험을 줘야 하고, 코드나 디자인도 재사용하면 되므로 고차 컴포넌트도 디자인 시스템에 들어가야 한다.
notion image
notion image

고차 컴포넌트, 포함여부 공감되지 않나요?

  • 캘린더, TimePicker, 차트 등

카드

notion image
notion image
notion image

Carousel

notion image
notion image

툴팁

notion image
notion image
 

고차 컴포넌트, 포함여부 조금 헷갈리나요?

Activity Item

notion image
notion image

Activity rings

💡
마이알고링이 떠오르지 않나요?
notion image
notion image
 

이런 것들도 디자인 시스템에 있어요

레이아웃

notion image
notion image
 
notion image
notion image

모션

제스처

notion image

Spacial Interaction (공간 상호작용)

notion image

그 밖에도..

모든 것이 다 Design System 아래에 다 정의되어 있다.
notion image
 

그러면, 디자인 시스템에만 코드가 쏠리지 않나요?

ㅇㅇ 그래도 된다.
디자인과 관련된, 재사용 될 수 있는 모든 요소를 디자인 시스템에 넣어도 된다.
고차 컴포넌트 뿐만 아니라 그 밖에 모든 것들도 “재사용 된다면”
 
그러면 프로젝트 코드에는 거의 아무것도 남지 않을 것이라는 고민이 생긴다.
프로젝트 코드에는 비지니스 로직과 관련된 코드들과, 디자인 시스템 요소들을 조합시키는 화면 구성 부분 등이 남는다.
 

결론

기저 요소로부터, 복합 컴포넌트까지도!

notion image
 
  • 복합 컴포넌트는 더 낮은 단계의 기저 컴포너트들을 최대한 활용하여 정의되어야 한다.
  • 복합 컴포넌트 또한 여러 군데에서 재사용 될 여지가 있다면 디자인시스템에 포함시킬 수 있다.

컴포넌트 뿐만 아니다!

  • 컴포넌트를 벗어나서, 페이지를 구성하는 “레이아웃” 등도 일관된 디자인을 위해 필요하다면 디자인 시스템에 포함시킬 수 있다.
  • 또한 애니메이션, 제스처, 등등 그 밖에 모든 요소들도 디자인 시스템에 포함될 수 있다.
 

한줄 요약

“재사용” 된다면 디자인 시스템에 모든 게 포함되어도 된다.