[Buzzvil Design] Design System at Buzzvil - Buzzvil
[Tech Weekly] TCP/IP 101
3월 14, 2018
[BuzzScreen Newsletter] March 2018
3월 30, 2018

[Buzzvil Design] Design System at Buzzvil

~ 8min. read

버즈빌이 완전히 새로운 ‘디자인 시스템’을 갖추고 있습니다. 와우~

새로운 시스템을 만드는건 정말 시간이 많이 드는 일입니다. 그런데 과연 그럴만한 가치가 있는 일일까요? 버즈빌과 같은 스타트업이 굳이 디자인 시스템을 만들어야 하는 이유가 있을까요?

네. 당연히 그렇습니다.

그 이유에 대해서 이해하기 위해서는 버즈빌이 디자인적으로 어떤 문제를 가지고 있고 이러한 문제들을 디자인 시스템을 통해 어떻게 풀어내려고 했는지를 좀더 면밀히 살펴볼 필요가 있습니다.

버즈빌은 수많은 (지금도 그 수가 늘어나고 있는) 파트너들과 함께 서비스를 운영하고 있습니다. 그렇기 때문에 버즈빌은 스타트업치고는 매우 많고 복잡한 Product들을 만들어내야만 하고 계속해서 그것들을 관리하고 운영해 나가야 합니다.

이러한 버즈빌의 비즈니스적인 필요를 충족시키는 것이 디자인 시스템을 통해 해결 하려고 했던 첫번째이자 가장 중요한 문제였습니다.

디자인 팀은 그렇게 크지 않은데 비해 디자인업무는 계속해서 늘어나고 다양해집니다. 이러한 상황을 어떻게 극복할 수 있을까요?

버즈빌의 Product line을 살펴보면 다음과 같습니다. 먼저 자체적으로 2개의 앱을 운영하고 있고, 파트너들의 앱에 통합될 여러가지 SDK와 API들 그리고 곧 추가될 각 파트너별 White-label 앱까지… 각각의 앱과 연관된 마케팅 관련 작업이나 대쉬보드 작업을 제외한다고 해도 버즈빌이 다루고 있는 Product들은 너무나도 많습니다.

시스템이란 각각의 요소들을 함께 연결하는 것이며, 이러한 ‘요소들’이 다른 곳에서 재사용될 수 있게 만드는 것입니다. 그래서 버즈빌 디자인 팀에서는 디자인 asset들을 분리하여 재사용할 수 있는 component로 만드는 일들을 해왔습니다. 식은죽 먹기죠!

주의할 점은 technical dept의 문제가 디자인에도 똑같이 적용된다는 점입니다. 즉, 잘못된 점을 초기단계에 바로 잡는 것은 간단하지만 일이 진행되면 진행될 수록 단순한 오류를 수정하기도 어려워진다는 것이지요. 그래서 디자인 팀에서는 하나의 일을 오랜기간 고민하면서 진행함으로써 잘못 진행된 일 때문에 두 번 일해야 하는 불필요한 시간의 낭비를 방지하고 있습니다.

이것이 바로 디자인 시스템을 만들게된 출발점이자 시스템을 만들면서 해결하려고하는 가장 큰 문제입니다. 디자인 팀에서는 이 일을 8개월 전부터 해왔고 그 과정 가운데서 다양한 문제들에 대한 답을 시스템을 통해 찾았습니다.

버즈빌은 작은 회사지만 전세계를 향해 사업을 확장해 나가려는 큰 비전을 가지고 있습니다. 글로벌 기업이 되는 것은 분명히 멋진 일이지만 디자인의 관점에서 그것은 수많은 다른 문화적 배경을 가진 사람들, 다른 기술적, 미적 이해수준을 가진 사람들이 이해할 수 있는 디자인을 만들어야한다는 것을 의미합니다. 다행히도 이런 고민을 한 디자이너 들이 많이 있었고, 그들은 어떤 product에도 적용할 수 있는 아주 유연한 표준을 세웠습니다. 바로 그 기준들이 흔히 ‘시스템’ 이라고 불리는 것들입니다.

