[Visualization] Plotly & Dash를 이용한 지능형 반도체 데이터 시각화 대시보드 구축: 실시간 공정 모니터링
반도체 엔지니어링에서 데이터 시각화는 단순히 '예쁘게 그리는 것' 이상의 의미를 가집니다. 수만 장의 웨이퍼에서 쏟아지는 데이터를 한눈에 파악하여 이상 징후(Anomaly Detection)를 즉시 발견하는 것이 목표입니다. 기존의 정적인 엑셀 차트로는 불가능했던 초거대 데이터셋의 탐색과 분석을, 파이썬의 Plotly와 Dash를 활용하여 웹 기반의 동적 대시보드로 구현하는 방법을 상세히 다뤄보겠습니다.
1. 왜 Plotly & Dash인가?
- Plotly: 자바스크립트 수준의 고성능 인터랙티브 차트를 파이썬 코드만으로 생성할 수 있습니다. 그래프의 특정 부분을 확대하거나 각 데이터 포인트의 상세 값을 마우스 오버로 즉시 확인할 수 있습니다.
- Dash: 복잡한 HTML/CSS 기반 웹 지식 없이도 파이썬만으로 분석용 웹 애플리케이션을 배포할 수 있는 프레임워크입니다.
2. 고해상도 공정 데이터 시각화 (Plotly)
다음은 특정 설비의 온도와 수율 사이의 상관관계를 다차원으로 분석하는 버블 차트 예제입니다.
import plotly.express as px
import pandas as pd
# 1. 공정 데이터 로드
df = pd.read_csv('process_yield_log.csv')
# 2. 다차원 시각화 (X: 공정 온도, Y: 수율, Size: 결함 개수, Color: 설비 ID)
fig = px.scatter(df, x="Tool_Temp", y="Yield_Pct",
size="Defect_Count", color="Chamber_ID",
hover_name="Wafer_ID", log_x=True,
title="Process Parameter vs Yield Analysis")
fig.show()
3. 실전: 인터랙티브 대시보드 구축 (Dash)
엔지니어가 대시보드 상단에서 특정 날짜나 특정 설비를 선택하면, 그에 해당하는 수율 분포가 즉시 업데이트되는 반응형 웹 앱을 구축해 보겠습니다.
from dash import Dash, dcc, html, Input, Output
import plotly.express as px
app = Dash(__name__)
# 대시보드 레이아웃 설계
app.layout = html.Div([
html.H1("J-Hub Semiconductor Yield Dashboard"),
# 1. 설비 선택 드롭다운
dcc.Dropdown(
id='chamber-dropdown',
options=[{'label': i, 'value': i} for i in df['Chamber_ID'].unique()],
value=df['Chamber_ID'].unique()[0]
),
# 2. 결과 그래프 영역
dcc.Graph(id='yield-graph')
])
# 3. 브라우저와 데이터 간의 지능형 연결 (Callback)
@app.callback(
Output('yield-graph', 'figure'),
Input('chamber-dropdown', 'value')
)
def update_graph(selected_chamber):
filtered_df = df[df['Chamber_ID'] == selected_chamber]
fig = px.histogram(filtered_df, x="Yield_Pct", nbins=20,
title=f"Yield Distribution for {selected_chamber}")
return fig
if __name__ == '__main__':
app.run_server(debug=True)
4. 전문가를 위한 분석 포인트: 다차원 인과관계 추적
지능형 대시보드는 단순히 수치를 보여주는 것에 그치지 않고 '왜 이 랏(Lot)의 수율이 낮은가?'에 대한 답을 줄 수 있어야 합니다. - 박스 플롯(Box Plot): 공정 설비 간의 산포 차이를 분석하여 장비 간 편차(Tool-to-Tool mismatch)를 확인합니다. - Par-coords (Parallel Coordinates): 수백 개의 공정 경로(Route)를 통과한 웨이퍼의 최종 수율을 연결하여 불량 유발 공정(Hot Spot)을 추적합니다.
5. 도입 효과
- 의사결정 가속화: 보고서 작성을 위해 데이터를 취합하는 8시간을 0분으로 단축.
- 직관적 이슈 파악: 정적인 수치 속에서는 보이지 않던 데이터의 '패턴'과 '아웃라이어'를 시각적으로 즉각 강조.
- 글로벌 협업: 웹 기반으로 팀원 누구나 최신 수율 상황을 공유하고 함께 분석 가능.
Tip: pip install dash pandas plotly 명령어로 시작할 수 있습니다. 여러분의 복잡한 공정 데이터를 이제 마우스로 탐험할 수 있는 지능형 지도로 변모시키세요! 📊🎨