AI로 러닝(Learn) 내일을 향해 러닝(Running)

원당컴퓨터학원에서 배우는 AI, 세상을 향해 달리다

학생부종합전형

동아리 시간에 만든 태양전지 회로, 생기부에 이렇게 담을 수 있어요

원당컴1 2026. 4. 7. 12:18

동아리 시간에 만든 태양전지 회로, 생기부에 이렇게 담을 수 있어요

학종 준비 오픈채팅방에 이런 글이 올라왔어요.

"태양전지 관련해서 동아리에서 썼는데, 과학적 오류 있는지 봐주실 수 있으신 분?"

이 짧은 한 줄이 꽤 많은 걸 담고 있어요. 동아리 활동으로 태양전지를 다뤘고, 뭔가를 써서 제출했는데, 내용이 맞는지 확신이 없는 상황인 거죠. 이 학생처럼 동아리에서 태양전지나 회로 실험을 해본 경험이 있는데 생기부에 어떻게 담아야 할지 막막한 경우가 생각보다 많습니다.

오늘은 태양전지를 소재로 물리·화학 교과 세특과 코딩을 어떻게 자연스럽게 연결할 수 있는지 풀어볼게요.


태양전지, 사실 교과서 내용이에요

태양전지를 그냥 "햇빛 받으면 전기 생기는 것" 정도로만 알고 있다면 생기부에 깊이 있는 탐구를 담기 어렵습니다. 그런데 원리를 알고 나면 이야기가 완전히 달라져요.

태양전지의 핵심은 **광전효과(Photoelectric Effect)**입니다. 빛이 반도체 표면에 닿으면 광자(빛 입자)가 전자를 튕겨내고, 이 전자의 흐름이 전류가 되는 거예요. 아인슈타인이 노벨상을 받은 연구가 바로 이 광전효과 설명이었고, 고2 물리학에서 정식으로 다루는 내용입니다.

여기서 중요한 개념이 하나 더 있어요. 태양전지는 P형 반도체와 N형 반도체를 붙여놓은 PN접합 구조입니다. 이 경계면에서 전기장이 형성되고, 광전효과로 튕겨난 전자들이 이 전기장 방향을 따라 이동하면서 전류가 생겨요. 고2 물리학에서 배우는 반도체 단원이 정확히 이 내용을 다룹니다.

그리고 화학 쪽에서는 실리콘 반도체에 불순물을 첨가하는 도핑(Doping) 과정이 등장합니다. 순수 실리콘에 인(P)을 넣으면 전자가 남는 N형이 되고, 붕소(B)를 넣으면 전자가 부족한 P형이 됩니다. 이게 고2 화학에서 배우는 원자 구조, 화학 결합 개념과 연결돼요.


동아리에서 할 수 있는 실험이 이렇게 됩니다

태양전지 관련 동아리 실험이라고 하면 보통 "빛을 비추니까 전류가 흘렀다" 수준에서 끝나는 경우가 많아요. 그런데 거기서 한 발만 더 나가면 탐구의 질이 완전히 달라집니다.

측정해볼 수 있는 것들

빛의 세기(조도)를 달리하면서 발생 전압과 전류를 측정해보세요. 조도계가 없으면 광원과 태양전지 사이 거리를 변수로 쓰면 됩니다. 거리의 제곱에 반비례해서 빛의 세기가 줄어드는 역제곱 법칙도 함께 탐구할 수 있어요.

입사각도 중요한 변수입니다. 태양전지를 빛에 수직으로 놓을 때와 기울일 때 출력이 어떻게 달라지는지 측정하면, 코사인 법칙으로 이론값을 계산하고 실측값과 비교할 수 있어요.

태양전지에 서로 다른 색의 필터를 대고 빛의 파장에 따라 전류가 어떻게 달라지는지도 볼 수 있습니다. 짧은 파장(높은 에너지) 빛이 더 많은 전자를 튕겨낸다는 광전효과의 핵심 내용이 데이터로 확인되는 순간이에요.


아두이노로 데이터를 수집하고, 파이썬으로 분석하기

실험을 손으로만 하면 데이터가 몇 개 안 나와요. 아두이노에 조도 센서와 전압 측정 회로를 연결하면 실시간으로 연속 데이터를 수집할 수 있고, 이걸 파이썬으로 분석하면 전혀 다른 수준의 탐구가 됩니다.

 
 
python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy.stats import pearsonr

plt.rcParams['font.family'] = 'Malgun Gothic'

# 아두이노로 수집한 데이터 예시
# 실제 실험에서는 serial 통신으로 실시간 수집 가능
data = {
    '조도(lux)': [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000],
    '전압(V)':   [0.31, 0.42, 0.51, 0.58, 0.64, 0.69, 0.73, 0.76, 0.79, 0.82],
    '전류(mA)':  [12.1, 24.8, 37.2, 49.5, 61.3, 73.0, 84.2, 95.1, 105.8, 116.2]
}