이런 상황에서 우리의 두번째 문제가 생겨납니다. ‘모든 사람이 이해할 수 있어야 한다’는 것입니다.

우리는 어떻게 다양한 스펙트럼의 사람들에게 적합한 세계적인 Product를 디자인 할 수 있을까요?

복잡한 문제들은 보통 간단한 방법으로 해결되는 경우가 많은데요.

모순적으로, 디자인을 조금이라도 해봤다면 어떤 것을 단순하게 만드는것이 말처럼 쉬운 일이 아니라는 것을 이해하실 수 있을 것입니다.

앱을 디자인 하는 경우도 크게 다르지 않습니다. 앱을 디자인 한다는 것은 시각적 의미(Visual semantic)를 앱안에 표현하는 일입니다. 다시말해서, 그 앱을 사용하는 사람들이 이해할 수 있는 일종의 메시지를 시각적요소를 통해 담아내는 것이라고 할 수 있는데요.

이렇게 담아내는 메시지의 복잡성을 줄임으로서 그 메시지를 더 많은 사람들이 이해 할 수 있게 만들 수 있습니다. 디자인에 있어서 미니멀리즘은 바로 이런 생각에서 부터 시작됩니다. 단순성이 핵심입니다.

단순함을 유지함으로써 우리는 비로소 많은 사람들이 이해할 수 있는 디자인을 할 수 있습니다.

그렇다면 이를 위해서 시스템적으로 접근하기 위해 무엇을 해야할까요?

바로 원칙들을 세우는 일입니다. 시스템적으로 일한다는 것은 원칙과 과정음 세움으로써 우리가 공유하는 가치들을 바탕으로 우리만의 고유한 일하는 방식을 만드는 것을 의미합니다.

버즈빌의 경우, ‘미니멀리즘’이라는 원칙은 작은 디자인팀을 운영하면서 동시에 버즈빌이 진출해있는 다양한 시장에 맞는 디자인을 하기 위한 핵심적인 원칙 중에 하나입니다.

디자인 팀에서는 Google Material에서 부터 시작해서 버즈빌만의 컴포넌트와 원칙들을 정해 나갔습니다. Google Material을 선택한데에는 몇 가지 이유가 있는데요. 첫 번째로 끊임없이 진화해 나가는 놀라운 디자인 언어이기 때문이고 두 번째로는 이미 안드로이드 OS와 많은 주요 앱들에서 사용되어 왔기 때문에 널리 퍼져있고 많은 유저들이 이에 굉장히 익숙하기 때문입니다..

버즈빌은 자체적으로 허니스크린 슬라이드조이를 운영하고 있습니다. 뿐만아니라 BuzzScreen, BuzzStore, BuzzOfferwall등을 포함한 Buzz Product라고 불리는 product line도 관리하고 있습니다. 이  product line들은 앞서 언급했듯이 white labelled app이나 SDK와 API를 통해서 파트너 앱에 통합되기 때문에 그 자체로는 브랜드가 없습니다. 반면에 각각의 파트너들은 당연히 그들의 서비스를 통해 표현하고자하는 고유의 브랜드를 가지고 있습니다.

여기서 세번째 문제가 나오는 데요. 바로 ‘다양한 브랜드의 필요를 충족시켜야 한다’는 점입니다.

어떻게 버즈빌의 다양한 서비스들에서 수많은 브랜드를 다룰 수 있을까요?

공통점이 많지 않은 다양한 브랜드를 다루는 것은 그 자체만으로 어려운 일입니다. 게다가 버즈빌의 경우는 파트너의 요구를 충족시키기 위해서 파트너의 브랜드와도 잘 통합 될 수 있어야 합니다.

IT회사들 사이에서 디자인 시스템으로서 사용되고 있는 수많은 방법들이 있지만 그중에서  다니엘 에덴의 방법이 버즈빌의 상황과 가장 맞는다고 판단하였습니다.

에덴은 디자인 시스템을 조직하고 구조화하는 매우 흥미로운 방법을 가지고 있는데요. 에덴은 모든 디자인 asset을 2개의 레이어로 나누는 것부터 시작합니다. 바로 패턴표현입니다 :

 

패턴 레이어

