버스에서 햇빛 피하기
매일 버스를 타고 출퇴근하면서 늘 비슷한 고민을 했습니다. 창가에 앉으면 강렬한 햇빛이 얼굴을 직격하는데, 반대편에 앉으면 그늘이 지죠. 문제는, 어느 쪽이 그늘인지 매번 판단하기가 어렵다는 겁니다. 해가 동쪽에 있을 때와 서쪽에 있을 때가 다르고, 버스 노선에 따라 이동 방향도 달라지니까요.
어느 날, 이걸 계산해주는 도구를 만들면 어떨까 싶었습니다. 간단해 보였습니다. 그리고 실제로 간단했습니다. 아마도.
태양이 어디에 있을까?
태양의 위치는 날짜, 시간, 그리고 현재 위치(위경도)에 따라 결정됩니다. 이를 계산해주는 SunCalc라는 JavaScript 라이브러리가 있습니다. 이 라이브러리에 현재 시각과 좌표를 넘기면 태양의 방위각(azimuth)과 고도(altitude)를 돌려줍니다.
버스는 어느 방향으로 달리는가?
출발지와 목적지 좌표를 입력받아, 두 점 사이의 방위각(bearing)을 계산합니다. 이 값이 버스가 향하는 방향입니다. 두 좌표 사이의 베어링은 삼각함수를 이용한 공식으로 계산할 수 있습니다.
그래서 어느 쪽에 앉아야 할까?
태양의 방위각과 버스의 진행 방향을 비교합니다. 태양이 버스의 오른쪽 90° 범위 안에 있으면 오른쪽 창가에 햇빛이 들고, 왼쪽 90° 범위 안에 있으면 왼쪽 창가에 햇빛이 듭니다.
결론은 단순합니다. 햇빛이 드는 쪽의 반대편에 앉으면 그늘입니다.
현재 서비스 현황
현재 서비스는 경기도 전 지역을 중심으로 제공됩니다. 사용자가 출발지와 도착지를 지도에서 선택하면, 현재 시각을 기준으로 햇빛이 드는 쪽을 알려줍니다.
사소해 보이는 불편함에서 시작한 첫 번째 실험이었습니다. 앞으로도 이런 작은 아이디어들을 계속 실험해보려 합니다.
직접 사용해보고 싶으신 분은 labs.bibong.dev/exp/001에서 확인하실 수 있습니다.