작은 웹 프로젝트를 하나 만들었습니다. 이름은 러닝하기 좋은 날입니다.
지금 있는 곳의 날씨와 대기질을 보고, 오늘 러닝하기 괜찮은지 빠르게 확인하는 웹 MVP입니다. 큰 서비스라기보다, 필요할 때 가볍게 열어보는 작은 도구에 가깝습니다.
이 프로젝트는 OpenAI의 Codex와 함께 만들었습니다. 기본적인 틀을 잡는 데에는 그리 오래 걸리지 않았습니다. 오히려 틀을 잡은 이후 작업이 더 오래 걸렸습니다. 디자인을 다듬어 보고, 실제로 로컬에서 돌려보면서 의도한 대로 작동하는지 확인하는 과정에 시간이 더 걸렸어요.

러닝하기 좋은 날은 왜 만들었나?
러닝을 나가기 전에 기온을 보고, 미세먼지 지수를 보고, 자외선 지수도 보고는 합니다. 각각 확인하는 게 어렵지 않은데, 이런 여러 지표들을 모아서 한 번에 판단하려다 보면 조금 귀찮기도 하고, 놓치는 게 생기기도 합니다.
그래서 필요한 정보를 한 화면에 모아두고, 지금 달리기 괜찮은지 빠르게 확인해 보고 싶었습니다. 정교한 분석보다는, 출발 전에 짧게 참고할 수 있는 정보를 확인해 보고 싶었어요.
그래서 어떤 문제를 해결하고 싶었나요?
러닝하기 좋은 날에서 해결하고 싶었던 지점음 판단에 드는 작은 피로감과 제가 주로 확인하는 정보를 놓치지 않고 보는 것 이었습니다. 앱을 여러 개 오가며 직접 종합해야 하는 과정을 덜어보고 싶었습니다.
러닝하기 좋은 날에서는 기온, 체감온도, 강수량, 초미세먼지, 미세먼지, 자외선 지수를 한 번에 보여주고, 결과는 '추천', '주의', '비추천'으로 정리해 봤습니다. 숫자를 길게 읽지 않아도 지금 상태를 빠르게 볼 수 있게 만들어 봤습니다.

데이터는 어디서 가져오나요?
이 제품은 오픈 메테오라는 오픈소스 API를 기반으로 작동합니다. 날씨와 대기질 데이터를 받아오고, 현재 위치를 기준으로 '기온', '체감온도', '강수량', 'PM2.5', 'PM10', 'UV' 값을 한 번에 확인하는 방식입니다.
중요했던 건 데이터를 많이 보여주는 것보다, 판단을 가볍게 만드는 일이었습니다. 그래서 세부 수치를 나열하는 데 그치지 않고, 러닝 적합도를 바로 볼 수 있게 했습니다.
만들면서 느낀 점
작업은 Codex를 활용해 바이브코딩 방식으로 진행했습니다. 대화창에 요구사항을 쓰고, 코드를 만들고, 테스트하면서 고쳐갔습니다.
이 과정을 거치면서, 아이디어를 실제로 작동하는 형태로 옮기는 진입 장벽이 꽤 낮아졌다는 걸 체감할 수 있었습니다. 빠르게 MVP 단계까지 만들어 볼 수 있었습니다.
바이브코딩이라고 해서 모든 게 딸깍 자동으로 끝나지는 않았습니다. 기본적인 틀은 빠르게 만들었지만, 의도한 모양대로 브라우저에 뜨고, 실제로 잘 작동하는 지는 계속 테스트가 필요했습니다. 테스트를 하다 보면 생각했던 것과는 다르게 움직이는 부분이 있어서 그 부분을 다시 수정해 달라고 요청하고, 고치고, 다시 확인하는 과정을 여러 차례 반복했습니다. 경우에 따라선 한참 수정한 사항을 뒤로 되돌리고 다시 시작하기도 했구요.
그러면서 방향을 잡는 일이 중요하다는 것도 느낄 수 있었습니다. AI는 계속해서 지금 진행 중인 작업을 개선하기 위한 선택지를 제안합니다. 그 제안을 아무 생각 없이 따라가다 보면 어느 순간 처음 생각했던 것과 멀어지기도 합니다. 그래서 시작할 때 무엇을 만들지, 어디까지 만들지에 대한 방향성을 확실하게 정해두는 게 필요하다고 느꼈습니다.

앞으로
러닝하기 좋은 날 프로젝트는 필요할 때 열어서 빠르게 참고할 수 있는 도구로 쓰이면 적당하다고 생각합니다. 러닝을 습관처럼 이어가는 사람에게 출발 전의 판단을 조금 덜어주는 도구로 활용되면 좋을 것 같습니다.
지금은 MVP 수준이라 아직 개선할 부분이 많이 있습니다. 위치와 지역 검색에 대한 정확도, 결과에 대한 정확도도 개선이 필요하고, 현재 상태뿐 아니라 내일의 예측값 같은 정보도 추가해보고 싶은 마음입니다.
그래도 일단은 작동하는 모양을 만드는 데까지는 성공했습니다. 앞으로도 조금씩 손볼 곳을 찾으면서 조금씩 다듬어볼 생각입니다.
.끝.