KEMI
/

KEMI Tools

BOM 정리기

KiCad·Altium·Eagle에서 뽑은 BOM을 붙여넣거나 CSV·엑셀 파일로 올리면 열을 자동으로 인식해 지정자 범위를 펼치고, 같은 부품을 한 줄로 합치고, 지정자 중복·수량 불일치·MPN 누락·DNP를 찾아 줍니다. 정리된 BOM은 일반 CSV나 JLCPCB SMT 양식으로 내려받을 수 있고, 모든 처리는 브라우저 안에서만 이루어집니다.

① BOM 넣기

CSV · TSV · 엑셀(.xlsx) 파일을 끌어다 놓거나 클릭

KiCad · Altium · Eagle · OrCAD · EasyEDA BOM 모두 됩니다. 이 브라우저 안에서 정리하며 입력값은 저장되지 않습니다.

예시:

사용법

  1. CAD에서 BOM을 CSV·엑셀로 내보내 끌어다 놓거나, 엑셀 표를 복사해 입력란에 붙여넣습니다. 처음이라면 'KiCad BOM'·'Altium BOM' 예시로 동작을 확인해 보세요.
  2. ② 열 확인에서 자동 인식된 지정자·값·풋프린트·MPN 열이 맞는지 보고, 틀리면 고칩니다.
  3. ③ 확인할 것에서 빨간 오류(지정자 중복·수량 불일치)부터 원본 CAD에서 바로잡습니다.
  4. ④ 정리된 BOM을 정렬해 검토한 뒤 정리본 CSV 또는 JLCPCB 양식으로 내려받거나, 버튼 하나로 SMT 견적을 요청합니다.

왜 정리하나

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빠지면 실장되고, 지우면 좌표 파일과 어긋남
원칙은 '한 줄 = 한 MPN'입니다. 값과 풋프린트가 같아도 MPN이 다르면 다른 줄이어야 하고, 같은 MPN이 여러 줄에 흩어져 있으면 합쳐야 합니다.

처리 과정

이 도구가 하는 일

  1. 구분자 판별: 따옴표 밖의 탭·쉼표·세미콜론 개수가 줄마다 일정한 쪽을 고릅니다. 지정자 칸 안에 쉼표가 있는 Altium·Eagle BOM도 정확히 나뉩니다.
  2. 머리글 행 찾기: 앞쪽 20줄 중 'Designator·Reference·Qty·Footprint' 같은 단어가 가장 많은 행을 머리글로 봅니다. Altium의 프로젝트 정보 줄은 자동으로 건너뜁니다.
  3. 열 매핑: Value가 없으면 Comment를 값으로, 'Manufacturer Part Number 1'은 MPN으로, 'LCSC Part #'는 LCSC 품번으로 인식하고, Digi-Key·Mouser 같은 공급사 품번 열은 무시합니다. 틀리면 화면에서 바로 고칠 수 있습니다.
  4. 지정자 펼치기: 'R1-R4', 'R1 - R4', 'C1, C2 C3'를 낱개로 펼칩니다(접두어가 같은 범위만). 결과 표시는 다시 'R1-R4'로 접어 보여 주고, 내보낼 때는 낱개로 씁니다.
  5. 병합: 값·풋프린트·MPN이 같은 줄을 합치고 지정자와 수량을 더합니다. 값은 숫자로 비교해 100n·0.1uF·100nF, 4k7·4.7k를 같은 값으로 봅니다. DNP 줄은 실장 줄과 섞지 않습니다.
  6. 검사: 지정자 중복, 수량 ≠ 지정자 개수, 지정자 없음, MPN 누락, 풋프린트 누락, 같은 값·풋프린트에 MPN이 여러 개, 같은 MPN에 값·풋프린트가 다른 경우, DNP를 표시합니다.
  7. 내보내기: 정리본 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 견적 콘솔로 넘어갑니다.

FAQ

입력한 BOM이 저장되나요?

아니요. 붙여넣기·CSV·엑셀 파일 모두 이 브라우저 안에서 정리하며 입력값은 저장되지 않습니다. 결과 아래의 견적 버튼을 누르시면 정리된 파일이 견적 화면에 미리 담겨, 다시 올릴 필요가 없습니다.

Altium BOM 위쪽의 프로젝트 정보 줄은 어떻게 되나요?

앞쪽 20줄 중 머리글 단어가 가장 많은 줄을 자동으로 머리글로 잡기 때문에 'Bill of Materials For Project…' 같은 줄은 건너뜁니다. 잘못 잡히면 '머리글 행'에서 직접 고르면 됩니다.

'같은 값·풋프린트에 MPN이 여러 개' 경고는 꼭 고쳐야 하나요?

의도한 경우도 있습니다(예: 일부만 1% 정밀 저항, 일부만 고내압). 하지만 대부분은 라이브러리에서 서로 다른 부품을 골라 생긴 실수라 구매 품목이 쓸데없이 늘어납니다. 의도가 아니라면 하나로 통일하세요.

JLCPCB 외에 다른 조립처 양식도 되나요?

정리본 CSV는 Item·Qty·Designator·Value·Footprint·MPN·Manufacturer·LCSC·Description·DNP의 일반 양식이라 대부분의 조립처(국내 SMT 업체 포함)가 그대로 받습니다. KEMI 견적 콘솔도 이 양식을 바로 읽습니다.

엑셀(.xls 구버전)도 되나요?

.xlsx·.xlsm·.xls·.ods 모두 첫 번째 시트를 읽습니다. 시트가 여러 개면 BOM이 있는 시트를 맨 앞으로 옮기거나, 해당 범위를 복사해 붙여넣으세요.

DNP는 어떻게 인식하나요?

DNP·DNI·Fitted·Populate 같은 열이 있으면 그 값(DNP, Yes, Not Fitted 등)을 보고, 값 칸이 DNP·NC·NF·N/C인 줄도 미실장으로 봅니다(옵션으로 끌 수 있음). 미실장 줄은 정리본에 남고 JLCPCB 파일에서는 빠집니다.

함께 보기

모든 계산은 이 브라우저 안에서 이루어지며 입력값은 저장되지 않습니다. 결과는 설계 초기 검토용 참고값이며, 실제 제작·시공에는 부품 데이터시트, 제조사 사양, 해당 전기설비 규정이 우선합니다. 개인정보처리방침