df = pd.DataFrame(data)
df['전력(mW)'] = df['전압(V)'] * df['전류(mA)']
df['효율(%)'] = (df['전력(mW)'] / df['조도(lux)'] * 1000) * 100

# 상관관계 분석
corr_voltage, _ = pearsonr(df['조도(lux)'], df['전압(V)'])
corr_current, _ = pearsonr(df['조도(lux)'], df['전류(mA)'])

print("=== 태양전지 성능 분석 결과 ===")
print(f"조도-전압 상관계수: {corr_voltage:.4f}")
print(f"조도-전류 상관계수: {corr_current:.4f}")
print(f"\n최대 발전 전력: {df['전력(mW)'].max():.2f} mW")
print(f"평균 변환 효율: {df['효율(%)'].mean():.2f}%")

# I-V 곡선 시각화 (태양전지 핵심 특성 그래프)
fig, axes = plt.subplots(2, 2, figsize=(14, 10))

# 1. 조도 vs 전압
axes[0,0].plot(df['조도(lux)'], df['전압(V)'],
               'b-o', linewidth=2, markersize=8)
axes[0,0].set_xlabel('조도 (lux)')
axes[0,0].set_ylabel('개방 전압 (V)')
axes[0,0].set_title('조도에 따른 개방 전압 변화')
axes[0,0].grid(True, alpha=0.3)

# 2. 조도 vs 전류
axes[0,1].plot(df['조도(lux)'], df['전류(mA)'],
               'r-s', linewidth=2, markersize=8)
axes[0,1].set_xlabel('조도 (lux)')
axes[0,1].set_ylabel('단락 전류 (mA)')
axes[0,1].set_title('조도에 따른 단락 전류 변화')
axes[0,1].grid(True, alpha=0.3)

# 3. I-V 곡선 (태양전지 특성 곡선)
axes[1,0].plot(df['전압(V)'], df['전류(mA)'],
               'g-^', linewidth=2, markersize=8)
axes[1,0].fill_between(df['전압(V)'], df['전류(mA)'],
                        alpha=0.2, color='green')
axes[1,0].set_xlabel('전압 (V)')
axes[1,0].set_ylabel('전류 (mA)')
axes[1,0].set_title('I-V 특성 곡선')
axes[1,0].grid(True, alpha=0.3)

# 4. 조도 vs 출력 전력
axes[1,1].plot(df['조도(lux)'], df['전력(mW)'],
               'purple', linewidth=2, marker='D', markersize=8)
axes[1,1].set_xlabel('조도 (lux)')
axes[1,1].set_ylabel('출력 전력 (mW)')
axes[1,1].set_title('조도에 따른 출력 전력 변화')
axes[1,1].grid(True, alpha=0.3)

plt.suptitle('태양전지 성능 분석', fontsize=14, fontweight='bold')
plt.tight_layout()
plt.show()

# 입사각도에 따른 출력 변화 분석
angles = np.arange(0, 91, 10)
# 코사인 법칙 이론값
theoretical = 116.2 * np.cos(np.radians(angles))
# 실측값 (약간의 오차 포함)
np.random.seed(42)
measured = theoretical * (1 - 0.05 * np.random.randn(len(angles)))
measured = np.maximum(measured, 0)

fig2, ax2 = plt.subplots(figsize=(10, 6))
ax2.plot(angles, theoretical, 'b--', linewidth=2,
         label='이론값 (코사인 법칙)')
ax2.plot(angles, measured, 'r-o', linewidth=2,
         markersize=8, label='실측값')
ax2.fill_between(angles, theoretical, measured,
                 alpha=0.2, color='orange', label='이론-실측 오차')
ax2.set_xlabel('입사각도 (°)')
ax2.set_ylabel('전류 (mA)')
ax2.set_title('입사각도에 따른 태양전지 출력 변화')
ax2.legend()
ax2.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

# 오차율 분석
error_rate = abs(theoretical - measured) / theoretical * 100
print(f"\n=== 코사인 법칙 검증 결과 ===")
print(f"평균 오차율: {np.mean(error_rate[:-1]):.2f}%")
print(f"최대 오차율: {np.max(error_rate[:-1]):.2f}%")

이 코드를 실행하면 I-V 특성 곡선, 조도별 전압·전류 변화, 입사각도에 따른 출력 변화를 한 번에 시각화할 수 있어요. 특히 코사인 법칙으로 계산한 이론값과 실측값을 비교하는 부분은 "실험으로 이론을 검증했다"는 흐름이 만들어져서 탐구 보고서의 핵심이 됩니다.


교과 세특, 어떻게 연결할 수 있나요?

고2 물리학 세특

물리학에서 광전효과와 반도체 단원을 배우고 나서 자연스럽게 이어지는 소재예요.

물리학 수업에서 광전효과와 PN접합 반도체 원리를 학습한 후 태양전지의 실제 동작 원리를 실험으로 검증하고자 조도·입사각도를 변수로 설정하여 태양전지 출력 특성을 측정함. 입사각도에 따른 전류 변화가 코사인 법칙의 이론값과 일치함을 확인하고 아두이노 데이터 수집 시스템과 Python matplotlib을 활용해 I-V 특성 곡선을 시각화함. 실측값과 이론값 사이의 오차를 분석하여 반사 손실, 내부 저항 등 현실적 요인이 발전 효율에 미치는 영향을 보고서로 정리함.

