전자·EMS·PCB를 위한 Manufacturing Decision Intelligence
전자·EMS·PCB 공장은 제조업 가운데서도 데이터가 촘촘하게 쌓이는 현장이다.
EMS(Electronics Manufacturing Services)는 전자제품 위탁생산 산업, PCB(Printed Circuit Board)는 전자부품이 실장되는 인쇄회로기판을 뜻한다.
PCB 한 장이 생산되는 동안에도 여러 공정에서 데이터가 남는다. SPI(Solder Paste Inspection)는 납의 인쇄 상태를 측정하고, AOI(Automated Optical Inspection)는 카메라로 부품 실장 상태를 검사한다. BGA(Ball Grid Array)처럼 접점이 부품 아래에 있어 눈으로 확인하기 어려운 경우에는 X-RAY를 쓴다. 부품을 납땜하는 Reflow 공정에서는 구간별 온도도 기록된다.
하지만 데이터가 많다고 원인을 바로 찾을 수 있는 것은 아니다. 같은 제품이라도 Revision(설계·부품 변경 버전), 자재 Lot(같은 조건으로 생산·입고된 자재 묶음), Recipe, 설비 조건이 달라진다. 제품과 공정 조건이 자주 바뀌기 때문에 한 제품에서 발견한 이상 패턴을 다른 제품에 그대로 적용하기도 어렵다.

