🐍 Python 융합과정 · 세특 탐구 활동
미국·이란 전쟁이 유가·환율에 미친 영향
Python으로 크롤링·시각화·분석까지
데이터 분석 보고서 완성하기
Python으로 크롤링·시각화·분석까지
데이터 분석 보고서 완성하기
2026년 2월 말 발발한 미국·이란 전쟁은 호르무즈 해협 봉쇄, 유가 급등, 글로벌 환율 변동으로 이어졌습니다.
이 현상을 Python으로 직접 데이터를 수집하고 시각화해서 분석하는 탐구 활동은
Python 융합과정 세특에 딱 맞는 주제입니다.
크롤링 → 데이터 정제 → 시각화 → 보고서 작성까지 전 과정을 함께 따라가 보겠습니다.
Step 01 · 시사 배경
🌍 왜 유가·환율 데이터인가? — 전쟁과 경제의 연결고리
중동 전쟁은 글로벌 에너지 시장과 직결됩니다. 호르무즈 해협은 전 세계 원유 수출량의 약 20%가 통과하는 길목으로,
봉쇄되는 순간 국제 유가가 급등하고 원화·엔화 등 아시아 통화가 즉각 반응합니다.
이 연쇄 반응을 데이터로 직접 확인하는 것이 탐구의 출발점입니다.
📰 MBC뉴스 · 2026.04.16
트럼프 "전쟁 거의 끝나" — 이란은 홍해 봉쇄 카드
이란군은 미국의 호르무즈 해협 봉쇄에 맞서 홍해 봉쇄를 언급했습니다.
홍해는 전 세계 해상 무역량의 약 10%가 통과하는 무역 거점으로,
실제 봉쇄가 이뤄지면 세계 경제의 타격이 불가피합니다.
🔗 기사 원문 보기 (MBC뉴스)
📰 민들레 · 2026.04.16
트럼프의 호르무즈 '역봉쇄'가 세계경제 더 옥죈다
미국이 4월 13일부터 모든 이란 항구에 대한 봉쇄를 시작했습니다.
원유 수입의 90%를 호르무즈 해협 경유에 의존하는 일본은 석유화학 제품 조달에 즉각 차질이 생겼고,
한국도 에너지 안보 위기에 직면했습니다.
🔗 기사 원문 보기 (민들레)
💡 탐구 핵심 질문: "미국·이란 전쟁 발발(2026.02.28) 전후로 국제 유가와 원/달러 환율은 얼마나,
어떤 패턴으로 변했을까? Python 데이터 분석으로 이를 수치로 증명할 수 있을까?"
Step 02 · 분석 로드맵
🗺️ 전체 분석 흐름 — 4단계 프로세스
이 탐구 활동은 아래 4단계로 진행합니다. 각 단계가 독립적인 Python 기술과 연결되어 있어
하나의 프로젝트로 여러 역량을 동시에 증명할 수 있습니다.
① 데이터 크롤링
Data Crawling
yfinance, pandas_datareader로 유가(WTI·브렌트유)와 원/달러 환율 데이터를 자동 수집합니다. requests + BeautifulSoup으로 뉴스 데이터도 함께 수집합니다.
② 시각화
Visualization
matplotlib, seaborn으로 시계열 그래프를 그리고, 전쟁 발발일에 수직선(axvline)을 그어 전후 변화를 직관적으로 표현합니다.
③ 상관관계 분석
Correlation Analysis
pandas, scipy로 유가와 환율 간 상관계수를 계산합니다. 회귀분석(LinearRegression)으로 유가 1달러 상승 시 환율 변화량을 수치화합니다.
④ 보고서 작성
Report Generation
분석 결과를 Jupyter Notebook으로 정리하고, 그래프 이미지와 수치 해석을 포함한 PDF 보고서를 자동 생성합니다.
STEP 1
환경 설정: pip install yfinance pandas matplotlib seaborn scipy scikit-learn jupyter 명령어로 필요 라이브러리를 설치합니다.
STEP 2
데이터 수집: yfinance로 WTI 원유(CL=F), 브렌트유(BZ=F), 원/달러(KRW=X) 데이터를 2025.11 ~ 2026.04 기간으로 다운로드합니다.
STEP 3
전처리: 결측값 처리(ffill), 날짜 인덱스 정렬, 전쟁 발발일(2026-02-28) 기준 전·후 구간 분리를 수행합니다.
STEP 4
분석 및 시각화: 시계열 플롯, 상관관계 히트맵, 회귀선 그래프를 생성하고 수치 해석을 작성합니다.
STEP 5
보고서 완성: Jupyter Notebook을 PDF로 내보내어 세특 증빙 자료로 활용합니다.
Step 03 · 핵심 코드
💻 Python 코드 완전 구현
📦 1단계 — 데이터 수집 (yfinance)
Yahoo Finance API를 활용해 원유 가격과 환율 데이터를 한 번에 수집합니다.
별도 API 키 없이 무료로 사용할 수 있어 학생 프로젝트에 최적입니다.
Python · 데이터 수집 (yfinance)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 미국·이란 전쟁 유가·환율 데이터 수집 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ import yfinance as yf import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates import seaborn as sns from scipy import stats import warnings warnings.filterwarnings('ignore') # 한글 폰트 설정 (Windows: malgun, Mac: AppleGothic) plt.rcParams['font.family'] = 'Malgun Gothic' plt.rcParams['axes.unicode_minus'] = False # 수집 기간 설정 (전쟁 발발 3개월 전 ~ 현재) start = '2025-11-01' end = '2026-04-21' WAR_DATE = '2026-02-28' # 전쟁 발발일 # 티커 정의 tickers = { 'WTI유가' : 'CL=F', # WTI 원유 선물 '브렌트유' : 'BZ=F', # 브렌트 원유 선물 '원달러환율' : 'KRW=X', # 원/달러 '엔달러환율' : 'JPY=X', # 엔/달러 } # 데이터 다운로드 data = {} for name, ticker in tickers.items(): df = yf.download(ticker, start=start, end=end, progress=False) data[name] = df['Close'].ffill().squeeze() # 결측값 앞값으로 채우기 # 하나의 DataFrame으로 합치기 df_all = pd.DataFrame(data) print(df_all.tail()) print(f"수집 완료: {len(df_all)}일치 데이터")
📈 2단계 — 시계열 시각화 (전쟁 전·후 비교)
전쟁 발발일을 붉은 수직선으로 표시해 유가와 환율이 어느 시점에 어떻게 변했는지 시각적으로 보여줍니다.
이 그래프 하나만으로도 전쟁의 경제적 충격을 직관적으로 전달할 수 있습니다.
Python · 시계열 시각화 (matplotlib)
# 전쟁 전후 유가·환율 시계열 그래프 fig, axes = plt.subplots(2, 1, figsize=(12, 8), sharex=True) fig.suptitle('미국·이란 전쟁 전후 유가 및 환율 변화', fontsize=15, fontweight='bold', y=1.01) # ① 유가 그래프 ax1 = axes[0] ax1.plot(df_all.index, df_all['WTI유가'], color='#f85149', linewidth=2, label='WTI 원유') ax1.plot(df_all.index, df_all['브렌트유'], color='#ffa657', linewidth=2, label='브렌트유', linestyle='--') ax1.axvline(pd.Timestamp(WAR_DATE), color='#ff7b72', linewidth=2, linestyle=':', label='⚠ 전쟁 발발 (2026.02.28)') ax1.set_ylabel('가격 (USD/배럴)') ax1.legend(loc='upper left') ax1.grid(True, alpha=0.3) ax1.set_facecolor('#0d1117') # ② 환율 그래프 ax2 = axes[1] ax2.plot(df_all.index, df_all['원달러환율'], color='#58a6ff', linewidth=2, label='원/달러 환율') ax2.axvline(pd.Timestamp(WAR_DATE), color='#ff7b72', linewidth=2, linestyle=':') ax2.set_ylabel('환율 (KRW/USD)') ax2.legend(loc='upper left') ax2.grid(True, alpha=0.3) ax2.xaxis.set_major_formatter(mdates.DateFormatter('%y.%m')) plt.tight_layout() plt.savefig('war_economy_analysis.png', dpi=150, bbox_inches='tight') plt.show()
📊 코드 실행 결과 — 미국·이란 전쟁 전후 유가·환율 변화 그래프
※ Python matplotlib으로 생성한 그래프입니다. 실제 yfinance 코드를 실행하면
동일한 형태의 실제 데이터 그래프가 출력됩니다.
🔢 3단계 — 상관관계 분석 (수치화)
그래프로 보이는 관계를 수치로 증명하는 것이 데이터 분석의 핵심입니다.
피어슨 상관계수와 선형 회귀로 유가와 환율의 관계를 정량화합니다.
Python · 상관관계 분석 (scipy + sklearn)
from sklearn.linear_model import LinearRegression import numpy as np # 전쟁 발발 이후 데이터만 추출 df_after = df_all[df_all.index >= WAR_DATE].dropna() # ① 피어슨 상관계수 계산 corr, pval = stats.pearsonr( df_after['WTI유가'], df_after['원달러환율'] ) print(f"피어슨 상관계수: {corr:.4f}") print(f"p-value : {pval:.4f}") print(f"통계적 유의성 : {'유의함(p<0.05)' if pval < 0.05 else '유의하지 않음'}") # ② 선형 회귀 — 유가 1달러 상승 시 환율 변화 X = df_after['WTI유가'].values.reshape(-1, 1) y = df_after['원달러환율'].values model = LinearRegression().fit(X, y) print(f"\n회귀 계수 : {model.coef_[0]:.2f}원/달러 per WTI $1") print(f"절편 : {model.intercept_:.2f}") print(f"결정계수 R²: {model.score(X, y):.4f}") # ③ 상관관계 히트맵 fig, ax = plt.subplots(figsize=(7, 5)) corr_matrix = df_after.corr() sns.heatmap(corr_matrix, annot=True, fmt='.3f', cmap='RdYlGn', center=0, ax=ax, linewidths=0.5) ax.set_title('전쟁 발발 후 유가·환율 상관관계 히트맵') plt.tight_layout() plt.savefig('correlation_heatmap.png', dpi=150) plt.show()
📊 예상 분석 결과 미리보기
📉 전쟁 발발 전후 변화율 예시 (실제 수치는 코드 실행 후 확인)
※ 위 수치는 일반적인 중동 분쟁 시 역사적 패턴 기반 예시입니다. 실제 값은 코드 실행 후 확인하세요.
Step 04 · 분석 결과 해석
📝 분석 결과를 보고서로 — 해석 포인트
Step 05 · 세특 작성 가이드
✏️ 생활기록부 세특 핵심 포인트
Python 데이터 분석 세특에서 가장 중요한 것은 "왜 이 데이터인가"의 동기와
"어떤 방법으로 분석했는가"의 구체성입니다.
1
시사 → 데이터 질문으로 전환 과정 서술
단순히 "전쟁 기사를 읽었다"가 아니라, "호르무즈 봉쇄 뉴스를 보고 실제로 유가가 얼마나 올랐는지 데이터로 확인하고 싶었다"는 방식으로 탐구 동기를 구체화하세요.
2
사용한 라이브러리와 방법 구체적 명시
yfinance, pandas, matplotlib, scipy, sklearn 등 사용한 라이브러리를 구체적으로 쓰고, 각 라이브러리로 무엇을 했는지 명시하면 기술 역량이 드러납니다.
3
수치 결과를 구체적으로 인용
"유가와 환율의 상관계수가 r=0.73으로 강한 양의 상관관계를 보였다", "WTI 유가가 $1 오를 때 원/달러 환율이 평균 X원 상승하는 회귀 모델을 도출했다"처럼 수치를 직접 인용하세요.
4
경제·사회 교과와의 융합 강조
Python 기술만이 아니라 "에너지 안보", "환율의 경제적 영향", "수입물가 연쇄 효과" 등 경제 개념과 연결하면 Python 융합과정의 취지를 잘 살릴 수 있습니다.
5
한계와 개선 방향으로 성찰 마무리
"Yahoo Finance 데이터의 한계로 실시간 데이터 반영이 늦을 수 있어, 향후 한국은행 공식 API나 EIA 데이터로 보완하고 싶다"는 식의 성찰이 세특을 완성합니다.
📝 세특 예시 문장
"미국·이란 전쟁 관련 호르무즈 해협 봉쇄 뉴스를 접하고, 이 사건이 실제 국제 유가와 원화 환율에 어떤 영향을 미쳤는지 Python으로 데이터를 수집해 분석하는 탐구 활동을 수행함. yfinance 라이브러리로 WTI 원유 선물 및 원/달러 환율 데이터를 수집하고, matplotlib·seaborn을 활용해 전쟁 발발일(2026.02.28)을 기준으로 전후 변화를 시계열 그래프로 시각화함. scipy를 이용한 피어슨 상관분석으로 유가-환율 간 상관계수를 계산하고, sklearn의 선형 회귀로 유가 변동이 환율에 미치는 영향을 수식으로 모델링함. 데이터 기반 분석을 통해 지정학적 사건이 에너지 시장과 외환시장에 미치는 연쇄적 파급 효과를 수치로 증명하고, 한국의 에너지 안보 취약성을 경제적 관점에서 고찰하는 통합적 사고력을 보임."
🏫 원당컴퓨터학원 Python 융합과정
단순 코딩을 넘어 실제 데이터로 세상을 분석하는 힘을 키웁니다.
Python 기초부터 데이터 분석·머신러닝·AI까지, 학생부 종합전형에 필요한
프로젝트 중심 수업을 진행합니다.
Python 기초부터 데이터 분석·머신러닝·AI까지, 학생부 종합전형에 필요한
프로젝트 중심 수업을 진행합니다.
📍 인천 서구 당하동 장원프라자 502호
📞 032-565-5497
🌐 wondangcom.com
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'학생부종합전형' 카테고리의 다른 글
| 포스텍(POSTECH) 2028학년도 입시, 뭐가 달라졌을까요? 🔬 (2) | 2026.04.28 |
|---|---|
| 교과서에 없는 개념으로 세특을 차별화하는 법 (4) | 2026.04.27 |
| 고3 학생부종합전형,지금부터 남은 7개월을어떻게 써야 할까요? (6) | 2026.04.22 |
| 미국·이란 전쟁 뉴스로 배우는드론 최적 경로 탐색 알고리즘BFS / 다익스트라 완전 정복 (8) | 2026.04.20 |
| 검단신도시 코딩학원 – 화학 세줄식, 제대로 쓰면 Python까지 연결됩니다 (6) | 2026.04.16 |