버스 정류장 도착 정보 안내판의 번호 정렬 규칙
버스정보시스템(BIS)을 통해 내가 탈 버스를 마냥 기다리지 않고 언제 올지 예측할 수 있게 되면서 삶의 질이 높아졌습니다. 하지만 정작 정류장에 설치된 전광판에 내가 탈 버스 번호가 언제 나올지는 예측할 수 없습니다. 도대체 규칙을 모르겠거든요.
버스정보안내단말기(BIT)에서 내가 탈 버스 번호는 도대체 언제 나오는걸까?
지하철이나 자가용을 주로 이용하는 분들은 번호가 당연히 번호 순서대로 나오는 게 아닌가 생각할 수 있는데요. 그렇지 않습니다. 아래 사진을 보고 어떤 순서인지 생각해보세요.
버스가 많지 않은 정류장은 별로 문제 되지 않는데 버스가 많은 곳은 사정이 다릅니다. 표시할 버스는 많고 표시할 수 있는 정보량은 한정되어 있으니 페이지를 나눠 순환 표시하는데요. 규칙이 명확하면 어느 페이지에 나올지 예측하여 인지 비용을 줄일 수 있지만 규칙을 모르면 번호를 하나하나 확인하며 페이지가 바뀌길 기다려야 해서 끔찍합니다.
저도 매번 모든 번호를 일일이 확인했습니다. 번호 표시에 규칙이 있다고는 생각을 못했거든요. 처음에는 상식적으로 번호 순이겠거니 생각했지만 규칙에 어긋나는 예외가 많아서 버스 정보가 업데이트 되는 순서에 따라 불규칙하게 표시되는 거라고 생각했습니다.
그러다 얼마 전 번호 표시에 나름 규칙이 있다는 걸 발견했습니다.
현 서울시 BIT 번호 표시 규칙을 알아보자
1. 개발 편의적인 사전식 문자열 정렬
버스 도착 안내에는 크게 번호 순과 도착 순 방식이 있는데요. 현재도 일부 단말이 도착 순으로 운영되고 있습니다. 나름 명확한 원칙이지만 기다리는 사람 입장에서는 도움이 안 됩니다. 순서 예측이 불가능하니 내가 탈 버스가 언제 표시될 지 알 수 없습니다. 그래서 점차 번호 순으로 교체하고 있다고 합니다.
일반 사람이 익숙하고 상식적으로 생각할 수 있는 순서는 번호 순입니다. 버스 번호 기본 체계가 숫자로 되어 있으니까요. 하지만 안내판의 번호 순서는 우리의 상식과는 다릅니다. 얼핏 번호 순 같기도 한데 안내판에는 3012가 401보다 앞에 나옵니다. 이건 도대체 뭔가요?
문자열 정렬을 사용하기 때문인데요. 개발자 말고 문자열 정렬이라는 말을 들어보신 분 있나요? 문자열 정렬은 숫자가 아닌 문자로 간주하여 앞자리부터 비교해 사전식으로 순서를 정하는 방식입니다. 첫자리 3이 4 보다 유니코드(ASCII)의 앞에 있으니 3012이 401 앞에 와야 한다는 거지요. 맨 처음에 나올 것 같은 3번 마을 버스가 맨 뒤에 표시되는 것도 같은 이유입니다. 심지어 3번 마을 버스는 8번 마을 버스 다음에 나오는데요. "강남08, 서초03"의 "강"은 숫자보다 문자 코드 뒤에 위치하고 "서"보다는 앞에 있으니까요.
일반인은 익숙지 않은 문자열 정렬을 굳이 사용한 맥락상 장점이 무엇일까 곰곰이 생각해봤는데요. 제 생각의 범위로는 전혀 모르겠습니다. (권역별 정렬을 위한 것이라는 주장에 관한 부분은 아래 추가로 적었습니다) 버스 번호에 "강남03", "M5422" 처럼 숫자 외에 문자도 포함하기 때문에 변수를 문자열로 지정해야 하는데요. 개발 편의를 위해 문자열의 기본 정렬(sort)을 그냥 사용한 게 아닌가 하는 짐작 말고는 다른 이유가 떠오르지 않습니다. 설마 개발에서 예외 처리 두세 줄 하는 게 귀찮아서 모든 서울 시민이 고통받는 것인가요?
2. 다단 목록의 지그재그 나열
일반인의 순서 vs 버스 안내판의 순서
문자열 정렬이란 걸 알고 봐도 이상한데요. 왜 다음에 와야 할 번호가 안 보일까요? 2단으로 배치된 번호가 일반적인 И 이 아닌 Z 순으로 나열되어 있기 때문입니다. 목록을 지그재그로 나열하면 시선 이동 거리가 길어지고 다음 줄로 시선이 되돌아왔을 때 다음 열이 어디인지 헷갈릴 수 있어 좋지 않습니다. 그래서 정상적인 다단 목록에서는 И 방향 정렬을 사용합니다.
문자열 정렬과 Z 정렬 조합으로 일반인이 예상하는 순서와는 전혀 다른 형태가 되었던 것입니다.
3. 곧 도착 버스의 표시 제외
앞의 정렬 규칙을 우리 같은 평범한 사람이 이해하지 못하더라도 매일 타는 버스의 번호가 항상 같은 곳에 표시되기라도 하면 찾기 쉬웠을 텐데요. 그렇지 않습니다.
"곧도착"에 표시되는 버스는 중복되지 않도록 상단에서는 누락 시킵니다. 아래 6000번 앞의 540번이 위에는 보이지 않습니다. 540번은 "곧도착"에서 표시하고 있으니까 안 보여주겠다는 겁니다.
이 때문에 매번 버스 번호의 표시 위치가 달라집니다. 도대체 왜 이런 규칙을 굳이 추가 했는지 정말 궁금합니다. 페이지 로테이션 시간을 줄여줄 수 있어서요? 별로 효과 없습니다. 덕분에 몇 년간 버스를 타면서도 버스 번호는 불규칙하게 표시된다고만 알았지 규칙이 있으리라고는 생각하지 못했습니다. 화면도 계속 바뀌고 경우에 따라 아래 6411번처럼 "곧도착"과 상단에 같이 표시될 때도 있는 헷갈리는 표시 방법 때문에 규칙을 알기는 더욱 어렵습니다.
상식에 맞는 정보 디자인
어려운 해결이 필요한 게 아니라 상식에 맞는 디자인이 필요합니다.
1. 문자열이 아닌 숫자 순으로 정렬
내가 탈 번호가 이미 지나갔는지 조금 기다리면 나올지 쉽게 예측할 수 있습니다. 문자를 포함하는 번호를 위해 예외 처리를 한 소팅 함수를 만들어 사용해 주세요.
2. 다단 목록 N 정렬
지그재그 Z 정렬이 불편하고 나쁜 걸 몰라서가 아니라 이것도 개발 편의 때문인 것 같습니다. BIT 말고도 많은 서비스가 이렇게 표시하고 있거든요. 다들 반성하고 고쳐 주세요.
3. "곧도착"과 상관없이 모든 버스 번호 표시
대부분 같은 정류장에서 같은 버스를 탑니다. 항상 타는 버스가 같은 페이지 같은 위치에 표시되면 찾기 쉽습니다. 혹시 "곧도착" 버스의 도착 시간이 1분 이내 초 단위라서 오차로 오해를 줄 수 있는 게 걱정이라면 도착 시간을 "곧도착"으로 표시해 주세요.
(정정- 곧도착은 전 정류소 통과 후 2분내 도착 예정일 때 표출된다고 합니다.)
공공 서비스 디자인 사용성 검수 절차가 필요합니다
전광판의 번호 표시 규칙을 알게 되었지만 전혀 기쁘지 않습니다. 화가 납니다. 시민의 편의를 위해 시민의 세금으로 운용되는 공공 서비스가 도대체 왜 이렇게 만들어졌는지 왜 이렇게 방치하는지 이해되지 않습니다. 기본적인 사용 편의성 검증조차 없었기 때문이라고 생각합니다. 용역을 주고 디자이너, 개발자 맘대로 만들게 해서도 안되고 전문가의 형식적인 자문으로 넘어가서도 안됩니다. 실제 사용 맥락에서 실제 사용자를 대상으로 한 사용성 평가, 검수 절차를 개발 규정에 포함 시켜야 합니다.
업데이트 1.
현재 정렬 방식은 권역별 정렬을 고려한 것인가?
덕분에 앞두자리 숫자로 대강의 운행 노선을 예상할 수 있습니다. 이론적으로 앞 두자리 권역이 일치하면 비슷한 노선을 운행할 가능성이 큽니다. 그래서 번호 순으로 정렬하면 자연스레 비슷한 구간 노선끼리 그룹핑이 됩니다. 하지만 동일 지역을 운행해도 그것이 버스의 도착지일 수도 출발지 일 수도 있기때문에 번호 순 정렬을 통해 같은 지역 버스가 항상 묶이는 것은 아닙니다.
2권역에서 다른 권역으로 운행하는 버스의 경로. 현 정류장에서 부터의 경로만 표시하고 중복 경로 제거.
같은 자리수인 간선, 지선 끼리는 숫자 정렬이나 문자열 정렬 상관없이 동일 권역으로 묶여 소팅 됩니다. 다만 앞 두자리 권역별로 소팅하면 내가 가려는 목적지에 같은 권역의 간선, 지선 버스가 있을때 무리지어 나오므로 편리합니다. Binseop Ko님이 댓글로 알려주신 사례가 그렇습니다. 그래서 주로 이용하는 버스가 정보안내판에 묶여서 표시되고 있었던 분들은 현재의 문자열 정렬 방식이 보다 유용하다고 느끼셨을 겁니다.
지선과 간선버스가 동일 노선을 공유하는 경우
그런데 실제로는 이런 사례가 많지 않습니다. 작년에 여러 버스가 많이 몰리는 주요 정류장 들을 샘플링하여 조사해 봤는데요.(정류장 기반 노선도 이용) 이렇게 간선과 지선이 노선을 공유하는 경우가 드물었습니다. 우선 보통 큰 정류장은 중앙차로 정류장으로 지선버스가 정차하지 않는 경우가 많아 노선을 공유해도 같이 표출되는 경우가 줄어듭니다. 위처럼 목적지가 같더라도 두번째 도착지권역이 같은 경우는 묶이지 않습니다. 아래처럼 같은 권역이라도 실제로는 넓은 지역이라 같은 노선을 공유하지 않는 경우가 많습니다. 노선을 공유해도 모든 구간이 일치하는게 아니라 일부 구간이 겹치는 경우가 대부분입니다.
그래서 문자열 정렬로 내 목적지의 지선,간선 버스가 묶여서 표시되는 혜택을 보는 사용자 보다는 그렇지 않은 사용자가 훨씬 많게 됩니다. 이론적으로는 권역별 정렬을 하는 것이 장점이 있을 것 같지만 실제로 그런 경우는 일부이고 익숙치 않은 순서로 오히려 헷갈려하는 사용자가 더 많을 것입니다. 오히려 반대로 목적지와는 관계 없는 버스가 순서에 끼어드어 잡음으로 보일 수 있고요.
디자인을 하면 항상 이런 사용자간의 편익 차이가 생기기 때문에 퍼소나 방법을 사용해 어떤 사용자에게 보다 집중할 것인지 결정을 내리게 됩니다. 그래서 쉽게 숫자 순이 더 좋은 선택이라고 주장했던 것인데요. 어떻게 되었건 현재 방식으로 혜택을 받고 있는 사용자들이 있고 이것을 바꾸게 되면 다시 불편해 질 수 있기 때문에 간단치는 않다고 생각합니다. 실제 의사 결정을 해야하는 담당자라면 결론으로 썼던 것처럼 다양한 실제 사용자의 의견(사용성평가)을 듣고 더 많은 고민을 해주시길 바랍니다.
암튼 그래서 현재 방식은 이런 권역별 정렬을 고려한 것이었을까요? 그렇지 않습니다. M6427은 동일한 번호인 6427과 거의 같은 노선을 운행하는 광역급행버스입니다. 하지만 이 두 버스는 묶여 표시되지않고 문자열 정렬로 인해 멀리 떨어져 있습니다.
추가 업데이트 2. 1027.4.18
서울시 응답소 민원 답변을 받았습니다
글을 쓴 이유는 사실 화가 나서이기도 하지만 :) 단순히 불만을 토로하려는게 아니라 개선이 꼭 되기를 바랐기 때문인데요. 민원을 요청하기 전에 내용을 정리하려는 목적이었습니다. 트위터를 @seoul_eds 통해 민원을 접수하고 답변을 받았습니다.
현재 서울특별시 교통정보과에서 설치한 1200여대의 BIT(가로변정류소 독립형, 중앙정류소 승차대 걸이형)와, 2014년에 민간회사인 KT가 설치한 2000여대의 BIT(가로변정류소 승차대 걸이형)가 있다고 합니다.
1. 번호순 정렬
검토를 중 이라고는 하지만 조금 부정적인 듯 하네요 :) 하지만 2,3이 반영되면 크게 문제되지 않을 수 있을 것 같습니다.
2. N정렬
원래 N정렬이 원칙이고 일부 Z정렬되는 BIT가 확인되어 일제조사를 통해 N정렬로 교체 추진계획이라고 합니다.
3. 곧도착 정보 개선
정보불일치 문제로 채택하지 않는다고 답변 주셨습니다.
그런데 설명이 잘 이해가 되지 않습니다. 도착시간이 실시간 정보가 아니어서 상단에 계산된 예측 도착시간을 표시하면 실제 도착 시간과 일치하지 않아 문제가 될 수 있다는 것 같습니다. 그래서 도착 시간을 부정확한 예측 시간이 아니라 "곧도착"으로 표기하면 된다는 것이었는데요. 다시 확인해 보도록 하겠습니다.
담당자님, 의견 들어주시고 개선을 위해 수고해 주셔서 고맙습니다.
추가 업데이트 3. 2017.5.22
정류장 BIS 개선 반영되었습니다
추가 업데이트 4. 2021.3.19
도착 시간 목록 표출 방식이 개선되었습니다.
도착 버스 목록에는 곧 도착 버스를 누락해서 내가 타야 할 버스의 표시 위치가 매번 바뀌었습니다. 매번 어디 있는지 찾아야해 불편했는데요. 오늘 보니 곧도착과 상관없이 모든 버스를 표시해 항상 같은 위치에 보여지도록 바뀌었습니다.
다만 아쉬운 점은 도착 시간 표시 영역에는 곧 도착이 아닌 다음 도착 버스 시간을 표시합니다. 운이 나쁘면 곧 도착할 버스인데도 도착 시간을 보고 아직 여유가 있다고 생각해 딴짓을 하다가(보통 폰을 보죠) 버스가 온지 모르고 지나쳐버릴 수 있습니다. 곧 도착 영역은 스크롤이 되니 가려서 안 보일 수도 있고요. 작년에 선보인 전자종이형 버스처럼 곧 도착으로 표시했으면 좋았겠습니다. 아무튼 점점 개선이 되고 있어 버스 승객으로써 고맙습니다
트위터에 시티스케이프님이 올려주신 사진
[참고##정보디자인##]