AquaStat 구축하기: 데이터 센터의 물 사용량을 추적하기 시작한 이유
요약
데이터 센터의 냉각에 사용되는 물 소비량을 추적하고 분석하는 API 중심 플랫폼 AquaStat의 구축 배경과 기술적 목표를 소개합니다. 흩어져 있는 환경 데이터를 수집하여 개발자와 연구자가 활용할 수 있는 투명한 데이터 생태계를 구축하고자 합니다.
핵심 포인트
- 데이터 센터의 물 사용량 정보를 수집·정리하는 API-first 플랫폼 구축
- TypeScript 기반의 현대적인 툴링과 강력한 API 문서화 지향
- 데이터 출처를 명확히 밝히는 투명한 방법론과 재현 가능한 계산 강조
- 다양한 공공 데이터 소스의 불일치 문제를 해결하기 위한 데이터 품질 관리
사람들이 데이터 센터를 생각할 때, 보통 서버, GPU, 전기, 그리고 AI를 떠올립니다.
물에 대해 생각하는 사람은 거의 없습니다.
그러한 깨달음이 저로 하여금 AquaStat을 구축하기 시작하게 만들었습니다.
왜 AquaStat인가?
현대의 데이터 센터는 냉각을 위해 상당한 양의 물을 소비합니다. 기술, 기후, 그리고 워크로드 (workload)에 따라 물 사용량은 시설마다 극적으로 다를 수 있습니다.
하지만 해당 사용량에 대한 신뢰할 수 있는 정보를 찾는 것은 종종 어렵습니다.
어떤 시설들은 자발적으로 지속 가능성 보고서 (sustainability reports)를 발행합니다. 다른 곳들은 제한된 정보만을 공개합니다. 많은 경우, 정보는 정부 문서, 환경 보고서, 지역 뉴스 기사, 허가증 또는 지역 사회 토론 등에 흩어져 있습니다.
저는 개발자, 연구자, 기자, 그리고 대중이 실제로 사용할 수 있도록 이 정보를 정리할 수 있는 플랫폼을 구축하고 싶었습니다.
AquaStat이란 무엇인가
AquaStat은 데이터 센터의 물 사용량과 관련된 정보를 수집, 정리 및 분석하는 데 중점을 둔 API-first 플랫폼입니다.
장기적인 비전에는 다음이 포함됩니다:
- 개발자 친화적인 REST API
- OpenAPI 문서
- API 키 관리
- 데스크톱 제어 센터
- 명령줄 인터페이스 (command-line interface)
- 이력 추적 (historical tracking)
- 수집된 정보에 대한 출처 표기
- 투명한 방법론
- 현대적인 TypeScript 생태계
계산 과정을 숨기기보다는, AquaStat이 가능한 한 정보가 어디에서 왔는지, 그리고 어떻게 결론에 도달했는지를 설명하기를 원합니다.
기술적 목표
저는 몇 가지 원칙을 바탕으로 AquaStat을 설계하고 있습니다:
API First
모든 것은 그래픽 인터페이스를 통해 공개되기 전에 문서화된 API를 통해 접근 가능해야 합니다.
강력한 문서화 (Strong Documentation)
문서화는 사후 고려 사항이 아니라 제품의 일부로 취급되어야 합니다.
재현 가능한 계산 (Reproducible Calculations)
AquaStat이 값을 추정하거나 도출할 때마다, 그 방법론은 이해 가능하고 반복 가능해야 합니다.
현대적인 툴링 (Modern Tooling)
이 프로젝트는 유지보수성(maintainability), 테스트(testing), 그리고 개발자 경험(developer experience)에 중점을 둔 현대적인 TypeScript 스택을 사용합니다.
도전 과제 (Challenges)
가장 큰 기술적 도전 과제 중 하나는 API 자체를 작성하는 것이 아닙니다.
바로 데이터 품질(data quality)입니다.
공공 정보는 다음과 같은 다양한 출처에서 옵니다:
- 환경 보고서 (Environmental reports)
- 정부 문서 (Government documents)
- 기업 지속가능성 보고서 (Company sustainability reports)
- 지역 뉴스 보도 (Local news coverage)
- 커뮤니티 토론 (Community discussions)
- 공공 데이터셋 (Public datasets)
이러한 출처들은 서로 일치하지 않는 경우가 많습니다.
AquaStat의 목표 중 하나는 모든 수치를 완벽하게 알고 있는 것처럼 가장하는 대신, 출처 귀속(source attribution)을 보존하는 것입니다.
정보를 검증할 수 없을 때는 사실로 제시하기보다 불확실한 것으로 식별해야 합니다.
배우고 있는 것 (What I'm Learning)
이 프로젝트를 통해 이미 다음과 같은 분야에 대해 더 많이 배우게 되었습니다:
- API 아키텍처 (API architecture)
- 데이터베이스 설계 (Database design)
- TypeScript
- 문서화 시스템 (Documentation systems)
- 배포 (Deployment)
- 인증 (Authentication)
- 결제 인프라 (Billing infrastructure)
- OpenAPI
- 개발자 툴링 (Developer tooling)
또한 프로젝트가 성장하기 시작할 때 좋은 문서화와 명확한 시스템 설계가 얼마나 중요한지 다시 한번 확인하게 되었습니다.
다음 단계는? (What's Next?)
현재 로드맵은 다음 사항에 집중하고 있습니다:
- 결제 및 API 키 시스템 완성
- 데이터 수집 워크플로 확장
- 데스크톱 컨트롤 센터 개선
- SDK 발행
- 지속적인 문서화 개선
- 개발자가 API를 더 쉽게 통합할 수 있도록 개선
마치며 (Final Thoughts)
AquaStat은 여전히 진화 중이며 활발히 작업되고 있지만, 이를 공개적으로(in public) 계속 구축해 나가는 것에 대해 매우 설렙니다.
진행 과정에서 아키텍처, 기술적 결정, 배운 점, 그리고 도전 과제들에 대해 더 많이 작성할 예정입니다.
API, 개발자 툴링, 환경 기술, 또는 오픈 소스 소프트웨어에 관심이 있으시다면 여러분의 피드백과 아이디어를 듣고 싶습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기