<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DenseNet121 | Sieun Kim Portfolio</title><link>https://siuunni.github.io/tags/densenet121/</link><atom:link href="https://siuunni.github.io/tags/densenet121/index.xml" rel="self" type="application/rss+xml"/><description>DenseNet121</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>ko-kr</language><lastBuildDate>Fri, 05 Dec 2025 00:00:00 +0000</lastBuildDate><image><url>https://siuunni.github.io/media/icon_hu_1c0e9cb08cfb822a.png</url><title>DenseNet121</title><link>https://siuunni.github.io/tags/densenet121/</link></image><item><title>지역별 태양광 발전량 예측 및 운영 솔루션</title><link>https://siuunni.github.io/projects/solar-ev-solution/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><guid>https://siuunni.github.io/projects/solar-ev-solution/</guid><description>&lt;div style="display:grid;grid-template-columns:130px 1fr;gap:1rem 1.5rem;margin-bottom:2rem;"&gt;
&lt;div style="font-weight:700;"&gt;개요&lt;/div&gt;
&lt;div&gt;전국 17개 지역의 태양광 발전량을 예측하고, 패널 상태 진단 및 수익 예측을 제공하는 운영 솔루션을 개발한 프로젝트입니다.&lt;/div&gt;
&lt;div style="font-weight:700;"&gt;대회·과정&lt;/div&gt;
&lt;div&gt;K-Software Empowerment BootCamp (KSEB) 3기 — 신세계 I&amp;C 기업협력 프로젝트 (팀 5명)&lt;/div&gt;
&lt;div style="font-weight:700;"&gt;담당 역할&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;팀장(PM) · 모델링 총괄&lt;/strong&gt; — 일정,역할 관리부터 전체 예측 모델링(날씨·발전량·패널 분류) 설계·구현을 담당&lt;/div&gt;
&lt;div style="font-weight:700;"&gt;데이터&lt;/div&gt;
&lt;div&gt;전국 17개 지역 태양광 발전량·날씨 관측·예보 데이터 (2017–2023, 공공데이터포털·기상자료개방포털)&lt;/div&gt;
&lt;div style="font-weight:700;"&gt;기술 스택&lt;/div&gt;
&lt;div&gt;Python · LightGBM · scikit-learn · TensorFlow/Keras · FastAPI · Streamlit · MySQL · AWS(EC2·RDS)&lt;/div&gt;
&lt;div style="font-weight:700;"&gt;성과&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;발전량 예측 RMSE ~10% 개선&lt;/strong&gt;, &lt;strong&gt;패널 상태 분류 정확도 85%&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="문제-정의"&gt;문제 정의&lt;/h2&gt;
&lt;p&gt;태양광 발전은 효율이 약 12%로 수력(80 ~ 90%),화력(45 ~ 50%),원자력(30 ~ 40%)에 비해 낮고, &lt;strong&gt;일사·일조·적운·적설 등 날씨에 크게 좌우&lt;/strong&gt;되어 발전량이 일정하지 않습니다. 재생에너지 3020 정책으로 발전소가 급증하는 가운데, 안정적 운영과 전력 거래를 위해서는 &lt;strong&gt;지역별 발전량 예측&lt;/strong&gt;이 필수적입니다.&lt;/p&gt;
&lt;p&gt;이 프로젝트는 전국 17개 지역의 태양광 발전량을 예측하고, 패널 상태 진단를 제공하는 운영 솔루션을 목표로 했습니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="시스템-구조"&gt;시스템 구조&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;왜 날씨를 먼저 예측하고, 그 예측값으로 발전량을 예측했나?&lt;/strong&gt;
태양광 발전량은 일사량·일조시간 같은 &lt;strong&gt;관측 날씨&lt;/strong&gt;에 의해 결정됩니다. 그런데 우리가 알고 싶은 건 &lt;em&gt;미래&lt;/em&gt;의 발전량이고, 미래의 관측 날씨는 아직 존재하지 않습니다. 따라서 &lt;strong&gt;① 기상 예보로 미래의 관측 날씨를 먼저 예측 → ② 예측된 날씨로 미래 발전량을 예측&lt;/strong&gt;하는 2단계 구조를 설계했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;왜 패널 상태 분류까지 만들었나?&lt;/strong&gt;
발전량을 아무리 정확히 예측해도, 현장의 패널이 먼지,새똥,손상 등으로 제대로 관리되지 않으면 실제 발전량은 예측을 따라가지 못합니다. 따라서 예측을 &lt;strong&gt;운영·관리 시스템의 일부&lt;/strong&gt;로 완성하기 위해, 발전량이 예측보다 낮을 때 혹은 미리 패널 상태를 진단해 관리할 수 있도록 패널 상태 분류 모델을 함께 만들었습니다.&lt;/p&gt;
&lt;p&gt;이 두 가지 이유로 아래 &lt;strong&gt;3단계 파이프라인&lt;/strong&gt;을 설계했습니다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;날씨 예측&lt;/strong&gt; — 기상 예보 데이터로 미래의 관측 날씨(일사·일조 등)를 예측&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;발전량 예측&lt;/strong&gt; — 예측된 관측 날씨로 지역별 태양광 발전량을 예측&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;패널 상태 분류&lt;/strong&gt; &lt;em&gt;(관리)&lt;/em&gt; — 발전량이 예측보다 낮을 때 패널 상태를 진단해 원인을 파악&lt;/li&gt;
&lt;/ol&gt;
&lt;figure style="margin:1.5rem 0;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_pipeline.png"
alt="예측 파이프라인 다이어그램"
style="width:100%;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.5rem;"&gt;
&lt;figcaption style="font-size:.8rem;color:#94a3b8;margin-top:.5rem;text-align:center;"&gt;
예보 → 관측 날씨 예측 → 발전량 예측으로 이어지는 파이프라인 (패널 상태 분류는 관리·진단)
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id="1-날씨-예측-모델"&gt;1. 날씨 예측 모델&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;목표:&lt;/strong&gt; 전날 17시에 발표되는 기상 예보를 입력으로, 다음날의 실제 &lt;strong&gt;관측 날씨&lt;/strong&gt;(일사,일조,습도,지면온도,기온,풍속 등)를 예측합니다. 발전량 예측의 입력이 되는 단계라 정확도가 전체 파이프라인의 토대가 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;기상청 매칭 &amp;amp; 변수 선별.&lt;/strong&gt; 발전소마다 위치가 다르므로, &lt;strong&gt;설비용량으로 가중한 위·경도&lt;/strong&gt;를 계산해 각 지역에서 가장 가까운 기상청을 매칭했습니다. 이후 발전량과 상관계수 절댓값 0.2 이상인 날씨 변수만 선별하고, 결측은 Random Forest 기반 반복 대치(Iterative Imputer)로, 전부 결측인 경우는 인접한 날짜 데이터로 보완했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;핵심 — 일사·일조량이 없는 지역의 직접 계산 + 구름 가중치 파생변수.&lt;/strong&gt;
일부 지역(울산,세종,경북 등)은 일사량 및 일조시간이 관측되지 않아, 발전량 예측의 가장 중요한 입력이 비어 있는 문제가 있었습니다. 이를 인접 지역 값으로 대체하면 정확도가 크게 떨어졌습니다. 그래서 &lt;strong&gt;물리적으로 직접 계산하는 방식&lt;/strong&gt;을 설계했습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;위·경도 + 시간으로 이론적 일사량 계산:&lt;/strong&gt; 태양의 고도 및 방위는 위경도와 시각으로 결정되므로, 이를 이용해 &lt;em&gt;맑은 하늘 기준&lt;/em&gt; 이론적 일사량과 일조시간을 직접 산출했습니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;구름 가림을 가중치로 반영:&lt;/strong&gt; 실제로는 구름이 햇빛을 가리므로, 그날의 하늘 상태를 가중치로 곱해 보정했습니다. 예보의 하늘 상태 코드별로 가중치를 부여했습니다.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;하늘 상태&lt;/th&gt;
&lt;th style="text-align: center"&gt;매우 맑음&lt;/th&gt;
&lt;th style="text-align: center"&gt;맑음&lt;/th&gt;
&lt;th style="text-align: center"&gt;구름 조금&lt;/th&gt;
&lt;th style="text-align: center"&gt;구름 많음&lt;/th&gt;
&lt;th style="text-align: center"&gt;흐림&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;가중치&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;1.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.8&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.5&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.3&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;→ &lt;strong&gt;조정된 일사량 = 이론적 일사량 × 하늘 상태 가중치&lt;/strong&gt; 로 파생변수를 생성해, 관측값이 없는 지역에서도 발전량 예측에 쓸 수 있는 입력을 확보했습니다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;모델 선택.&lt;/strong&gt; LSTM·LightGBM·XGBoost·Random Forest를 같은 데이터로 비교한 결과(서울 기준 RMSE), 기온,습도,일사량처럼 특성이 다른 변수들의 상호작용을 안정적으로 처리하는 &lt;strong&gt;Random Forest&lt;/strong&gt;가 가장 우수해 최종 채택했습니다. 학습에 한 번도 쓰지 않은 3일치 데이터에서도 일사 RMSE 0.1, 일조 RMSE 0.06으로 안정적인 성능을 보였습니다.&lt;/p&gt;
&lt;figure style="margin:1.5rem 0;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_weather_forecast.png"
alt="Random Forest 날씨 예측 결과 — 일사·일조·습도·지면온도·기온·풍속"
style="width:100%;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.5rem;"&gt;
&lt;figcaption style="font-size:.8rem;color:#94a3b8;margin-top:.5rem;text-align:center;"&gt;
학습에 사용하지 않은 기간의 날씨 변수별 실제(True) vs 예측(Predicted) 비교.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id="2-태양광-발전량-예측-모델"&gt;2. 태양광 발전량 예측 모델&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;입력 설계.&lt;/strong&gt; 1단계에서 예측한 관측 날씨에, 태양광이 시계열 특성을 갖는다는 점을 반영해 피처를 추가했습니다. 날짜 피처(연.월.일.요일)에 더해, 발전량이 전날의 발전량·날씨에 영향받는다는 사실을 담은 &lt;strong&gt;과거 발전량(lag)·이동평균&lt;/strong&gt; 시계열 피처를 생성했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;왜 군집화 후 군집별로 모델을 만들었나.&lt;/strong&gt; 같은 전국 데이터라도 일사량·일조시간 수준에 따라 발전 패턴이 크게 달라집니다. 하나의 모델로 전 구간을 학습하면 평균적인 패턴에 묻혀 버리므로, 발전에 영향이 큰 &lt;strong&gt;일사량·일조시간을 기준으로 K-means 군집화&lt;/strong&gt;(Elbow로 군집 수를 3개로 최적화)한 뒤 &lt;strong&gt;각 군집마다 별도의 LightGBM&lt;/strong&gt;을 학습시켜, 발전 강도대별로 특화된 예측이 가능하도록 했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;왜 LightGBM인가.&lt;/strong&gt; 대규모 데이터에서도 학습이 빠르고, 결측 처리와 다양한 변수의 비선형 상호작용에 강하며, 과적합 방지에 장점이 있어 복잡한 시계열 특성을 가진 태양광 발전량 예측에 적합했습니다.&lt;/p&gt;
&lt;figure style="margin:1.5rem 0;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_cluster_result.png"
alt="군집별 LightGBM 발전량 예측 결과 (Cluster 0·1·2)"
style="width:100%;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.5rem;"&gt;
&lt;figcaption style="font-size:.8rem;color:#94a3b8;margin-top:.5rem;text-align:center;"&gt;
일사·일조 수준으로 나눈 3개 군집(Cluster 0·1·2) 각각에 LightGBM을 적용한 실제(Actual) vs 예측(Predicted) 결과. 발전 강도대별로 특화 학습해 각 구간에서 예측이 실제를 잘 따라갑니다.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;결과 — 데이터 품질에 따라 예측 성능이 갈렸다.&lt;/strong&gt; 시계열 피처와 군집별 모델 적용으로 서울시 기준 &lt;strong&gt;RMSE 0.57 → 0.52, MAE 0.38 → 0.33&lt;/strong&gt; 로 예측력이 약 &lt;strong&gt;10% 향상&lt;/strong&gt;됐고, 강원도(RMSE 18.62 → 15.67, MAE 12.26 → 10.04) 등 다른 지역에서도 비슷한 개선을 확인했습니다. 다만 &lt;strong&gt;대전처럼 데이터 품질이 낮은(일사 및 일조량이 관측되지 않아 인접 지역 값으로 대체한) 지역에서는 모델이 충분히 학습하지 못해 예측 성능이 낮았습니다.&lt;/strong&gt; 즉 같은 모델이라도 입력 데이터의 품질이 예측 정확도를 좌우했으며, 이 한계가 1단계에서 일사량을 직접 계산·보정한 이유와 직접 연결됩니다.&lt;/p&gt;
&lt;figure style="margin:1.5rem 0;"&gt;
&lt;div style="display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;align-items:start;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_forecast_good.png"
alt="데이터 품질이 좋은 지역의 발전량 예측"
style="display:block;width:100%;height:auto;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.4rem;box-sizing:border-box;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_forecast_mid.png"
alt="중간 품질 지역의 발전량 예측"
style="display:block;width:100%;height:auto;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.4rem;box-sizing:border-box;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_forecast_bad.png"
alt="데이터 품질이 낮은 지역의 발전량 예측"
style="display:block;width:100%;height:auto;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.4rem;box-sizing:border-box;"&gt;
&lt;/div&gt;
&lt;figcaption style="font-size:.8rem;color:#94a3b8;margin-top:.5rem;text-align:center;"&gt;
학습에 사용하지 않은 기간의 실제(파랑) vs 예측(빨강) 발전량. &lt;strong&gt;데이터 품질이 좋을수록 예측이 실제와 거의 일치&lt;/strong&gt;하고, 품질이 낮은 지역일수록 오차가 커졌습니다.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id="3-태양광-패널-상태-분류"&gt;3. 태양광 패널 상태 분류&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;왜 만들었나.&lt;/strong&gt; 발전량을 정확히 예측해도, 패널이 먼지,새똥,손상 등으로 관리되지 않으면 실제 발전량은 예측을 따라가지 못합니다. 그래서 &lt;strong&gt;&amp;ldquo;예측 발전량 vs 실제 발전량&amp;quot;의 괴리를 진단하는 관리 도구&lt;/strong&gt;로, 패널 상태를 분류하는 모델을 만들었습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;모델.&lt;/strong&gt; 패널 이미지를 &lt;strong&gt;DenseNet121&lt;/strong&gt;로 6개 상태(정상,새똥,먼지,전기적 결함,물리적 손상,눈 덮임)로 분류했습니다. 적은 데이터에서도 잘 작동하는 구조라 선택했고, 데이터 증강으로 다양한 상황에 강건하도록 학습했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;결과.&lt;/strong&gt; 전체 정확도 &lt;strong&gt;75% → (정제 테스트셋) 85%&lt;/strong&gt; 를 달성했으며, 눈 덮임(Snow-Covered) 클래스는 F1 0.93으로 특히 높은 성능을 보였습니다. 학습 곡선에서 Loss가 안정적으로 수렴해 과적합 없이 학습이 잘 이뤄졌습니다.&lt;/p&gt;
&lt;div style="display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:stretch;margin:1.5rem 0;max-width:760px;"&gt;
&lt;figure style="margin:0;display:flex;flex-direction:column;"&gt;
&lt;img src="https://siuunni.github.io/uploads/papers/solar_panel_training.png"
alt="DenseNet121 학습 곡선 (Training Loss &amp; Accuracy)"
style="display:block;width:100%;height:auto;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#fff;padding:.5rem;box-sizing:border-box;"&gt;
&lt;figcaption style="font-size:.8rem;color:#94a3b8;margin-top:.5rem;text-align:center;"&gt;
학습 곡선 — Loss 안정 수렴
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div class="compact-table"&gt;
&lt;style&gt;
.compact-table { display: flex; }
.compact-table table { margin: 0; font-size: .82rem; height: 100%; width: 100%; }
.compact-table th, .compact-table td { padding: .15rem .5rem !important; line-height: 1.25 !important; border: none !important; }
.compact-table tbody tr { border: none !important; }
&lt;/style&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;클래스&lt;/th&gt;
&lt;th style="text-align: center"&gt;P&lt;/th&gt;
&lt;th style="text-align: center"&gt;R&lt;/th&gt;
&lt;th style="text-align: center"&gt;F1&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Bird-drop&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.68&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.85&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.76&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Clean&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.72&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.74&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Dusty&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.81&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.55&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.66&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Electrical-damage&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.71&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.79&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Physical-Damage&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.70&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.54&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Snow-Covered&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;strong&gt;0.89&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;strong&gt;0.96&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;strong&gt;0.93&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;Accuracy&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;strong&gt;0.75&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Macro avg&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.75&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.74&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Weighted avg&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.75&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.75&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.74&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="4-서비스화--배포"&gt;4. 서비스화 &amp;amp; 배포&lt;/h2&gt;
&lt;p&gt;예측 모델을 실제 사용 가능한 웹 솔루션으로 구현했습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;백엔드:&lt;/strong&gt; FastAPI + SQLAlchemy로 MySQL(AWS RDS)과 연동, 하루 한 번 &lt;strong&gt;배치 처리&lt;/strong&gt;로 지역별 예측을 미리 계산·저장&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;프론트엔드:&lt;/strong&gt; Streamlit으로 17개 지역 지도·발전량 그래프·기간별 예측 제공&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;수익 예측:&lt;/strong&gt; 예상 발전량에 SMP(계통한계가격)·REC(신재생에너지공급인증서)를 곱해 &lt;strong&gt;예상 수익 = (SMP + REC) × 발전량&lt;/strong&gt; 산출&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;배포:&lt;/strong&gt; AWS EC2(백엔드+Streamlit 통합 호스팅), RDS(MySQL)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="pm으로서의-기여"&gt;PM으로서의 기여&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;모델링 총괄:&lt;/strong&gt; 날씨 예측 → 발전량 예측 → 패널 분류로 이어지는 전체 ML 파이프라인을 직접 설계·구현했습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;일정·역할 관리:&lt;/strong&gt; 프론트엔드·백엔드·도메인 조사로 나뉜 5인 팀의 작업을 조율하고, 모델·서비스·배포가 한 흐름으로 통합되도록 관리했습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;확장 비전:&lt;/strong&gt; IoT·디지털 트윈과 결합한 AIoT 생태계로의 확장 방향을 제시했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- ---
## 링크
- [GitHub — AI/모델링](https://github.com/white9812/notimportant_ai)
- [GitHub — Web](https://github.com/statjhw/SunForecastWeb) --&gt;</description></item></channel></rss>