패턴은 디자인 에셋들의 레이아웃입니다. 패턴은 각각의 컴포넌트들이 어떻게 배치되어야 하는지에 대한 정확한 기준을 제시 합니다. 패턴에서 다루는 컴포넌트들은 더 작은 컴포넌트들도 쪼개질 수 있으며 어떠한 메시지나 표현을 담고 있지 않습니다. 또한 서비스 안에서 혹은 서비스 밖에서도 재사용이 가능합니다.

훌륭한 시스템을 만들기 위해서는 겹치는 부분을을 제거하여 각각의 컴포넌트들을 최적의 컴포넌트로 만드는 과정이 필요합니다. 이러한 과정을 통해 점점 더 간결함을 추구 할 수 있습니다.

 

표현 레이어

표현레이어는 메시지를 다루는 부분이자 컴포넌트의 가장 기본이 되는 레이어입니다. 표현레이어는 고유의 브랜드와 색상이 담기는 곳이며 더 작은 컴포넌트들로 나누어지지 않습니다. 그래서 일반적으로 표현레이어의 구성요소들을 ‘Atoms’ 라고 부릅니다. 표현 레이어는 색상, 텍스트, 아이콘, 일러스트레이션, 사진과 비디오등으로 구성되고 각각 메시지를 담고 있으며 우리의 UI구조와 관계없이 전체적인 브랜드 가이드라인에 따라 결정됩니다.

이제 이 접근방식이 얼마나 확장가능한지 어느정도 감을 잡으실 수 있으실 겁니다. 각각의 레이어의 모든 컴포넌트들을 잘 정의해두었다면 Sketch와 같은 유용한 툴을 이용해서 손쉽게 두 레이어를 연결할 수 있습니다. 이에 대해서는 추후에 다른 포스트를 통해서 소개하도록 하겠습니다.

시스템의 약점은 얼마나 유연하게 적용될 수 있는 것인지에 있습니다. 아주 엄격한 구조와 너무 유연한 구조 사이에서 균형을 잡는건 쉽지 않은 일인데요. 이것을 위에서 살펴본 두 가지 레이어로 나누어보면 좀 더 쉽게 접근할 수 있게 됩니다. 먼저 블록을 만드는 것, 즉 컴포넌트를 배치하는 패턴 레이어에 대한 부분은 대부분 개발자에 의해서 구현 됩니다. 마찬가지로 표현 레이어는 브랜드의 이미지를 세팅하는 마케터에 의해서 다루어져야합니다. 디자이너 입장에서 개발자와 마케터에게 서로 다른 메시지를 통해 이야기 하는 것처럼 이 두 가지 측면은 다른 방법으로 소통 되어야 합니다.

뛰어난 디자인을 만들기 어려운 이유는 하나의 명확한 디자인 컨셉을 통해 다른 모든 stakeholder들을 연결해야 하기 때문입니다.

패턴레이어는 개발팀의 가이드라인을 잘 따라야 하고 표현레이어는 브랜드가 확실하게 전해지면서 컨텐트가 적절히 보여질 수 있도록 충분히 유연해야 합니다. 그리고 디자이너의 역할은 이 모든 것들의 중간에서 각각의 요소들을 연결하여 최종적으로 우리의 서비스를 사용하는 사람들이 우리가 전하고자 하는 모든 것을 인지할 수 있게 만드는 것입니다.

위에서 언급한 다니엘 에덴의 기사를 읽어봤다면 또 다른 레이어인 컨셉 레이어에 대해 알고 계실것입니다. 컨셉 레이어는 디자이너가 다른 모든 stakeholder들과 어떻게 소통할 것인지에 관한 것이고 우리의 디자인이 얼마나 좋은지를 평가하는 기준이 되는 레이어입니다.

이것은 ‘우리의 디자인의 필요를 충족 시키는 것’이라는 네번째이자 마지막 문제로 이어집니다:

우리는 어떻게 우리의 디자인 컨셉에 대해 소통하고 평가 해야할까요?

