내 코드용 Carbon Footprint 트래커를 만들었습니다 (Electron 사용?!) 🍃
Source: Dev.to
문제: 보이지 않는 배출량 ☁️
개발자는 최적화에 집착합니다. 우리는 코드의 시간 복잡도($O(n)$), 메모리 누수, 번들 크기를 프로파일링합니다.
하지만 보통 무시하는 지표가 하나 있습니다: 탄소 집약도. 무거운 빌드를 실행하거나 Docker 컨테이너를 띄우거나 모델을 학습시킬 때마다 전력을 사용합니다. 당신이 사는 지역(그리고 그 지역 전력망의 석탄 대 재생에너지 비율)에 따라 그 전력에는 탄소 비용이 따릅니다.
실시간으로 그 비용을 보고 싶어서 CarbonLint를 만들었습니다.
해결책: CarbonLint
CarbonLint는 개발 환경의 에너지 사용량을 모니터링하고 워크플로우의 CO₂ 배출량을 추정하는 오픈소스 데스크톱 앱입니다. 다음과 같은 질문에 답하는 데 도움을 줍니다:
- “지난 CI/CD 실행에서 발생한 CO₂는 얼마인가?”
- “현재 내 로컬 전력망이 친환경적인가, 아니면 무거운 작업을 실행하기 전에 기다려야 할까?”
앱은 Electron, React, Vite로 구축되었습니다.
아키텍처
백엔드
systeminformation와node-powershell을 사용해 원시 시스템 메트릭(CPU, 메모리, 네트워크)을 가져옵니다.
계산
- 지역 전력망 강도 팩터를 적용해 원시 kWh를 gCO₂로 변환합니다.
- 가장 어려운 부분은 정확한 지역 데이터를 확보하는 것이었으며, 앱은 사용자의 위치에 맞는 전력망 강도 값을 가져와 캐시합니다.
프론트엔드
- 에너지 사용량과 배출량을 시각화하기 위해 React + Chart.js를 사용합니다.
기여
계산 모델을 개선하고 더 많은 지역을 지원하도록 도와줄 기여자를 찾고 있습니다.
레포지토리:
기술 스택
- Electron
- React
- TailwindCSS
피드백 요청
그린 소프트웨어 엔지니어링에 관심이 있다면 여러분의 피드백을 듣고 싶습니다!
댓글로 알려 주세요: 코드의 에너지 사용량을 추적하고 있나요?