불량을 찾아내는 것만으로는 충분하지 않다. 정상 생산과 무엇이 달라졌는지, 같은 조건에 노출된 생산분이 어디까지인지 확인해 원인과 영향 범위를 특정해야 한다.
검사 장비와 MES는 이미 이상과 생산 이력을 잘 기록한다. 어려운 것은 흩어진 기록을 연결해 원인을 좁히고, 영향 범위를 확인한 뒤, 어떤 조치를 할지 판단하는 일이다.
HEARTCOUNT Decision Layer는 지표의 계산 기준뿐 아니라, 지표에 이상이 생겼을 때 무엇을 확인하고 어떤 기준으로 비교해 조치까지 이어갈지를 구조화하는 기술이다. 보험·유통·공공 등에 적용해 온 이 접근을 이번에는 제조 공정으로 확장했다. 실제 SMT 공정 구조를 바탕으로 합성 데이터를 만들고, BGA 불량 사례를 분석해 보았다.
BGA 불량 원인을 찾아 보니...
BGA(Ball Grid Array)는 반도체 패키지 아래에 격자 형태로 배치된 솔더볼을 통해 패키지와 PCB를 전기적·물리적으로 연결하는 실장 방식이다. 접합부가 패키지 아래에 가려져 있어 육안으로 확인하기 어렵기 때문에 생산 후 주로 X-Ray 검사를 통해 접합 상태를 확인한다. Reflow 공정의 온도 조건, 솔더 페이스트 인쇄 상태, PCB 및 부품의 자재 조건 등이 BGA 접합 품질에 영향을 줄 수 있다.
아래는 제조 데이터와 BGA 불량 분석 경로를 HEARTCOUNT Decision Layer에 구조화한 뒤, MCP를 통해 Claude에 ‘BGA 접합 불량률 상승 보고서’를 요청한 결과(영상과 보고서)다.
품질 이상 원인 분석 · 내부 보고
Zone 6 온도를 13℃ 높인 Recipe 변경 이후 불량률이 급등했다
8월 24일 불량률이 평소의 1.8배로 상승한 것은 설비 고장이 아니라, Zone 6 온도를 13℃ 높인 미승인 Recipe(V7) 적용과 연관되어 있었습니다.
조치 대상은 42장이며, 이 중 정상 판정으로 넘어간 36장이 재검사 검토 대상입니다.
01
배경
먼저, 리플로우 공정이 무엇인지
이번 사안을 이해하는 데 필요한 최소한의 개념만 정리했습니다.
02
무엇이
달라졌나
가장 유력한 원인은 Zone 6 온도를 13℃ 높인 미승인 Recipe
오븐은 여러 구간(Zone)으로 나뉘어 있고, 구간마다 온도를 다르게 설정합니다. 이 설정표를 Recipe라고 부릅니다. 이번 분석 대상 BGA 부품은 Zone 6의 열 영향을 받습니다.
기존 · 정상
Recipe V6
신규 · 문제
Recipe V7
Recipe 번호(RCP-P102-R3)와 컨베이어 속도가 같습니다. V7은 V6 대비 Zone 6 설정온도만 높아진 Recipe 버전입니다. 설정 232℃에 실측 232℃, 설정 245℃에 실측 245℃로 두 버전 모두 설정값을 정확히 따라갔습니다. 즉 오븐의 온도 제어는 정상이며, Recipe 설정 차이가 이상 발생과 연관됩니다.
03
확인
설비 고장이 아니라는 결정적 근거
8월 24일 하루를 시간대별로 쪼개 보면, 같은 시간대에도 Recipe에 따라 서로 다른 온도값이 관찰됩니다.
| 시간 | Recipe | Zone 6 실측 | 처리 장수 |
|---|---|---|---|
| 07시 | V6 | 232.0℃ | 74 |
| 07시 | V7 | 245.1℃ | 6 |
| 15시 | V6 | 231.9℃ | 74 |
| 15시 | V7 | 245.3℃ | 6 |
오븐이 고장 나서 과열됐다면 그 시간에 지나간 모든 기판이 함께 뜨거워야 합니다. 그런데 같은 시각, 같은 설비에서 V6 기판은 232℃, V7 기판은 245℃로 갈립니다. 온도를 결정한 것은 설비 상태가 아니라 어떤 Recipe가 적용되었는가입니다.
보조 근거로, V7의 온도 산포는 약 1℃ 범위로 매우 안정적입니다. 설비 제어에 이상이 있었다면 온도가 흔들리거나 시간에 따라 계속 올라가야 하는데, V7은 245℃라는 목표값에 정확히 제어되고 있습니다.
04
영향
범위
조치 대상은 42장
V7으로 처리된 기판 전량입니다. 작업지시 3건(WO-C-0031 · 0032 · 0033), Lot 3건에 걸쳐 있습니다.
42
V7 통과 기판
(총 노출 물량)
36
정상 판정 통과
재검사 검토 대상
6
불량 확정
(폐기 2 · 재작업 4)
0
미검사 잔량
(라인 보류 불필요)
36장이 왜 문제인가. 이 물량은 X-RAY 최초 검사를 통과해 정상품으로 판정됐습니다. 다만 X-RAY는 접합의 형상을 보는 검사라, 과열로 생긴 잠재 결함은 초기에 걸러지지 않고 나중에 드러날 수 있습니다.
같은 조건에서 42장 중 6장(14.3%)이 이미 명시적 불량으로 걸렸다는 점을 감안하면, 나머지를 그대로 두는 판단은 근거가 약합니다. 작업지시 3건이 모두 완료(COMPLETED) 상태라 라인 내 보류 대상 재공은 없으며, 이 건은 라인 정지가 아니라 사후 추적 및 회수 범위를 판단해야 하는 문제입니다.
05
조치
제안하는 순서
우선순위대로 정리했습니다.
V7 사용 즉시 중단
REFLOW-C-01을 V6로 되돌리고, 미승인 Recipe가 라인에 적용된 경위를 확인합니다.
정상 판정 36장의 현재 위치 파악 및 재검사
후공정 재고인지 이미 출하됐는지에 따라 회수 범위가 달라집니다. MES·WMS에서 확인이 필요합니다.
미승인 Recipe 투입 차단 룰 신설
가장 중요한 부분입니다. 아래 항목을 참고해 주십시오.
승인 상태는 데이터에 존재했지만 운영 통제에 활용되지 않았습니다.
시스템에는 이 Recipe가 승인 여부 = false로 정확히 기록돼 있었습니다. 그런데도 이틀에 걸쳐 양산 라인에서 실행되는 동안 어떠한 통제 절차에서도 차단되지 않았습니다. 이번 건의 물량은 42장으로 크지 않지만, 같은 경로로 훨씬 큰 물량이 나갈 수 있었다는 뜻입니다. 이 조건 하나로 투입 차단이나 실시간 알림을 거는 것이 재발 방지의 핵심입니다.
06
참고
이 분석으로 알 수 없는 것
보고 자리에서 질문이 나올 수 있어 미리 밝혀 둡니다.
데이터의 한계
V7의 표본 수가 작습니다. V7은 총 42장이라 Lot별 불량률 21.4%는 14장 중 3장을 뜻합니다. 방향성은 분명하지만 불량률 수치 자체의 오차 범위는 넓습니다. 다만 미승인 Recipe가 실행됐다는 사실과 설정온도가 13℃ 높았다는 사실은 표본 크기와 무관하게 확정적입니다.
Zone 6 외 다른 구간은 알 수 없습니다. 데이터에 담긴 Recipe 파라미터는 Zone 6 설정온도와 컨베이어 속도 두 가지뿐입니다. 전체 프로파일을 손댔는지는 MES Recipe 마스터에서 V6·V7을 나란히 비교해야 확인됩니다.
Recipe의 작성자·생성 시각·변경 사유를 확인할 수 없습니다. 승인 요청 이력도 데이터에 남아 있지 않습니다.
출하 추적 정보가 없습니다. 정상 판정 36장이 지금 어디에 있는지는 별도 시스템에서 확인해야 합니다.
FPY(직행률)는 조회되지 않았습니다. 정의된 기준 시간축에 데이터가 없어 별도 확인이 필요합니다.
한 가지 더 짚을 점은, 이번 판단의 핵심 근거인 Zone 6 설정온도가 KPI 화면에는 노출돼 있지 않았다는 것입니다. 설정값과 실측값의 편차는 리플로우 공정에서 상시 감시해야 할 지표이므로, 이를 지표로 등록해 두면 다음부터는 첫 화면에서 바로 보입니다.
이 판단 경로는 어디에서 왔나
앞의 분석 경로는 Claude가 임의로 만들어낸 것이 아니다. HEARTCOUNT Decision Layer에는 BGA 불량률의 정의뿐 아니라, 이 지표에 이상이 발생했을 때 어떤 요인을 어떤 순서로 확인하고, 무엇과 비교해 원인 후보를 좁혀갈 것인지가 함께 정의돼 있다.
실제 bga_defect_rate에 등록된 판단 컨텍스트의 일부는 다음과 같다.