컨셉은 스토리를 의미합니다. 컨셉은 가능한 모든 수단들을 통해서 추상적인 생각을 전달하는 것입니다. 그리고 바로 이 부분에서 디자이너가 차이를 만들 수 있습니다. 이것은 사실 부분적으로는 우리가 시스템으로 일하는 이유이기도 합니다. 시스템을 통해 다른 레이어를 구성하는데 드는 시간을 절약하는 이유는  궁극적으로 컨셉 레이어 맞는 아이디어들을 시각화하고 구현하는데 충분한 시간을 쓰기 위해서 입니다.

다니엘 에덴의 말을 빌리자면,

표현 레이어가 우리의 알파벳이라면 패턴 레이어는 우리의 단어와 문장이다. 그리고 컨셉 레이어는 우리의 이야기입니다.

알파벳과 사전을 만드는 이유는 사람들에게 들려줄 이야기를 쓰기 위해서입니다. 이것이 가장 중요합니다.

디자인 적인 기반이 탄탄하지 못하면 메시지가 명확하게 전달 되지 못할 수도 있지만 디자인에 담겨있는 스토리가 탄탄하지 못하면 우리의 Product의 경험 전반에 부정적인 영향을 미치게 됩니다.

그렇다면 우리는 어떻게 좋은 디자인을 평가할 수 있을까요?

컨셉은 이론적이고 실재적인 연구에 기반한 가정들로 이루어져 있습니다. 따라서 디자인에 담으려고 하는 이야기가 우리가 원래 의도했던 답을 주면서 이용자들과 공감대를 형성하는지를 알아보기 위해서는 그것을 실제로 테스트 해보는 것이 가장 좋은 방법입니다.

버즈빌의 디자인 시스템은 각각의 컨셉별로 우리의 가정이 옳았는지를 판단할 수 있는 Metric들을 다룹니다. 전체적인 시스템과 마찬가지로 Metric은 불변하는 것이 아니라 테스트를 진행해 가면서 계속해서 수정되고 보완되는 것입니다. 만약 몇번의 루프 후에도 결과가 기대와 다르게 나온다면 컨셉 레이어가 잘못되었고 어딘가 수정해야할 부분이 필요하다는 것을 의미합니다.

수정하는 과정에서의 원칙은 핵심적인 컴포넌트들 자체가 문제를 일으킨다고 보는 것이 아니라 그것들을 어떻게 조합하는지가 문제를 일으킬 수 있다고 생각하는 것입니다.

다시말해 각각의 단어들은 올바르지만 문장 구성이 잘못되었고 이를 보완하기 위해서는 단어의 순서를 바꿔서 문법이 잘 지켜지게끔 해야하는 것과 같습니다. 만약에 그것 마저 소용이 없다면, 처음부터 전하려고 했던 이야기 자체가 정말 사람들의 기대를 충족시킬 수 있는지의 관점에서 다시 생각해볼 필요가 있습니다.

Conclusion

디자인 시스템은 디자인을 하는데 도움을 주는 좋은 방법입니다.  디자인 시스템을 통해서 모든 사람이 디자이너처럼 생각하고 일할 수 있기를 기대하는 것은 아니지만 이를 활용하여 정보를 잘 전달하고 모두가 디자인 리소스에 접근하게 함으로써 결과적으로 누구나 미리 만들어진 블럭을 활용하여 대략적인 컨셉을 만들어낼 수 있기를 기대합니다.

좋은 아이디어는 모두가 생각 해낼 수 있지만 디자이너들은 다른 팀원들에게는 없을 수도 있는 다양한 도구들을 통해 생각을 더 잘 표현 할 수 있습니다. 디자이너의 asset을 공유하는 것은 우리의 다른 팀원을 돕는 것뿐만아니라 아이디어에 대해서 의사소통하는 데에 도움을 주는 방법입니다. 그리고 디자인의 초기 컨셉과 원칙 그리고 디자인 문화를 공유하는 것은 모두가 디자이너가 일하는 방식을 이해하는 데 도움을 줍니다. 뿐만아니라 그렇게 공유된 컨셉,원칙,문화들은 전혀 쓸모없는 것이 아닙니다. 다른 누군가에게 새로운 생각을 할 수 있게 도울 수도 있기 때문입니다.