사고방식의 전환
‘복잡한 시스템을 디자인한다’는 말은 단순히 많은 기능을 화면에 나열한다는 뜻이 아니다.
생각의 출발점이, 사고의 방식이 달라야 한다.
기능이 많아지면 사용자 유형도 다양해지고, 흐름과 권한, 예외 시나리오도 함께 기하급수적으로 늘어난다.
이런 시스템에서는 더 이상 '하나의 사용자 플로우'만을 기준으로 삼을 수 없다
권한, 상태, 사용자 역할, 유지보수...
고민할 것이 많지만 디자이너가 가장 먼저 봐야 하는 것은 사용자의 역할이다.
누가 이 기능을 사용하는가,
어떤 권한을 가지고 접근하는가,
그리고 그 권한은 어떤 예외 상황에서 어떻게 제한되거나 확장되는가.
예를 들어,
모빌리티 시스템의 동일한 화면이라도, 운영자는 실시간 제어까지 가능한 반면, 현장 대응자에게는 열람만 허용되며, 민간 위탁 회사는 일부 정보만 조회할 수 있도록 제한된다.
모바일 앱 UX와 가장 다른 점은 바로 이 부분이었다.
앱은 비교적 직선적인 사용자 흐름에 맞춰 설계되지만, 시스템은 사용자 역할, 예외 상황, 상태에 따라 흐름을 먼저 정의해야 했다. 따라서 사용자의 역할과 상태를 기준으로 구조를 세우는 작업이 먼저 필요했다.
‘누가, 어떤 조건으로, 어떤 상태에서’ 접근하는지를 기준으로 그에 따라 기능 흐름, 제약, 예외 상황을 설계해야 한다.
해외에서는 ‘Systems-Oriented Design(SOD)’이라는 개념으로 설명되기도 한다.
SOD는 ‘복잡한 시스템을 시각화하고 구조화하는 디자이너의 사고 체계’를 의미하며, 정해진 화면 간 이동보다 역할, 조건, 상태, 예외 시나리오의 연결을 중심에 둔다.
(출처: https://en.wikipedia.org/wiki/Systems-oriented_design)
이 영역의 디자인은, 화면의 연결보다 논리와 정책의 연결이 훨씬 더 중요하다. 디자이너는 화면의 맥락에서 흐름이 끊어진 지점을 발견하고, 사용자가 길을 잃지 않도록 중간 단계를 설계하며, 권한과 조건에 따라 행동을 유도하는 구조를 만들어야 한다.
이때 디자이너는 단순히 쉽고 편한 UI를 넘어서, ‘이 구조가 잘 유지될 수 있을까?’, ‘새로운 기능이 추가되었을 때 충돌이 생기진 않을까?’와 같은 질문을 던져보는 태도가 필요하다.
복잡한 시스템은 디자이너에게 사고의 전환을 요구한다.
나의 작업 프로세스를 정리해 보면 다음과 같다.
사용자의 역할이나 권한에 따라, 어떤 화면과 기능이 보이거나 제한되어야 하는지부터 나눠본다.
사용자가 기능을 사용하는 맥락에 따라 흐름을 설계한다.
예외상황, 에러가 생겼을 때 등을 고려해 사용자가 혼란스럽지 않도록 흐름을 보완한다.
구조가 기능 변화에도 유연하게 대응할 수 있는지 살피고, 필요할 경우 흐름을 재구성한다.
마지막으로, 이 모든 설계가 UI에 잘 반영되어 사용자가 명확하게 이해할 수 있는지 확인한다.
그리고 이 과정에서 디자이너에게는 다음과 같은 역량이 필요해진다.
1. 흐름을 구조화하는 사고력
: 단일한 사용자 흐름이 아닌, 역할·상태·조건에 따라 달라지는 다양한 흐름을 구분하고 구조화할 수 있어야 한다.
2. 정책과 조건을 시각화하는 감각
: 추상적인 정책과 상태를, 인터페이스로 재정의하고 디자이너의 UI구조로 풀어낼 수 있어야 한다. 그렇지 않으면 정해진 스펙의 시각화만 하게 되고 사용자 경험도 제약을 넘지 못한다.
3. 변화를 예측하고 대비하는 시야
: 기능 추가나 정책 변화가 구조에 어떤 영향을 줄 수 있는지 시뮬레이션해 보는 사고가 필요하다. 그에 맞는 디자인 유연성도 확보해야 한다.
복잡한 시스템을 설계한다는 건,
상태와 흐름, 권한과 조건, 변화에 대한 예측까지 — 그 모든 것을 구조로 그려내는 일이다.
그렇기에 이 영역은, 다른 사고방식이 필요한 디자인이다.