고2 화학 세특

화학에서는 반도체 도핑과 원자 구조 측면에서 접근할 수 있어요.

화학 수업에서 원소의 전자 배치와 공유결합 구조를 학습하며 실리콘 반도체의 도핑 원리에 흥미를 느낌. 순수 실리콘에 인(P) 또는 붕소(B)를 첨가했을 때 N형·P형 반도체가 형성되는 과정을 전자 배치 관점에서 탐구하고, 이 원리를 기반으로 한 태양전지의 PN접합 구조를 Python으로 I-V 특성 곡선을 구현하여 이론값과 실험값을 비교 분석함. 도핑 농도와 발전 효율의 관계를 추가 조사하여 재료공학적 관점에서의 반도체 최적화 방향을 정리함.

동아리 세특

동아리 활동이라면 실험 과정과 팀원과의 협업을 함께 담을 수 있어요.

동아리 활동에서 태양전지 발전 시스템을 직접 제작하며 조도·입사각도를 변수로 설정한 실험을 설계하고 진행함. 아두이노와 센서를 활용한 자동화 데이터 수집 시스템을 구성하여 수기 측정의 한계를 극복하고, Python pandas와 matplotlib으로 수집 데이터를 분석·시각화함. 실험 결과 코사인 법칙과 평균 오차율 3% 이내에서 일치함을 확인하였으며, 오차 발생 원인을 팀원과 함께 토의하여 측정 시스템 개선 방안을 도출함.


심화 탐구 방향은 이렇게 잡을 수 있어요

기본 실험을 마친 뒤 진로에 따라 심화 방향이 달라집니다.

전기전자·에너지공학 계열이라면 여러 태양전지를 직렬·병렬로 연결했을 때 출력 변화를 분석하고 최대 전력점 추적(MPPT) 알고리즘의 원리를 탐구하는 방향이 있어요. 태양광 발전 시스템이 실제로 어떻게 효율을 최적화하는지 직접 시뮬레이션으로 구현할 수 있습니다.

신소재·화학공학 계열이라면 실리콘 태양전지의 한계를 넘는 페로브스카이트 태양전지, 양자점 태양전지 같은 차세대 소재를 탐구하는 방향이 좋아요. 공공데이터나 논문에서 효율 데이터를 가져다 Python으로 세대별 태양전지 효율 변화를 시각화하는 프로젝트로 연결됩니다.

컴공·AI 계열이라면 태양광 발전량 예측 모델을 만들어볼 수 있어요. 기상청 공공데이터에서 일조량·온도·습도 데이터를 가져와 머신러닝으로 발전량을 예측하는 프로젝트인데, Python 융합과정에서 배운 pandas, scikit-learn이 그대로 활용됩니다.


동아리 생기부에서 가장 많이 하는 실수

처음에 소개한 학생이 "과학적 오류 있는지 봐달라"고 한 데는 이유가 있어요. 태양전지 관련 탐구에서 자주 보이는 실수들이 있거든요.

광전효과와 광기전력 효과를 혼동하는 경우가 많아요. 태양전지에서 일어나는 건 정확히는 광기전력 효과입니다. 또 효율을 계산할 때 입사 광에너지와 출력 전력의 단위를 잘못 맞추는 경우도 있고요. I-V 곡선에서 개방 전압(Voc)과 단락 전류(Isc)의 정의를 반대로 기술하는 실수도 심심찮게 나옵니다.

탐구 보고서에 이런 개념들이 정확하게 쓰여있는지 한 번 점검해보는 게 좋아요. 개념 하나가 잘못 들어가면 뒤의 분석 전체가 흔들리거든요.

저희 원당컴퓨터학원 Python 융합과정에서는 이런 실험 데이터를 파이썬으로 분석하고 시각화하는 과정을 직접 다루고 있어요. 동아리 활동에서 실험은 했는데 데이터 분석을 어떻게 해야 할지 막막한 학생이라면 편하게 연락 주세요! 😊

📍 원당컴퓨터학원 인천시 서구 당하동 장원프라자 502호 ☎ 032-565-5497


#원당컴퓨터학원 #태양전지파이썬 #광전효과생기부 #PN접합반도체 #고2물리세특 #고2화학세특 #동아리세특 #학생부종합전형 #생기부세특 #아두이노데이터수집 #Python데이터분석 #I-V특성곡선 #태양광발전시뮬레이션 #인천코딩학원 #서구코딩학원 #당하동학원 #Python융합과정 #에너지공학생기부 #전기전자생기부

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
📌 원당컴퓨터학원 | 인천 서구 당하동 장원프라자 502호
📞 032-565-5497
🌐 홈페이지: www.wondangcom.com
💬 카카오 문의: 카카오톡 상담