왜 정리하나
CAD에서 뽑은 BOM은 그대로 조립처에 보내기엔 거칠다
BOM(Bill of Materials, 부품 목록)은 SMT 조립처가 부품을 사고, 피더에 걸고, 기판 위 어느 자리에 무엇을 올릴지 결정하는 기준 문서입니다. 그런데 CAD가 내보낸 BOM은 도구마다 형식이 다릅니다. KiCad는 'Reference·Value·Footprint', Altium은 값을 'Comment' 열에 넣고 맨 위에 프로젝트 정보 몇 줄을 붙이며, Eagle은 세미콜론으로 구분합니다. 회로도를 여러 장 그리다 보면 같은 100 nF가 시트마다 따로 나오고, 'R1-R4'처럼 범위로 적히거나, 실장하지 않는 부품(DNP)이 섞이고, 일부 부품은 제조사 품번(MPN)이 비어 있습니다. 이런 BOM을 그대로 보내면 조립처가 하나하나 되묻느라 견적이 늦어지고, 최악의 경우 다른 정격의 부품이 실장됩니다.
기준
조립처가 원하는 '좋은 BOM'의 조건
| 열 | 의미 | 예 | 왜 필요한가 |
|---|---|---|---|
| Designator | 기판 위 자리 이름 전부 | C1,C2,C4,C5 | 좌표(CPL) 파일과 1:1로 맞아야 실장 위치가 정해짐 |
| Qty | 그 줄의 개수 | 4 | 지정자 개수와 반드시 같아야 함 |
| Value / Comment | 값·부품명 | 100nF 16V X7R | 사람이 검토할 때 기준 |
| Footprint | 패키지 | 0402, SOT-23-5 | 같은 값이라도 크기가 다르면 다른 부품 |
| MPN | 제조사 품번 | CL05B104KO5NNNC | 구매의 유일한 기준 — 정격·유전체·허용오차가 다 들어 있음 |
| Manufacturer | 제조사 | Samsung | 같은 품번 체계 충돌 방지 |
| DNP 표시 | 미실장 여부 | DNP | 빠지면 실장되고, 지우면 좌표 파일과 어긋남 |
처리 과정
이 도구가 하는 일
- 구분자 판별: 따옴표 밖의 탭·쉼표·세미콜론 개수가 줄마다 일정한 쪽을 고릅니다. 지정자 칸 안에 쉼표가 있는 Altium·Eagle BOM도 정확히 나뉩니다.
- 머리글 행 찾기: 앞쪽 20줄 중 'Designator·Reference·Qty·Footprint' 같은 단어가 가장 많은 행을 머리글로 봅니다. Altium의 프로젝트 정보 줄은 자동으로 건너뜁니다.
- 열 매핑: Value가 없으면 Comment를 값으로, 'Manufacturer Part Number 1'은 MPN으로, 'LCSC Part #'는 LCSC 품번으로 인식하고, Digi-Key·Mouser 같은 공급사 품번 열은 무시합니다. 틀리면 화면에서 바로 고칠 수 있습니다.
- 지정자 펼치기: 'R1-R4', 'R1 - R4', 'C1, C2 C3'를 낱개로 펼칩니다(접두어가 같은 범위만). 결과 표시는 다시 'R1-R4'로 접어 보여 주고, 내보낼 때는 낱개로 씁니다.
- 병합: 값·풋프린트·MPN이 같은 줄을 합치고 지정자와 수량을 더합니다. 값은 숫자로 비교해 100n·0.1uF·100nF, 4k7·4.7k를 같은 값으로 봅니다. DNP 줄은 실장 줄과 섞지 않습니다.
- 검사: 지정자 중복, 수량 ≠ 지정자 개수, 지정자 없음, MPN 누락, 풋프린트 누락, 같은 값·풋프린트에 MPN이 여러 개, 같은 MPN에 값·풋프린트가 다른 경우, DNP를 표시합니다.
- 내보내기: 정리본 CSV(엑셀에서 한글이 깨지지 않게 UTF-8 BOM 포함), JLCPCB 양식 CSV, 엑셀 붙여넣기용 탭 복사.
예시 BOM으로 보면
화면의 'KiCad BOM' 예시를 불러오면 10줄짜리 BOM이 9줄로 정리됩니다. 시트가 달라 따로 적힌 C1·C2·C5와 C4(모두 100n, 0402, 같은 MPN)는 4개짜리 한 줄로 합쳐지고, R3가 'R1-R4' 범위와 별도의 1 kΩ 줄에 두 번 나와 지정자 중복 오류가 뜹니다. LED 줄은 수량이 3인데 지정자는 D1·D2 두 개라 수량 불일치, MPN도 비어 있어 누락 경고가 함께 뜹니다. R5는 다른 10 kΩ들과 값·풋프린트가 같은데 MPN이 달라 '같은 값에 MPN 여러 개' 경고가 나옵니다. 의도한 것인지(예: 정밀 저항) 실수인지 확인하라는 뜻입니다. R6(0 Ω, DNP)은 정리본에는 DNP로 남고 JLCPCB 파일에서는 빠집니다.
JLCPCB 양식
Comment · Designator · Footprint · LCSC Part #
JLCPCB의 SMT 조립 BOM은 네 열이면 충분합니다. Comment에는 값이나 부품명, Designator에는 쉼표로 이은 지정자 전체, Footprint에는 패키지, 'LCSC Part #'에는 LCSC 부품 번호(C로 시작하는 숫자)를 넣습니다. 실제 부품 매칭은 LCSC 번호로 이뤄지므로 비어 있으면 업로드 후 화면에서 직접 골라야 합니다. 이 도구는 DNP 줄을 JLCPCB 파일에서 빼고(넣으면 실장됩니다), KiCad 풋프린트 앞의 라이브러리 이름('Resistor_SMD:')을 떼어 냅니다. 좌표(CPL) 파일의 지정자와 BOM의 지정자가 정확히 같아야 하는 점도 잊지 마세요.
주의
자주 하는 실수
- 값과 풋프린트만 보고 같은 부품이라고 단정: 100 nF 0402라도 6.3 V와 50 V, X7R과 Y5V는 다른 부품입니다. 병합 기준에 MPN이 들어가는 이유입니다. MPN이 비어 있으면 조립처가 임의로 고르게 됩니다.
- 엑셀이 품번을 망가뜨림: CSV를 엑셀로 열었다 저장하면 '1E3' 같은 품번이 1000으로, 앞자리 0이 사라지기도 합니다. 원본 CSV를 바로 이 도구에 넣거나, 엑셀에서는 열 서식을 텍스트로 지정하세요.
- DNP 부품을 BOM에서 지워 버리기: 좌표 파일에는 남아 있어 조립처가 '빠진 부품'으로 문의하게 됩니다. 지우지 말고 DNP로 표시하세요.
- 범위 표기 그대로 제출: 'R1-R4'를 사람은 읽지만 많은 조립 소프트웨어는 한 개의 이름으로 봅니다. 낱개 지정자로 내보내세요.
- 극성·방향 정보 누락: 다이오드·전해 커패시터·IC는 좌표 파일의 회전값과 실크 극성 표시가 맞는지 함께 확인해야 합니다.
실무
KEMI 실무 팁
SMT 견적이 빨리 나오는 BOM은 MPN이 모두 채워져 있고, 국내에서 바로 구할 수 있는 대체 품번이 비고란에 적혀 있습니다. 수동 부품(저항·커패시터)은 '0402 100nF 16V X7R ±10%'처럼 사양만 적어 주셔도 KEMI가 재고가 많은 동등품으로 맞춰 드리지만, 커넥터·IC·인덕터는 반드시 MPN이 필요합니다. 고객이 직접 공급하는 부품은 '고객 지급'으로 표시하고, 0402 이하 소형 부품은 실장 손실을 고려해 몇 개 여유를 두는 것이 일반적입니다. 이 도구로 정리한 BOM은 결과 아래 버튼을 누르면 파일 그대로 부품·SMT 견적 콘솔로 넘어갑니다.
