낚시일기 지도 위 물때 위젯에는 비어 있는 자리가 하나 있었습니다. "파고"라고 이름만 붙여 두고 데이터 소스를 못 정해서 비워 둔 칸입니다.
이번에 채웠습니다.
키가 필요 없는 것으로 골랐습니다
Open-Meteo의 해양 자료를 씁니다. 무료고 API 키가 필요 없습니다.
이 앱의 제약 중 하나가 "키가 하나도 없어도 전부 동작할 것"입니다. 유료 구독으로 시작하면 그 구독이 끊기는 날 기능도 끊깁니다. 개인이 쓰려고 만든 물건이 유지비를 요구하기 시작하면 오래 못 씁니다.
호출은 기존 서버 프록시를 그대로 지나갑니다. 이 앱은 외부 API를 전부 서버를 거쳐 부르는데, 클라이언트 번들에 키가 박히는 것을 막으려고 만든 길입니다. 키가 없는 API여도 같은 길로 보냅니다 — 예외를 하나 두기 시작하면 다음 API가 어느 쪽인지 매번 판단해야 합니다.
받아 오는 것은 파고, 너울, 파주기, 파향, 수온입니다. 내륙이거나 실패하면 아무것도 표시하지 않습니다.
경고는 이미 있던 모양을 따라갔습니다
파고가 높으면 위험합니다. 그런데 이 앱에는 바람 경고가 이미 있었습니다.
새 규칙을 만드는 대신 그 모양을 그대로 가져왔습니다. 파고와 너울 중 큰 값을 기준으로 1.0m부터 주의, 1.5m부터 위험. 색과 경고 표시가 바뀌는 방식도 바람 쪽과 같습니다.
같은 성질의 정보는 같은 모양으로 보여야 사용자가 두 번 배우지 않습니다.
화살표가 반대였습니다
파향을 화살표로 그렸습니다. 각도만큼 회전시키면 되는 간단한 일입니다.
그려 놓고 보니 이상했습니다. 파도가 육지에서 바다로 나가는 것처럼 보였습니다.
문서를 다시 읽었습니다. 이 값은 파도가 오는 방향입니다. 바람에서 흔히 쓰는 관례와 같습니다 — 북풍은 북에서 불어오는 바람이지 북으로 부는 바람이 아닙니다.
문서만 믿지 않고 실측으로도 확인했습니다. 같은 시각의 풍향과 파향을 세 항구에서 비교했습니다.
| 지점 | 풍향과 파향 차이 |
|---|---|
| 여수 | 13° |
| 부산 | 4° |
| 인천 | 6° |
바람이 부는 쪽에서 파도가 옵니다. 두 각도가 이만큼 가까우면 같은 관례로 적힌 값입니다. 문서와 실측이 같은 답을 냈습니다.
화살표를 180도 돌려 진행 방향을 가리키게 했습니다. 화살표는 "이쪽으로 간다"로 읽히는 기호라, 데이터의 관례가 아니라 사람의 직관을 따라야 합니다.
그래도 헷갈릴 수 있어서 글자를 붙였습니다
화살표만으로는 보는 사람이 "오는 쪽인가 가는 쪽인가"를 여전히 물을 수 있습니다. 물때 탭 카드에는 "북동에서" 처럼 오는 방향을 8방위 한글로 함께 적었습니다.
이러면 관례를 몰라도 됩니다. 화살표는 가는 쪽을 그리고, 글자는 오는 쪽을 말합니다. 둘이 반대를 가리키는 게 아니라 같은 사실의 두 표현이라, 어느 쪽으로 읽어도 답이 같습니다.
붙이고 나서 받은 지적들
만들고 나서 실제로 써 보니 나온 것들입니다.
위젯이 왼쪽 내비 버튼과 겹쳤습니다. 아래로 내렸습니다.
"너울"이 줄바꿈됐습니다. 파고·너울·파주기·파향을 한 줄에 몰아넣으니 글자가 잘렸습니다. 파고와 파주기를 한 행, 너울을 다음 행으로 나눴습니다.
물결 이모지가 흑백으로 나왔습니다. 기기마다 이모지 모양이 달라서 색이 없는 글꼴에서는 회색 덩어리가 됩니다. 아이콘 글꼴로 바꾸고 하늘색을 줬습니다. 경고 상태에서는 경고색으로 바뀝니다.
남는 것
파향 건은 문서를 읽고 끝냈으면 그대로 넘어갔을 문제였습니다. 각도 값이 들어오고 화살표가 돌아가니 코드로는 정상입니다. 틀린 것은 그 각도의 의미였고, 그건 화면을 보고 "이상한데" 하고 멈춰야 발견됩니다.
그리고 확인할 때 문서 하나로 끝내지 않은 게 나았습니다. 풍향과 비교하는 방법은 이 데이터와 무관한 다른 값으로 같은 사실을 재는 것이라, 문서가 틀렸어도 잡힙니다.