밤이 긴 계절을 넘기면서, 화면을 오래 보는 사용자들이 가장 먼저 찾는 건 눈이 편한 인터페이스다. 알밤 서비스는 그 요구를 단순히 색 반전 수준에서 처리하지 않는다. 다크모드의 대비, 색채 체계, 전환 애니메이션, 그리고 접근성 약속까지, 실제 사용 환경에서 버티는 설계를 목표로 한다. 여기서는 알밤 다크모드의 개념과 구현 원칙, 접근성 기능을 켜고 조정하는 방법, 팀 운영 중 겪은 시행착오와 개선 사례를 정리한다. 사용자 입장에서도, 운영자나 디자이너 입장에서도 참고가 될 만한 세부를 최대한 담았다. 아이러브밤, 알밤, 광주알밤, 오피사이트 같은 정보 탐색 서비스에 공통으로 필요한 접근성 관점도 포함했다.
다크모드가 단순한 색 반전이 아니라는 사실
다크모드는 검은 배경에 흰 글자만 얹는 일이 아니다. 명도 대비, 채도 균형, 폰트 두께, 줄간, 모션 정책을 함께 튜닝해야 눈의 피로가 줄어든다. 특히 밤에 지하철에서 광주알밤 같은 지역 정보 페이지를 탐색하거나, 오피사이트 카테고리를 빠르게 넘기는 상황을 떠올려보자. 정보 밀도가 높은 화면일수록 반사광과 잔상, 깜박임이 피로를 키운다. 알밤은 다음의 원칙으로 다크모드를 설계했다.
첫째, 충분한 대비. WCAG 2.2를 기준 삼아 본문은 최소 4.5:1 대비를 유지하고, 사용자 설정에서 명시체를 선택하면 7:1까지 끌어올릴 수 있다. 다크모드는 대비가 과도하면 문자 윤곽이 번져 보이는 문제가 있으니, 회색조 팔레트를 단계별로 가늘게 쪼갰다. 주요 본문 색은 #E6E6E6 근처의 밝은 회색, 보조 설명은 #B3B3B3, 비활성은 #8C8C8C로 구간을 나누고, 배경은 순수 블랙 대신 #111에 가까운 오프 블랙을 기본으로 둔다. 이 조합은 OLED 브라이트니스가 30에서 60 사이일 때 가독성이 안정적이었다.
둘째, 색채 역할. 강조는 청록 계열로 통일하되, 링크와 활성 상태, 오류 안내처럼 의미가 다른 요소는 색조와 명도 차이로 구분한다. 색만으로 상태를 구분하지 않기 위해 아이콘 모양과 라벨도 함께 바꾼다. 적색 오류는 다크 배경에서 과자극을 주기 쉬워 sRGB 기준 채도를 15에서 12 정도로 낮춰 사용한다.
셋째, 표면과 깊이. 평평한 검정 화면에 카드를 겹치면 경계가 모호해진다. 알밤은 카드, 모달, 토스트에 감마가 다른 레이어를 준다. 카드 배경은 #161616, 상위 모달은 #1C1C1C, 시스템 토스트는 #212121로 계단을 만든다. 그림자 대신 1픽셀 보더와 미세한 내측 경계를 섞어 흐릿한 후광을 피한다.
넷째, 모션의 자제. 다크모드 전환에 갑작스러운 페이드나 확대 애니메이션을 쓰면 잔상과 현기증을 호소하는 사용자가 생긴다. 알밤은 120에서 160ms 사이의 크로스 디졸브를 권장하고, 사용자가 시스템에서 ‘동작 줄이기’를 켜면 즉시 전환으로 바꾼다.
다섯째, 장소와 시간. 밤중 야외에서 광량이 낮을 때, 완전 블랙이 배터리에 유리하고 눈부심도 줄인다. 반면 실내 조도가 높거나 낮은 해상도의 기기에서는 약간 더 밝은 배경이 선명하다. 그래서 알밤은 자동 모드에서 주변 조도와 시스템 설정을 함께 참고한다. 기기가 조도 값을 제공하지 않는다면 시스템 테마만 따른다.
다크모드 켜기와 세부 조정
알밤 앱과 웹은 모두 다크모드를 지원한다. 기본값은 시스템 설정을 따른다. 사용자는 테마 설정에서 라이트, 다크, 시스템 동기화 중 하나를 고를 수 있다. 웹은 prefers-color-scheme를 인식하고, 앱은 iOS와 Android의 표시 모드와 연결된다.
세부 조정 항목은 다음과 같다. 가독성을 최우선하는 옵션이라 다크모드에서만 보이는 항목이 몇 가지 있다. 먼저 텍스트 대비 강화. 이 스위치를 켜면 본문과 제목의 대비가 0.5에서 1.0 정도 올라가며, 링크 아래 밑줄이 기본으로 표시된다. 두 번째는 서체 두께 자동 보정. 일부 단말에서 다크모드로 전환하면 동일한 굵기의 글자가 더 가늘게 보이는 인지적 착시가 생긴다. 알밤은 본문을 100에서 200 중간 가중치로 미세 보정한다. 세 번째는 이미지 감광. 사진이 많은 페이지라면 다크 모드에서 사진 주변 여백을 자동으로 넓히고, 너무 눈부신 영역이 있으면 5에서 8퍼센트 정도 감광한 대체 이미지를 제공한다. 원본을 보고 싶으면 이미지 클릭으로 토글할 수 있다.

