Layout System 개선

기간
2024/05/27 → 2024/05/31
프로덕트
Design System
LXP
역할
Platform Designer
썸네일

Background

엘리스LXP는 올인원 교육 플랫폼으로 학습관리 시스템, 실습환경, 라이브 강의실 등 다양한 기능을 제공합니다. 최근 플랫폼에 커뮤니티 기능이 추가되면서 레이아웃이 복잡해지고 있습니다. 4개의 브레이크포인트를 통해 5개의 뷰포트를 제공하며 반응형 웹을 대응하고 있지만, 레이아웃의 복잡성이 증가함에 따라 기존 레이아웃 시스템으로 각 해상도에 최적화된 경험을 제공하는 데 어려움을 겪고 있습니다.
Glossary
커뮤니티 - 유저가 상호작용할 수 있는 통합 채널로서 AI 헬피, 헬프센터, 고객센터, AI 보조 도구 등의 기능이 포함된 화면의 우측 패널입니다.
유저 해상도 분포도

Problem Definition

디바이스별 사용자 경험이 최적화되지 않아 저해상도 디바이스의 학습 경험이 좋지 않습니다. 특히, 앞으로 비즈니스의 주요 타겟 중 K12(초, 중, 고등학생)의 비율이 높아질 예정인데, 이들의 주요 디바이스는 태블릿과 크롬북 같은 저해상도의 디바이스입니다.
또한, 최근 SLM 기반의 학습 도우미인 AI 헬피가 추가 되었습니다. 기존 헬프센터보다 답변 속도가 월등히 빨라지며 학습 중 실시간으로 상호 작용할 수 있는 경험이 중요해졌습니다. 하지만, 저해상도 디바이스는 실시간으로 헬피와 상호 작용하기 어렵습니다. (플로팅 버튼 클릭 → 커뮤니티 패널 오픈 후 헬피 이용)

Goal

테블릿 해상도에 최적화된 레이아웃을 제공하여 초,중,고 유저에게 최상의 학습 경험 제공하기 위해 레이아웃 시스템 개선을 진행했습니다.

Analysis

패턴 분석

레이아웃 시스템 개선을 위해 서비스의 핵심 기능(워크스페이스)별 레이아웃 패턴을 분석하였습니다. 각 뷰포트 별 최대 사이즈와 최소 사이즈를 확인하여 브레이크포인트에 도달하기 전 레이아웃이 깨지거나 사용성에 영향을 미치는 구간이 있는지, 각 기능에서 통합할 수 있는 패턴이 있는지 확인하였습니다.
커뮤니티 기능이 화면 우측에 들어온 후 랩탑의 최소 사이즈에서 레이아웃이 깨져 사용성 이슈가 있는 부분과 각 기능에서 크게 사이드 네비게이션과 컨텐츠 영역을 사용하고 있는 패턴을 발견했습니다.
클래스룸: 사이드 네비게이션, 컨텐츠, 커뮤니티 - 총 3개의 컬럼
과목: 사이드 네비게이션, 컨텐츠(목차, 수업목록), 커뮤니티 - 총 4개의 컬럼
라이브강의실: 사이드 네비게이션, 컨텐츠(실시간 화면, 유저 목록), 커뮤니티 - 총 4개의 컬럼
랩탑에서 태블릿 해상도 분기점에 도달하기 전에 Contents 영역이 깨지고 있음.
Contents 영역은 각 기능의 주요 컨텐츠가 들어와 유저가 중요하게 상호 작용하는 영역입니다.
각 기능별에 사이드 네비게이션과 컨텐츠 영역을 구성하여 시각적으로 같은 레이아웃이지만 구현 방식이 다른 문제도 발견할 수 있었습니다.

Solution

각 서비스의 패턴을 분석한 결과, 보다 세분화된 레이아웃 변경 방식의 필요성이 확인되었습니다. 기존에는 Viewport를 기준으로 레이아웃이 변경되었으나, 페이지의 복잡도가 높거나 커뮤니티 패널이 열려 있을 때 분기점에 도달하기 전에 레이아웃이 깨지는 문제가 발생했습니다. 이를 해결하기 위해 Viewport 내부의 특정 컨테이너를 기준으로 레이아웃이 변경되는 CSS-Container-Queries을 추가하였습니다.
Breakpoint를 추가하는 솔루션도 고려할 수 있지만, 이는 관리 비용의 증가로 이어질 것으로 우려되었습니다.
Container의 레이아웃 변경점을 Viewport의 변경 지점과 동일하게 사용하면, Breakpoint를 추가하지 않으면서도 세분화된 레이아웃 변경을 제공할 수 있을것으로 판단했습니다.
Viewport 기준으로 페이지 레이아웃 변경

AS-IS

뷰포트의 너비 기준으로 각 브레이크포인트 도달했을 때 레이아웃이 변경되어, 레이아웃이 깨지는 구간이 발생
CSS-Container Queries를 이용하여 레이아웃이 깨지는 문제 개선

TO-BE

뷰포트 내부의 컨테이너를 기준으로 레이아웃이 변경되는 방식 추가
뷰포트 기준으로 헤더, 바디, 커뮤니티, 푸터 등의 큰 범위의 레이아웃을 변경합니다.
컨테이너 기준으로 메인 컨테이너 내부 요소의 레이아웃을 변경합니다.
뷰포트 내부의 특정 컨테이너에 브레이크포인트를 적용했기 때문에, 뷰포트 너비가 줄어들면 해당 컨테이너의 크기도 함께 줄어듭니다. 이로 인해 미리 정의된 레이아웃이 적절히 적용되면서, 레이아웃이 깨지는 문제를 해결할 수 있습니다.
뷰포트의 브레이크 포인트는 헤더, 커뮤니티 등 보다 상위 레벨의 레이아웃을 정책을 정의합니다.

Testing

프레이머를 이용하여 빠르게 실험하기
반응형 레이아웃을 설계할 때 중요한 점은 각 해상도에서 레이아웃이 어떻게 변경되는지 잘 보여줘야 하는 것 입니다. 브라우저 사이즈를 직접 조정하며 동적으로 확인하는 단계가 필요합니다. 하지만, 정적인 디자인 화면에서는 반응형의 동작을 확인하기 어렵습니다. 이 때문에 동적인 환경에서 테스트가 필요했고, 프레이머를 이용한 테스트를 진행했습니다.
프레이머는 디자인 리소스만으로 웹 환경에 빠르게 퍼블리시 할 수 있는 도구입니다. 피그마에서 레이아웃의 구조를 잘 잡아두었다면, 프레이머로 Import한 후 퍼블리시만 하면 웹사이트에서 동적인 동작을 바로 확인할 수 있습니다.