당신의 전력, 어디에서 왔을까? 탄광 정보를 한눈에!
미국 내 전력 소비와 관련된 탄광 정보를 시각화하여, 소비자가 자신의 전력 사용이 탄광에 미치는 영향을 인지하도록 유도
Snowflake Cortex를 활용하여 자연어 처리(NLP) 기반의 질의응답 기능을 구현, 사용자가 탄광 관련 정보를 쉽게 검색
SvelteKit, FastAPI, Google Cloud Run 등 다양한 기술 스택을 활용하여 프론트엔드, 백엔드, 배포를 구축
공공 데이터(MSHA, EIA, EPA)를 기반으로, 탄광의 위치, 운영 정보, 사고 기록, 배출량 등 다양한 데이터를 통합하여 제공
Snowflake Marketplace를 통해 EPA 배출량 데이터를 간편하게 통합, 데이터 분석 및 시각화의 효율성을 높임
Snowflake Cortex를 활용한 자연어 질의응답(NL Q&A) 시스템
본문에서 Snowflake Cortex를 활용하여 사용자가 자연어(Natural Language)로 질문하면, 시스템이 이를 이해하고 관련 데이터를 검색하여 답변을 제공한다.
Cortex Analyst: 핸드 크래프티드(Hand-crafted) 시맨틱 모델(Semantic Model)을 기반으로, 사용자의 질문을 SQL 쿼리(SQL Query)로 변환
Llama3.3-70b: Cortex COMPLETE를 통해 탄광 관련 정보를 요약하는 데 사용되며, 지정된 형식(Specified Format)으로 텍스트 생성
데이터 접근 제어(Data Access Control): Cortex는 읽기 전용 권한(Read-only Role)을 가지며, SQL 인젝션(SQL Injection) 공격 방지를 위해 쿼리 실행 시간 제한 및 결과 수 제한 적용
결과적으로, Snowflake Cortex는 데이터 분석 및 시각화 기능을 강화하고, 사용자 친화적인 인터페이스를 제공하는 데 기여한다.
데이터 파이프라인(Data Pipeline) 구축 및 데이터 통합
프로젝트는 MSHA, EIA, EPA 등 다양한 공공 데이터를 활용하여, 탄광 관련 정보를 통합적으로 제공한다.
데이터 소스(Data Source): MSHA의 광산 정보, 분기별 생산량, 사고 보고서, EIA의 연료 수령 정보, 발전소 위치 정보, EPA의 배출량 데이터 등 다양한 데이터 세트(Dataset)를 활용
데이터 조인(Data Join): MSHA Mine ID 및 EIA Plant ID를 기반으로, 데이터 간의 관계(Relationship)를 설정하고 정보를 통합
Snowflake Marketplace: EPA 배출량 데이터를 Snowflake Marketplace를 통해 간편하게 통합하여, 데이터 수집 및 전처리(Data Preprocessing) 과정을 단순화
결론적으로, 데이터 통합(Data Integration)을 통해 사용자는 탄광의 위치, 운영 정보, 사고 기록, 배출량 등 다양한 정보를 한눈에 확인할 수 있다.
SvelteKit 기반 프론트엔드(Frontend) 아키텍처
본 프로젝트는 SvelteKit 2를 사용하여 사용자 인터페이스(UI)를 구축하고, Vite를 통해 빌드 및 번들링(Bundling)을 수행한다.
Scroll-driven Section Reveal: 사용자 스크롤(Scroll)에 따라 애니메이션(Animation)을 적용하여, 정보의 시각적 전달 효과를 극대화
Google Maps JavaScript API: Google Maps JavaScript API를 활용하여, 탄광 및 발전소 위치를 지도에 표시하고 시각적인 정보를 제공
Google Places API: Google Places API를 통해 주소 검색 기능을 구현하여, 사용자가 쉽게 원하는 정보를 검색
결과적으로, SvelteKit을 통해 사용자 친화적인 인터페이스를 구축하고, 다양한 API를 활용하여 풍부한 시각적 경험을 제공한다.
Snowflake를 활용한 데이터 분석 및 시각화
프로젝트는 Snowflake를 데이터 플랫폼으로 활용하여, 데이터 저장, 처리, 분석 및 시각화 기능을 구현한다.
H3 Hex Grid: H3 Hex Grid를 활용하여, 활성 및 폐광의 밀도를 시각적으로 표현하고, 지리 공간 데이터(Geospatial Data)를 분석
Snowflake Marketplace: Snowflake Marketplace를 통해 EPA 배출량 데이터를 통합하여, 데이터 분석 및 시각화의 효율성을 높임
Cost Dashboard: Snowflake Cost Dashboard를 통해 쿼리(Query) 성능을 모니터링하고, 비용 최적화(Cost Optimization)를 수행
결론적으로, Snowflake는 데이터 분석 및 시각화 기능을 강화하고, 데이터 기반 의사 결정(Data-driven Decision Making)을 지원한다.
배포 및 운영 환경: Google Cloud Run
프로젝트는 Google Cloud Run을 사용하여 애플리케이션을 배포하고, 자동 스케일링(Auto-scaling) 및 서버리스(Serverless) 환경을 구축한다.
FastAPI: FastAPI를 사용하여 백엔드 API를 구축하고, Google Cloud Run에 배포
Snowflake Key-pair: Snowflake Key-pair를 사용하여, 데이터베이스(Database)에 안전하게 접근
GCP Secret Manager: GCP Secret Manager를 사용하여, API 키(API Key) 및 비밀번호(Password) 등 민감한 정보를 안전하게 관리
결과적으로, Google Cloud Run을 통해 애플리케이션의 확장성(Scalability), 안정성(Stability), 유지보수성(Maintainability)을 확보하고, 운영 비용(Operating Cost)을 절감한다.