다섯 번째는 맵과 리스트의 모드 일관성. 광주알밤처럼 지도 정보가 핵심인 페이지에서는 지도의 타일 스타일과 오버레이 색상도 다크 팔레트로 전환된다. 포인트 마커의 채도는 낮추되, 현재 위치와 선택된 마커는 고채도 유지로 시선을 고정한다.
실제 사용 환경에서의 눈 피로를 줄이는 방법
테마만 바꿨다고 눈이 편해지는 건 아니다. 화면 밝기, 글자 크기, 대조 요소 배치, 야간 블루라이트 관리까지 조합해야 체감이 생긴다. 필드 테스트에서 얻은 유의미한 수치는 두 가지였다. 첫째, OLED 기기 기준으로 밝기 30에서 50 사이에서 피로 호소가 가장 낮게 나왔다. 야외 강한 조도에서는 라이트 모드가 오히려 오류 탐지와 텍스트 식별이 빨랐다. 둘째, 뉴스처럼 긴 텍스트를 읽을 때는 줄간을 기본 대비 1.5에서 1.6으로 살짝 넓혔을 때 이해 속도가 가장 빨랐다. 좁은 줄간은 다크모드에서 글줄이 뭉개져 보이는 문제를 키운다.
알밤은 야간 필터를 내장하지 않는다. 시스템 수준의 나이트 시프트나 블루라이트 필터가 디스플레이 전체에 적용되는 편이 일관성이 높다. 다만 시스템 색 온도를 높이면 알밤의 강조색이 탁해 보일 수 있으니, 강조 의존도가 높은 화면에서는 라벨, 아이콘, 보더로 정보를 보완했다. 이 방식은 오피사이트처럼 많은 카테고리를 빠르게 스캔할 때 특히 유용하다.
접근성 원칙, 표면보다 깊게
접근성은 법률 준수 차원을 넘어 사용성 안전장치다. 알밤은 시각, 청각, 운동, 인지 부담을 줄이는 네 가지 축으로 기능을 구성한다. 현장에서 부딪힌 사례를 중심으로 설명한다.
시각. 색 대비는 WCAG 기준을 따른다. 그러나 기준만 맞춘다고 문제가 끝나지 않는다. 저시력 사용자는 밝은 색조가 배경에서 뜨거나, 얇은 폰트 스트로크가 끊겨 보이는 경험을 한다. 그래서 텍스트 요소에는 최소 굵기 하한을 적용하고, 아이콘은 1.25픽셀 이상의 스트로크를 기본으로 삼았다. 확대 사용자가 흔히 겪는 포커스 손실도 막아야 한다. 웹에서는 논리적 포커스 순서를 DOM과 일치시키고, 의도치 않은 스크롤 트랩을 제거했다. 다크모드에서 포커스링은 청록 계열 단색 대신 흰색과 보조색을 겹친 이중 링을 쓴다. 명암이 낮은 배경에서도 포커스가 확실히 보이기 위해서다.
청각. 소리 없는 모드에서도 알림과 상태 변화를 인지할 수 있도록 모션과 진동, 시각적 배지를 함께 제공한다. 예를 들어 즐겨찾기 등록 성공은 미세한 햅틱과 함께 헤더 영역 배지 숫자가 증가하며, 화면 상단에 2초 토스트가 떠서 메시지를 읽을 수 있다. 음성 안내가 필요한 사용자를 위해 토글과 버튼에 대체 텍스트를 충분히 넣었다. 스크린리더 환경에서는 불필요한 장식 아이콘을 숨겨, 탐색 흐름을 간결하게 유지한다.
운동. 손 떨림이나 반복 동작이 어려운 사용자를 위해 터치 타깃을 최소 44 픽셀로 유지하고, 좌우 스와이프 같은 제스처를 버튼 대안으로 제공한다. 긴 목록을 넘길 때는 자동 구간 이동 기능이 도움이 된다. 페이지 하단으로 이동하면 상단으로 돌아가는 플로팅 버튼이 나타나고, 다크모드에서는 후광 대신 고대비 보더로 표시한다. 모션 민감 사용자는 설정에서 모션 줄이기를 켜면 애니메이션이 모두 축약된다. 캐러셀이나 자동 재생 배너는 기본값을 정지로 바꾸고, 명시적으로 재생을 눌렀을 때만 움직인다.
인지. 정보 밀도가 높은 화면에서 군더더기를 줄이는 것이 핵심이다. 알밤은 분류 체계를 단순화하고, 목록 카드에서 핵심 신호를 앞쪽에 배치한다. 예를 들어 위치, 영업 상태, 후기 수처럼 사용자가 결정을 내리는 데 필요한 지표부터 보인다. 다크모드에서는 유사 색조가 많아지기 쉬우므로, 레이블을 한 번 더 써서 뜻이 분명해지도록 했다. 상태를 색만으로 전달하지 않는 원칙을 지키는 방식이기도 하다.
스크린리더 최적화와 예외 처리
VoiceOver와 TalkBack 테스트에서 자주 부딪히는 난관은 커스텀 컴포넌트다. 탭바, 토글, 모달, 확장 가능한 카드 같은 요소는 네이티브 역할을 주지 않으면 스크린리더가 오작동을 일으킨다. 알밤은 다음 기준으로 레이블링을 정리했다.
탭은 버튼이 아닌 탭 역할을 부여하고, 선택 상태를 state로 노출한다. 토글은 스위치 역할과 on, off 상태를 각각 제공한다. 모달이 열리면 포커스를 모달 헤더로 이동하고, 배경 스크롤을 완전히 막는다. 모달 종료 시에는 모달을 연 트리거로 포커스를 돌려 사용자가 길을 잃지 않게 한다. 확장 카드의 경우 제목 버튼에 확장 가능하다는 힌트를 넣고, 열림과 닫힘 상태를 실시간으로 갱신한다.
예외적으로, 이미지가 의미 없는 장식일 때는 대체 텍스트를 비워 스크린리더가 건너뛰도록 했다. 반대로 정보 전달용 이미지에는 간결한 설명을 붙이되, 문장 끝의 마침표를 생략해 낭독 속도를 끌어올렸다. 링크와 버튼 텍스트는 ‘여기를 클릭’ 같은 추상 표현 대신 동사와 목적어를 분명히 쓴다. 예를 들어 ‘지도에서 보기’, ‘연락처 복사’처럼 다음 행동이 예상 가능해야 한다.
색각 이상과 테마 테스트 전략
다크모드 색상은 색각 이상 사용자에게 추가 난관이 된다. 배경이 어두워지면 채도와 명도가 왜곡되어 의미 구분이 흐려진다. 알밤은 개발 단계에서 세 가지 시뮬레이션을 상시 켜 놓는다. 적록 약시, 청황 약시, 단색시다. 각 상태에서 링크와 버튼, 알림, 경고의 구분이 유지되는지 확인한다. 이때 색만으로 구분하는 요소를 줄이고, 아이콘 형태와 패턴을 함께 덧댄다. 에러 메시지에는 경고 아이콘과 함께 왼쪽 세로 보더를 넣어 색이 보이지 않아도 의미가 전달되도록 했다.
실사용 테스트에서는 작은 오류가 치명적이라는 사실을 여러 번 배웠다. 예를 들어 카드 높이가 가변인 목록에서 포커스가 갑자기 사라지는 문제는, 비동기 데이터 로딩 중 DOM이 재배치될 때 발생했다. 해결책은 로딩 중인 카드의 높이를 고정하고, 스켈레톤에 aria-busy 속성을 부여해 스크린리더가 기다릴 수 있게 했다는 점이다.
야간 지도와 다크 UI의 미묘한 충돌
지도는 다크 테마에서 가장 어려운 컴포넌트 중 하나다. 길 선, 지명 라벨, 지형 음영이 모두 어둡게 바뀌면 경계가 흐려진다. 알밤의 야간 타일은 다음 균형점을 찾았다. 바탕을 완전 블랙 대신 짙은 청회색으로 두고, 도로 라벨은 따뜻한 회백색, 주요 지형은 낮은 채도의 청록으로 묘사한다. 현재 위치 마커는 고채도 블루를 유지하되, 포커스가 아닐 때는 외곽선만 남겨 시야를 가리지 않는다. 마커 밀집 지역에는 클러스터를 도입하고, 숫자 가독성을 위해 반투명 캡슐 배경을 넣었다. 다크 환경에서의 번짐을 막기 위해 그림자보다는 얇은 보더를 선호했다.
이 설정은 아이러브밤이나 광주알밤처럼 특정 지역의 포인트를 촘촘하게 보여주는 서비스에 특히 유용하다. 야간 운전 중에 지도를 보는 사용자라면, 대비가 과도한 흰색 라벨이 시야를 잡아당길 수 있다. 그래서 확대 지점과 현재 경로만 강조하고, 주변부 정보는 절제한다. 이 비율을 잘못 잡으면 지도가 장식으로 전락하거나, 반대로 정보 홍수가 된다.
텍스트와 타이포그래피, 다크모드에 맞춘 조정
타이포그래피는 숫자보다 감각의 영역에 가깝다. 하지만 반복된 테스트는 일관된 결론을 준다. 다크모드에서 얇은 글자와 긴 줄 길이는 피로에 직결된다. 알밤은 본문 최소 크기를 15포인트로 잡고, 사용자가 크기를 확대했을 때 레이아웃이 망가지지 않도록 유연 박스를 넓혔다. 제목은 2단계까지만 크기를 크게 하고, 3단계부터는 굵기 변화로 계층을 만든다. 굵은 글자를 과도하게 쓰면 하이 콘트라스트에서 가장자리 번짐이 생긴다. 그래서 H1의 굵기를 낮추고, 보조 제목에 대비를 분산했다.
링크와 버튼은 밑줄과 색, 굵기 중 두 가지 이상을 결합해 구분한다. 다크모드에서는 밑줄의 실선이 화면을 경직시키므로, 간격이 넓은 하이라이트 밑줄을 사용했다. 포커스링과 충돌하지 않도록 밑줄 아래 공간을 1픽셀 더 띄웠다. 입력 필드는 라벨을 내부 플레이스홀더에만 의존하지 않고, 필드 위에 작게 고정해 시야 이동이 줄어들도록 했다. 에러 상태에서는 라벨과 도움말 텍스트가 동시에 나타나야 에러 원인을 빠르게 파악할 수 있다.
다크모드 전환의 데이터와 배터리 관점
배터리 절약은 다크모드의 흔한 기대다. OLED 패널에서는 검은 픽셀이 전력을 덜 쓰기 때문에 이론적으로 유리하다. 하지만 체감은 사용 패턴에 따라 크게 달라진다. 알밤은 실제로 30분 세션 기준, 라이트 대비 다크에서 평균 8에서 12퍼센트 전력 감소를 확인했다. 이미지와 지도처럼 밝은 면적이 많은 화면에서는 차이가 3에서 5퍼센트로 줄었다. 즉 텍스트 위주 탐색에는 유리하지만, 이미지 탐색이 많은 세션에서는 이점이 작아진다.
데이터 사용량 측면에서도 다크모드 자체가 절감 효과를 만들지는 않는다. 다만 다크 모드에서 고채도 이미지를 감광한 대체 버전을 제공할 때, 썸네일 단계에서 더 작은 파일을 내려보내는 최적화가 가능하다. 이 최적화를 켜면 이미지 로딩 데이터가 10에서 15퍼센트 줄어들었다. 다만 원본 이미지를 확대해 보는 사용자 비율이 높을 때는 총량 차이가 작아진다.
사용자 제어권을 존중하는 설정 철학
설정은 많을수록 좋은가. 접근성에서는 반은 맞고 반은 틀리다. 기본이 충분히 합리적이라면, 대부분의 사용자는 건드리지 않는다. 알밤은 다음 철학을 따른다. 기본은 시스템을 따른다. 과도한 세부 옵션, 예를 들어 포커스링 색상 사용자 정의 같은 기능은 넣지 않는다. 대신 상태 텍스트나 접근성 설명처럼 정보 전달의 두께를 키운다. 그리고 중요한 것은 되돌리기 버튼이다. 다크모드 전환, 대비 강화, 모션 줄이기 같은 변경을 한 뒤 광주알밤 사용자는 원래대로 돌리려는 욕구가 자주 생긴다. 되돌리기 버튼은 한 단계 되돌림과 전체 초기화를 분리해 제공한다.
이런 철학은 아이러브밤이나 오피사이트처럼 대중적인 카테고리 탐색 서비스에서도 그대로 적용된다. 무한한 사용자 정의는 전문가에게는 자유지만, 다수에게는 피로다. 그래서 우리는 보호 레일을 설치한다. 과도한 대비 강화로 가독성이 떨어지면 경고 배너가 나타나 설정을 조정하라고 알려준다. 화면이 과도하게 확대되어 레이아웃이 접혔을 때는 중요한 버튼이 사라지지 않도록 고정된 위치에 보조 액션을 제공한다.
실수에서 배운 것들
다크모드와 접근성 기능은 문서의 원칙대로만 흘러가지 않는다. 실제로는 이상한 변수가 튀어나오고, 그 변수를 장기적으로 받아들일지, 임시 예외로 처리할지 판단해야 한다. 몇 가지 사례를 공유한다.
첫째, 글자 두께 자동 보정이 일부 안드로이드 기기에서 오히려 흐릿해 보이는 현상. 서브픽셀 렌더링 방식이 달라 생겼다. 해결책은 기기별 화이트리스트가 아니라 렌더링 방식 감지였다. 캔버스에 테스트 그리드를 뿌려 픽셀 강도를 측정하고, 특정 임계값 아래에서는 보정을 끈다. 사용자 입장에서는 그냥 잘 보이면 그만이지만, 내부에서는 자동 조정이 꽤 많은 일을 한다.
둘째, 다크 모드에서 지도 타일이 늦게 로드될 때 화면이 공허해 보이는 문제. 임시 배경을 뭘로 둘지가 관건이었다. 검정으로 비워두면 에러처럼 보이고, 회색은 톤 충돌을 일으켰다. 결국 지형 윤곽을 단순화한 와이어프레임 타일을 8킬로바이트짜리 SVG로 깔아두었다. 300밀리초 안에 실제 타일이 오면 교체하고, 지연이 길 때는 사용자에게 오프라인 모드 제안을 띄운다.
셋째, 스크린리더에서 모달을 닫고 돌아왔을 때 포커스가 예기치 않은 곳으로 튀는 문제. 라우터 전환과 모달 상태를 같이 다루는 화면에서 빈번했다. 포커스 복원 스택을 만들고, 모달을 연 트리거 요소의 식별자를 스택에 쌓은 뒤 닫힐 때 복원하는 방식을 택했다. 이 단순한 스택만으로도 길 잃음이 확 줄었다.
조직과 프로세스, 접근성은 누가 책임지는가
접근성은 한 사람의 의지로 끝나지 않는다. 디자이너는 대비와 레이아웃을, 개발자는 포커스 흐름과 스크린리더 레이블을, QA는 실제 기기와 툴로 검증을 맡는다. 알밤 팀은 크고 화려한 툴 대신, 체크리스트와 실제 사용자 피드백 루프를 택했다. 분기마다 다음 항목을 점검한다.
- 다크모드 대비 측정 샘플 30개를 추출해 자동 검사를 돌리고, 임계값 아래인 항목을 수작업으로 재평가한다. 스크린리더 흐름을 주요 사용자 여정 세 가지에서 녹화하고, 열흘간 수집된 사용자 문의와 비교한다. 포커스 트랩, 키보드 탭 순서, 탈출 키가 동작하지 않는 모달을 수집해 한 번에 수정한다.
운영 비용을 아끼려면 자동화가 필요하다. 하지만 자동화는 인간의 판단을 대체하지 못한다. 대비 수치만 보고 충분하다고 결론 내리면, 실제 장치에서의 번짐과 저주파 깜박임을 놓친다. 실제 유저 패널과의 야간 테스트가 여전히 결정적이다.
다크모드의 브랜드 감각
어두운 화면이 브랜드를 차갑고 멀게 만들 수 있다. 반대로 적당한 온도를 유지하면 신뢰감과 집중을 준다. 알밤은 브랜드 색을 다크 팔레트에서 10에서 15퍼센트 낮춘 채도로 사용한다. 강조가 필요한 순간에는 짧게 원색의 강도를 올리되, 지속 시간과 면적을 최소화한다. 앱 아이콘과 스플래시 화면도 다크 버전을 갖추되, 앱 내부와의 색 톤 차이를 줄여 진입 시의 이질감을 낮춘다.
지역형 서비스인 광주알밤 섹션에서는 지역 사진과 문화 색채를 다크 환경에서도 살리는 방법을 찾았다. 사진을 몽땅 어둡게 만들거나, 색을 칙칙하게 만들지 않고, 캡션과 설명 텍스트를 조정했다. 사진 자체는 선명하게 두고, 주변 배경을 어둡게 해서 시선을 사진으로 끌어들였다. 배경이 어두우면 사진이 더 밝게 느껴지므로, 오버샤프닝과 과다 채도를 피한다.
사용자 안내와 오류 메시지, 다크 환경에서의 톤
접근성의 마지막 퍼즐은 언어다. 작게는 버튼 이름부터 크게는 오류 메시지까지, 명료하고 단정한 톤이 필요하다. 다크모드에서 경고 메시지가 뜨면 화면 전체 분위기가 차가워지기 쉽다. 알밤은 단문을 선호한다. 무엇이 문제인지, 무엇을 하면 되는지, 두 문장으로 끝낸다. 예를 들어 위치 권한이 꺼져 있을 때는 이렇게 안내한다. 위치 권한이 꺼져 있어 주변 정보를 보여줄 수 없다. 설정에서 권한을 켠 뒤, 이 화면을 새로고침하세요. 긴장감만 키우는 형용사나 장식 문장은 덜어낸다. 스크린리더 사용자에게는 같은 메시지를 짧게, 하지만 행동이 분명하도록 읽어준다.
가끔은 유머가 도움이 될 때도 있다. 단, 다크모드의 분위기에서 농담은 어색해지기 쉽다. 그래서 알밤은 장애를 가볍게 만들지 않는 범위 내에서만 사용한다. 인터넷 연결이 잠깐 끊겼을 때, 귀엽고 억지스럽지 않은 일러스트와 함께 “신호를 찾는 중입니다” 정도가 허용선이다. 접근성 관점에서, 대체 텍스트에는 일러스트 설명 대신 상태만 전달한다.
앞으로의 개선 계획과 개방형 원칙
다크모드와 접근성은 종착점이 없다. 기기의 디스플레이 특성이 바뀌고, 운영체제의 정책도 자주 달라진다. 알밤은 내부 디자인 토큰을 공개 표준과 최대한 맞추고, 토큰의 명명 규칙을 도입했다. 배경, 표면, 경계, 텍스트, 강조, 경고, 성공, 정보 같은 공용 토큰을 다크와 라이트 양쪽에 매핑하고, 컴포넌트는 이 토큰만 참조한다. 결과적으로 테마 교체가 수월하고, 접근성 수정이 한 번에 반영된다.
또 하나는 커뮤니티 피드백 채널이다. 앱과 웹 모두에서 접근성 피드백을 보내는 경로를 눈에 띄는 곳에 둔다. 피드백 중 중복이 많더라도, 톤과 상황 묘사를 보면 실마리를 얻는다. 예를 들어 “지도 확대 시 글자가 뭉개진다”라는 신고는, 실제로는 확대 배율에 따라 벡터 레이블의 힌팅이 깨진 문제로 이어졌다. 이런 이슈는 단기간에 잡히기 어렵다. 대신 임시 우회로를 제시해 신뢰를 유지한다. 확대 두 배 이상에서 레이블 굵기를 일시적으로 올리는 기능 같은 것이다.
마무리 대신, 사용자의 손끝에서 검증되는 것
좋은 다크모드와 접근성 기능은 사용자가 느끼는 피로를 줄이고, 정보를 더 빨리 이해하게 만들고, 실수를 줄인다. 그것이 알밤이 추구하는 목표다. 아이러브밤, 광주알밤, 오피사이트처럼 정보 탐색의 맥락이 다양한 서비스는 특히 그렇다. 밤새도록 읽고, 고르고, 비교하더라도 눈이 버틸 수 있어야 한다. 다크모드는 그 시작점이고, 접근성은 안전망이다. 상식적인 기본값, 무리하지 않는 대비, 일관된 포커스, 정직한 문장, 그리고 되돌릴 수 있는 제어권. 이 다섯 가지만 지켜도 사용 경험은 눈에 띄게 달라진다.
남은 일은 반복이다. 새로운 화면을 만들 때마다, 이 원칙을 테스트하고, 예외를 기록하고, 예외가 줄도록 구조를 다듬는다. 다크모드가 단지 멋을 위한 옵션이 아니라, 누구에게나 평등한 사용성을 위한 장치라는 사실을 잊지 않으려 한다.