
가을 꽃놀이 딸깍, 언제 어디로 가야 하나 — 전국 62곳을 시간축에 얹었다
불꽃놀이는 제법 볼만했다. 근처에서 볼 수 있을 것 같아 제법 높은 곳으로 갔었는데, 역시나 사람이 바글바글했다. 사람이 모이면서 지도를 이용해서 할만한 것이 또 뭐가 있나 생각해보니 아침저녁으로 제법 쌀쌀한 가을이 시작되면 꽃놀이와 단풍 구경 만한것이 없다는 생각이 들었다. 이번에는 꽃과 단풍을 표시해보자.
9월 5일 오늘부터의 기상 예보를 계속 더하고, 지형·지도를 활용해 특정 시기에 관찰하기 좋은 꽃·식물이 모인 곳을 웹 검색으로 수집해서, 어느 시점에 어디서 뭘 볼 수 있는지 — 반대로 어떤 식물을 보려면 언제 어디로 가야 하는지 — 를 지도에 오버레이해줘.
요청은 매우 단순했다. 그냥 언제 어디로 가야 뭘 볼 수 있는지 보여달라는 수준. 날씨는 어차피 예측이나 예보 보다는 중계에 가까운 현실이니 주기적으로 참고해오는것만 하면 될 것 같았다.
무엇이 나왔나
슬라이더를 오른쪽으로 밀거나 재생 버튼을 누르면 시기별로 어떻게 다른지 직관적으로 볼 수 있다.
| 날짜 | 절정인 곳 |
|---|---|
| 9월 5일 | 3곳 · 봉평 메밀, 영광 불갑사 꽃무릇 |
| 10월 초 | 코스모스와 핑크뮬리가 한꺼번에 |
| 10월 22일 | 25곳 · 억새와 단풍이 겹치는 한 주 |
| 11월 초 | 남쪽 단풍과 늦국화만 남는다 |
가을은 생각보다 짧고 변화하는 속도가 매우 빠르다. 지역마다 은근히 편차가 커서 특정 시기에 어디를 가야 하는지 판단하기 쉽지 않은데 이런 지도를 이용하면 언제 뭘 보러 가야하는지 특정하기 쉽다. 지역 축제 일정 같은것도 조회할 수 있는것들을 추가했다. 물론 클로드 코드가 알아서 여기까지 쭉 계획해왔다. 얼추 생각한 것과 유사해서 놀랐는데,
62곳은 어떻게 모았나
이게 이번 건의 핵심이다. 지난번 불꽃축제는 위성 고도 데이터를 계산하는 일이었다. 이번에는 흩어져 있는 사실을 긁어모으는 일이었다.
네 갈래로 나눠 동시에 찾게 했다.
- 가을꽃 22곳. 코스모스·핑크뮬리·꽃무릇·구절초·국화·메밀·해바라기·천일홍
- 억새와 갈대 14곳. 하늘공원, 민둥산, 명성산, 영남알프스, 순천만
- 단풍 22곳. 설악에서 내장산까지
- 기상 전망과 열매 7곳. 청도 반시, 의령 코키아, 청송 사과
넷이 각자 찾아온 것을 합치니 중복이 나왔다. 아산 은행나무길, 명성산, 신불산은 여러 갈래에 걸쳐 있었다. 중복을 걷어내고 62곳이 남았다.
좌표는 확신도를 상·중·하로 나눠 표시했다. 이름만 나오고 정확한 위치를 못 찾은 곳이 있기 때문이다. 지어내는 것보다 모른다고 적는 편이 낫다.
올해 단풍은 늦다
절정 시기를 어림으로 적으면 지도가 거짓말이 된다. 그래서 근거를 찾게 했더니 산림청 2025 산림단풍 예측지도가 나왔다.
| 산 | 절정 |
|---|---|
| 설악산 | 10월 25일 |
| 속리산 | 10월 27일 |
| 내장산 | 11월 6일 |
| 가야산 | 11월 11일 |
은행은 평균 10월 28일. 그리고 올해는 최근 10년보다 나흘에서 닷새 늦다. 이유는 여름에 있다. 기상청 기록으로 올여름 평균기온이 25.7도로 역대 가장 높았고 강수량은 평년의 56퍼센트였다. 늦더위가 길면 단풍이 미뤄진다. 올해가 유난히 덥기는 더웠다. 이제 낮 최고 기온이 30도가 넘는 날이 없을것 같다는 예보가 있었던것 같은데, 당장 이번 주 예보도 30도가 넘는 날이 있더라.
어떻게 굴러가나
지도 위에 점을 찍는 것으로는 부족했다. 억새는 산 하나를 덮고 단풍은 산맥을 타고 내려온다. 그래서 번지는 그림으로 그렸다.
- 식물마다 실제 색을 하나씩 정하고, 그 색이 바깥으로 옅어지는 원을 겹쳐 그린다
- 겹치는 자리는 색이 더해져 밝아진다. 여러 종이 모인 곳이 저절로 도드라진다
- 번지는 반경을 갈래마다 다르게 줬다. 단풍이 가장 넓고 열매가 가장 좁다. 실제로 그렇게 퍼져 있어서다
- 절정일 앞뒤 이레에 걸쳐 밝기가 오르내린다. 하루아침에 켜졌다 꺼지지 않는다
여기에 작은 그림을 얹었다. 꽃잎, 억새 술, 단풍잎, 은행 부채꼴, 열매. 개화 강도에 비례해 뿌려지므로 절정인 곳일수록 촘촘하다. 껐다 켤 수 있다.
어디서 틀렸나
하나. 배경지도가 워터마크로 덮였다.
늘 쓰던 지도 타일을 불렀더니 화면 가득 「API KEY REQUIRED」가 박혀 나왔다. 무료로 쓰던 곳이 정책을 바꿨다. 다른 제공처로 갈아타 해결했다.
재미있는 건 1회차 불꽃축제 지도를 만들 때도 같은 함정을 밟았다는 점이다. 그때는 다른 제공처로 갔고 이번엔 또 다른 곳으로 갔다. 무료로 쓰던 것이 어느 날 조용히 유료가 되는 일은 생각보다 자주 일어난다. 라이센스 문제도 반드시 고려해야한다.
둘. 한 줄 때문에 화면이 통째로 멈췄다.
슬라이더가 아예 움직이지 않았다. 원인은 타임라인을 그리는 자리의 한 줄이었다.
document.getElementById('months', tl)
이 함수는 인자를 하나만 받는다. 두 개를 넘기니 엉뚱한 값이 나왔고, 그 뒤로 이어지던 코드가 전부 멈췄다. 슬라이더도 지도 갱신도 그 한 줄에 막혀 있었다. 줄을 지우자 나머지가 한꺼번에 살아났다. 사실 손으로 코드를 직접 작성하면 이런 문제는 거의 발생하지 않는다. 이런 것들로 낭비되는 토큰도 제법 많을 것 같다.
한 곳이 조용히 죽으면 그 뒤가 전부 안 도는 구조였다. 화면만 보고는 어디가 원인인지 알 수 없다.
셋. 색이 서로 헷갈렸다.
식물의 실제 색을 쓴다는 방침은 좋았는데, 막상 겹쳐놓고 보니 분홍 계열이 셋이었다. 코스모스, 핑크뮬리, 천일홍. 노랑 계열도 국화, 해바라기, 은행으로 셋. 지도에서 무슨 색이 무슨 꽃인지 구분이 안 됐다.
핑크뮬리를 보라로 빼는 것으로 풀었다. 실제 핑크뮬리는 분홍이지만 지도에서는 보라 쪽이 더 잘 읽힌다. 해바라기도 국화와 갈라놓았다.
사실에 충실한 색이 반드시 잘 읽히는 색은 아니다.
넷. 범례가 날짜를 가렸다.
식물 종류가 늘면서 왼쪽 목록이 길어져 화면 아래 날짜 표시를 덮어버렸다. 목록에 최대 높이를 주고 넘치면 스크롤되게 했다.
왜 한 줄로 되는가
지난 회에는 세 가지를 꼽았다. 공개 데이터가 이미 다 있다는 것, 형식의 벽이 낮아졌다는 것, 스스로 되짚는다는 것.
이번 건은 결이 조금 다르다. 이번에 필요했던 것은 조사였다.
네 갈래를 동시에 찾았다. 사람이 하면 순서대로 할 수밖에 없는 일을 넷으로 나눠 한꺼번에 돌렸다. 가을꽃을 찾는 동안 단풍도 억새도 같이 찾고 있었다.
근거를 요구하면 근거를 가져온다. "절정 시기를 적어라"가 아니라 "근거를 대라"고 하면 산림청 예측지도가 나온다. 이 차이가 지도의 값을 정한다. 어림으로 적힌 날짜는 아무 쓸모가 없다.
모르는 것을 모른다고 적게 할 수 있다. 좌표 확신도를 상중하로 나눈 게 그것이다. 62곳 전부를 확실한 척 찍었다면 그럴듯해 보였겠지만 믿을 수 없는 지도가 됐을 것이다.
따라 하려면
「언제」를 같이 물어라. 「어디」만 물으면 지도가 나오고, 「언제 어디」를 물으면 시간축이 생긴다. 두 번째가 훨씬 쓸모 있다.
반대 방향도 같이 물어라. 이번 요청에는 "반대로 어떤 식물을 보려면 언제 어디로"가 들어 있었다. 그 한마디 때문에 식물을 골라 되짚는 기능이 생겼다. 안 물었으면 안 나왔다.
숫자에는 출처를 요구하라. 날짜가 적힌 지도를 받았을 때 "이 날짜는 어디서 온 것이냐"를 묻는 것이 그 지도를 쓸 수 있게 만든다.
못 하는 것
기상 정보는 9월 5일에 멈춰 있다. 실시간으로 받아오지 않고 그 시점의 전망을 적어 넣었다. 날짜가 지날수록 어긋난다. 실시간으로 계속해서 업데이트 하는 기능은 여기서는 구현하지 않았다. 물론 이마저도 세상 쉽게 지속적으로 받아오게 할 수 있다.
절정 시기는 예측이다. 산림청 예측지도도 예측이고, 꽃 축제 일정은 주최 측 사정으로 바뀐다. 가시기 전에 그곳 공지를 확인하시라.
좌표가 정확하지 않은 곳이 있다. 확신도 하로 표시된 곳은 마을이나 산 이름까지만 맞다고 보시면 된다.
꽃이 피고 지는 것은 그해 날씨가 정한다. 이 지도는 평년과 올해 전망으로 그린 밑그림이지 약속이 아니다.
딸깍으로 재미있는 꽃놀이 하시길 바라겠다. 오늘은 여기서 마친다.