코드 자체는 복잡해 보이지만, 사람의 문제 해결 순서로 바꾸면 구조는 단순하다.
BGA 불량률
→ 정상 범위를 벗어났는가
→ 어느 설비·작업지시·생산 Lot에서 차이가 커졌는가
→ Reflow·인쇄·자재 가운데 무엇이 달라졌는가
→ 같은 제품·Revision·라인·실장 위치의 정상 생산과 비교하면 어떤가
→ 영향받은 PCB는 어디까지인가
이상을 발견한 뒤 원인 후보를 좁히고, 정상 생산과 비교하고, 영향 범위까지 확인하는 분석 경로가 BGA 불량에 대한 Decision Graph다.
Decision Graph는 논리적 구조를 뜻하는 개념으로, Graph DB가 필수인 것은 아니며 관계형 DB나 YAML 같은 구조만으로도 구현할 수 있다.
1. KPI: 언제부터 문제로 볼 것인가
판단 경로의 출발점은 KPI인 bga_defect_rate다.
kpi:
target:
value: 0.35
unit: "%"
bound: upperBGA 불량률의 상한을 0.35%로 정의했다. 따라서 사람이나 AI가 그때그때 “이 정도면 높은 것 같다”고 판단하는 것이 아니라, 같은 기준에서 이상 여부를 판단한다.
2. Driver: 무엇을 먼저 확인할 것인가
불량률이 기준을 넘으면 다음으로 확인할 항목이 Driver다.
Driver는 특정 KPI의 변화를 이해하기 위해 일차적으로 Drill-down할 차원과 함께 비교할 지표로 구성된다.
이번 모델에서는 BGA 불량률의 Driver를 아래 원인 후보군으로 구성했다.
Reflow 조건 / 인쇄 조건 / 자재 조건
Reflow에서는 설비, Recipe 버전, 실제 온도, 미승인 Recipe 사용 여부를 본다. 인쇄에서는 SPI 편차를 확인하고, 자재에서는 솔더 페이스트 Lot과 BGA 부품 Lot을 비교한다.
앞의 보고서에서 미승인 Recipe V7과 Zone 6 온도가 분석 대상으로 올라온 것도 이 Driver 경로를 따른 결과다. 실제 보고서에서도 V7이 미승인 Recipe였고 Zone 6 설정값이 V6 대비 13℃ 높았으며, 이 조건에서 불량률이 크게 상승한 패턴이 확인됐다.
3. Lever: 원인 후보를 어떻게 검증할 것인가
Driver에서 원인 후보가 정해지면 Lever가 이어진다. Lever는 하나 이상의 Driver를 이용해 원인 후보를 검증하고 범위를 좁혀가는 분석 방법과 비교 기준을 정의한다.
예를 들어 Reflow 조건을 확인할 때는 설비 → 작업지시 → 생산 Lot으로 Drill-down하면서 불량률과 실제 온도를 함께 비교한다.
analysis:
type: drill_down
by:
- reflow_equipment_id
- work_order_id
- production_lot_id반대로 자재 문제가 의심되면 단순 Drill-down보다 정상 생산과의 비교가 더 중요할 수 있다.
analysis:
type: peer_comparison
peer_group:
- product_id
- revision
- line_id
- component_location여기서 peer_group은 무엇을 정상 비교군으로 인정할 것인가를 정의한다.
다른 제품이나 다른 BGA 위치를 섞어 비교하지 않고, 같은 제품·Revision·라인·실장 위치끼리 비교한다. 전자 제조처럼 생산 조건이 자주 달라지는 환경에서는 이 기준이 없으면 정상적인 제품 차이를 이상 원인으로 잘못 해석하기 쉽다.
Lever를 통해 원인 후보가 충분히 좁혀지면, 그 결과를 바탕으로 영향 생산분을 특정하고 조치 후보를 도출한다.
- 미승인 Recipe 사용 → 승인 Gate 추가
- Zone 6 온도 이상 → Recipe 복구 또는 Profile 최적화
- 특정 자재 Lot 이상 → 해당 Lot 격리 및 정상 Lot과 비교
앞의 보고서에서도 실제 조치가 V7 사용 중단, 정상 판정 제품 재검사, 미승인 Recipe 차단 Rule 신설, Zone 6 Profile 최적화로 이어진다.
전체 판단 경로
단순화하면 다음과 같다.
BGA 불량률 이상
│
├── Driver: Reflow 조건
│ ├─ Recipe 변경?
│ ├─ 미승인 Recipe?
│ └─ 설정·실측 온도 변화?
│
│ ↓
│
│ Lever: 설비 → 작업지시 → Lot Drill-down
│ 불량률·온도 비교
│
├── Driver: 인쇄 조건
│ └─ SPI Volume / Offset 변화?
│
│ ↓
│
│ Lever: 실장 위치·작업지시별 비교
│
└── Driver: 자재 조건
├─ Solder Paste Lot 변경?
└─ BGA Component Lot 변경?
│
↓
Lever: 정상 Peer Group과 비교
↓
원인 후보 검증
↓
영향 생산분 특정
↓
조치 후보 도출
↓
현장 확인
일반적인 Semantic Layer가 “BGA 불량률을 어떻게 계산할 것인가”를 정의한다면, Decision Layer는 그 지표를 출발점으로 “어떤 Driver를 확인하고, 각 Driver의 이상을 어떤 Lever를 통해 더 좁혀가며, 무엇을 바꿀 수 있는가”까지 구조화한다.
즉 KPI–Driver–Lever는 단순한 인과관계 분류가 아니라 분석 경로 자체를 표현하는 구조다.
AI Agent는 MCP(Model Context Protocol)를 통해 이 구조와 제조 데이터를 조회한다. 따라서 매번 자유롭게 원인 후보와 분석 순서를 만들어내는 대신, 정의된 KPI, Driver, Lever, 비교 기준을 따라 데이터를 확인하고 그 결과를 보고서로 정리할 수 있다.
판단을 AI에게 인수인계하려면
자율 제조에서 중요한 것은 설비가 스스로 움직이는 것만이 아니다. 실제 현장에서 사람이 하는 일은 설비를 움직이는 것보다, 설비·자재·제조 방법에서 발생한 문제를 인지하고 원인을 판단한 뒤 적절한 대응 조치를 선택하는 일에 가깝다.
따라서 자율 제조가 진전되려면 이 판단 과정 역시 시스템 안으로 들어와야 한다. 처음에는 사람이 더 빨리 판단할 수 있도록 지원하고, 충분한 데이터와 검증이 쌓인 영역부터 일부 판단과 조치를 자동화할 수 있다.
Decision Layer는 자율 제조를 위한 또 하나의 AI 기능이 아니라, 사람이 하던 판단을 AI에 인수인계하기 위해 필요한 인프라이다.
이번 글에서 소개한 Manufacturing Decision Intelligence가 흥미로웠다면, 우리 기업에서는 어떻게 구현될 수 있을지 미팅을 통해 확인해보세요.