12시간 만에 AI 기후 의사결정 엔진 구축하기

대부분의 탄소 발자국 앱은 실패합니다.

그들은 숫자만 보여주거나 일반적인 조언만 제공합니다. 인지하는 것만으로는 행동을 바꿀 수 없습니다. 탄소 발자국이 8톤이라는 사실을 아는 것만으로는 다음에 무엇을 해야 할지 알 수 없습니다.

저는 이 문제를 해결하기 위해 Climbit을 만들었습니다. 이것은 계산기가 아닙니다. 의사결정 엔진입니다. 이 엔진은 단 하나의 질문에 답합니다: "지금 당장 내가 할 수 있는 최선의 행동은 무엇인가?"

핵심 로직

대부분의 도구는 측정에 집중하지만, Climbit은 의사결정에 집중합니다. 이 시스템은 다음 항목들을 분석합니다:

  • 출퇴근
  • 가정 에너지
  • 음식 및 식단
  • 여행

탄소 감축량, 비용, 노력, 그리고 관련성을 기준으로 행동의 우선순위를 매깁니다.

엔지니어링 분리

저는 중요한 선택을 했습니다. 수학적 계산과 AI를 분리한 것입니다.

거대 언어 모델(LLM)은 수학에 취약합니다. 숫자를 환각(hallucinate)하기도 하죠. Climbit에서 AI는 배출량을 직접 계산하지 않습니다.

워크플로우는 다음과 같습니다:

  1. 텍스트, 음성 또는 영수증 이미지를 통해 데이터를 제공합니다.
  2. Gemini가 데이터를 구조화된 JSON으로 추출합니다.
  3. TypeScript 엔진이 실제 수학적 계산을 수행합니다.
  4. AI가 결과를 해석하여 개인 맞춤형 계획을 제공합니다.

이를 통해 데이터의 정확성을 유지하면서도 개인화된 경험을 제공할 수 있습니다.

기술 스택

  • Next.js 15 and React 19
  • TypeScript and Tailwind CSS
  • Supabase and Clerk
  • Google Gemini 1.5 Flash
  • Vitest and Playwright

실제 문제 해결하기

이를 구축하기 위해서는 까다로운 기술적 문제들을 해결해야 했습니다:

  • Hydration: Recharts가 서버 렌더링 중에 오류를 일으켰습니다. 클라이언트가 마운트될 때까지 차트 렌더링을 지연시키는 방식으로 이를 해결했습니다.
  • 보안: 토큰 버킷(token bucket) 방식의 속도 제한기(rate limiter)를 구현했습니다. 이를 통해 비용이 많이 드는 AI 엔드포인트를 남용으로부터 보호합니다.
  • 접근성: 시맨틱 HTML과 ARIA 레이블을 사용했습니다. 접근성은 사후 고려 사항이 아니라 필수 요구 사항입니다.

교훈

AI는 코딩 속도를 높여주지만, 아키텍처를 대체하지는 않습니다.

저는 대부분의 시간을 다음 작업에 쏟았습니다:

  • Hydration 문제 해결.
  • 엣지 케이스 검증.
  • 보안 강화.
  • 신뢰성 향상.

데모와 제품의 차이는 바로 이러한 디테일에 있습니다. 사람들에게 필요한 것은 더 많은 기후 데이터가 아니라, 더 나은 기후 의사결정입니다.

Source: https://dev.to/divyanshu_sinha_72e579e28/-building-climbit-an-ai-climate-decision-engine-in-under-12-hours-3pnc

Optional learning community: https://t.me/GyaanSetuAi