This website requires JavaScript.
쿠폰
배송지
블로그

Claude Code로 PCB 설계하기: EasyEDA Pro 연동과 실제 사례

최초 게시일 Nov 11, 2026, 업데이트 되였습니다. Nov 11, 2026

4 분

표목(TOC)
  • Claude Code PCB 설계 결과: 어디까지 완성했나?
  • EasyEDA API skill은 Claude Code와 어떻게 연결되나?
  • GitHub에서 Claude Code와 EasyEDA Pro 연결하기
  • PDF에서 다중 페이지 회로도 재구성하기
  • JLCPCB 재고 확인으로 조립 가능한 회로도 만들기
  • EasyEDA Pro 3.2.149 API에서 겪은 문제와 해결
  • Claude Code로 PCB 부품 배치하기
  • Freerouting으로 EasyEDA Pro PCB 자동 배선하기
  • Claude Code가 아직 대신할 수 없는 PCB 설계 검토
  • 결론
  • Claude Code PCB 설계 FAQ

핵심 요약

  • Claude Code를 활용한 PCB 설계: 이 사례에서는 Claude Opus 5.5와 EasyEDA Pro 3.2.149를 사용해 PDF의 3페이지 회로도를 47개 부품으로 다시 작성하고, DRC 오류가 0건인 2층 PCB까지 라우팅했습니다.
  • EasyEDA Pro 연동: EasyEDA API skill은 로컬 브리지 서버와 Run API Gateway 확장 프로그램을 거쳐 Claude Code가 편집기에서 JavaScript를 실행하게 합니다. API 호출당 제한 시간은 30초입니다.
  • 설계 검증: API의 성공 응답만으로 결과를 신뢰하지 않았습니다. 넷리스트를 다시 읽어 33개 넷의 핀 연결 138개를 확인하고 누락된 GND 연결 6개를 찾아 수정했습니다.
  • 배선: 이 사례에 사용한 EasyEDA Pro 3.2.149의 API에는 자동 배선 호출이 없어 Freerouting을 단일 스레드로 실행했습니다. 결과를 가져올 때는 비아를 먼저, 트레이스를 나중에 배치했습니다.
  • 사람의 검토: Claude Code는 보드 화면을 직접 보는 대신 좌표와 API 데이터를 이용했습니다. 시각적 검토, 기구 간섭, 발열, 최종 부품 선정은 엔지니어가 확인해야 합니다.

Claude Code와 EasyEDA Pro를 연동해 회로도 작성부터 PCB 배선까지 진행한 실제 사례를 소개합니다. Claude Opus 5.5와 공식 EasyEDA API skill을 이용해 Claude Code가 PCB 설계 프로그램을 직접 조작하도록 했습니다.

CH32V006 부품 테스터의 3페이지 회로도를 PDF에서 재구성하고, 재고가 없는 부품을 교체한 뒤 2층 PCB를 배선해 DRC 오류를 0건으로 만들었습니다. 이 글에서는 API 연결부터 결과 검증까지 과정을 순서대로 설명합니다.

진행 과정은 순탄하지만은 않았습니다. 부품 속성이 알림 없이 사라졌고, API 브리지의 응답이 시간 초과되었으며, API에서 자동 배선 기능도 제공되지 않았습니다. 각 문제를 어떻게 해결했는지도 함께 다룹니다.

이 사례에서 다루는 내용은 다음과 같습니다.

  • GitHub의 API skill로 Claude Code와 EasyEDA Pro 연결하기
  • PDF 회로도를 재구성하고 연결을 검증하기
  • Freerouting으로 PCB 배선하기
  • 엔지니어가 직접 확인해야 할 단계 구분하기

Claude Code로 설계한 CH32V006 테스터 PCB의 배선 결과

그림: Claude Code를 활용해 배선한 CH32V006 테스터 PCB

Claude Code PCB 설계 결과: 어디까지 완성했나?

Claude Opus 5.5를 실행한 Claude Code는 설계 사양 문서에 포함된 47개 부품을 배치하고 DRC 오류가 0건인 2층 PCB를 배선했습니다. 프로젝트 생성, 대화상자 승인, 부품 조달 결정은 사람이 담당했습니다.

대상 회로는 AVR 기반 ArduTester를 WCH RISC-V 마이크로컨트롤러로 이식한 CH32V006 3프로브 부품 테스터입니다.

작업Claude Code 담당사람이 수행한 단계이 사례의 결과
연동 설정Skill 설치, 브리지 시작, 첫 API 호출Allow External Interaction 활성화EasyEDA Pro 3.2.149와 연결
회로도3페이지에 부품 47개 배치(LCSC 고유 부품 27종)빈 프로젝트 생성모든 부품에 LCSC 라이브러리 풋프린트 지정
넷리스트 확인핀·배선·라벨을 다시 읽어 PDF와 대조검증 보고서 검토핀 138/138개, 넷 33개, 단락 없음
재고 부품 교체JLCPCB 재고 확인 및 대체품 제안교체 승인, MCU 유지 결정부품 변경 8건
배치문서의 구역 규칙에 따라 풋프린트 배치가져오기 창에서 Apply 클릭71.1 × 50.8 mm, 2층, 패드 충돌 없음
배선Freerouting 실행 후 배선 결과 가져오기없음세그먼트 443개, 비아 28개, 넷 33/33개 연결
DRC보고된 오류 수정 및 동박 채움 다시 생성DRC 로그를 세션에 붙여넣기회로도 오류 0건·경고 0건, PCB 오류 0건

EasyEDA API skill은 Claude Code와 어떻게 연결되나?

Claude Code가 작성한 JavaScript는 로컬 브리지 서버를 거쳐 실행 중인 EasyEDA Pro의 Run API Gateway 확장 프로그램에 전달됩니다. 회로 이미지를 생성하는 것이 아니라 열린 설계 파일을 편집합니다.

Claude Code와 EasyEDA Pro 사이의 로컬 브리지 구조

그림: Claude Code의 JavaScript가 브리지를 거쳐 EasyEDA Pro 확장 프로그램에 전달되는 과정

EasyEDA API skill에는 다음 요소가 포함됩니다.

  • API 참조 자료: 약 120개 클래스, 62개 enum, 70개 인터페이스의 실제 메서드 정의를 확인할 수 있습니다.
  • 브리지 서버: 로컬 컴퓨터에서 실행되는 Node.js 서버입니다. 127.0.0.1의 49620~49629번 포트 중 사용 가능한 포트를 자동으로 선택합니다.
  • SKILL.md 지침: 브리지 검색, EasyEDA 창 선택, 코드 전송 절차를 안내합니다.

GitHub에서 Claude Code와 EasyEDA Pro 연결하기

설정은 여섯 단계로 진행했습니다.

1. EasyEDA API skill을 내려받습니다.

2. 필요한 종속 패키지를 설치합니다.

3. Claude Code에 skill을 등록합니다.

4. EasyEDA Pro에 확장 프로그램을 설치합니다.

5. 로컬 브리지 서버를 실행합니다.

6. 테스트 호출로 연결 상태를 확인합니다.

프롬프트 작성 방법은 EasyEDA Pro의 AI PCB 설계 가이드에서 더 자세히 다룹니다.

이 사례의 작업 환경:

  • Windows 11, 로컬 모드의 EasyEDA Pro 3.2.149 데스크톱 클라이언트
  • Node.js 24(skill의 요구 버전은 18 이상)
  • Claude Code와 Claude Opus 5.5
  • Freerouting 단계에만 필요한 Java 21

EasyEDA Pro의 Run API Gateway 확장 프로그램

그림: EasyEDA Run API Gateway 확장 프로그램

EasyEDA 고급 설정의 확장 프로그램 관리자에서 Run API Gateway를 설치합니다.

실제 설정 순서:

1. GitHub에서 skill을 내려받아 압축을 풉니다.

2. skill 폴더에서 npm install을 실행합니다. 종속 패키지는 ws WebSocket 패키지 하나입니다.

3. Claude Code에 skill을 등록합니다. Windows에서는 mklink가 PowerShell 명령이 아니므로 명령 프롬프트(cmd.exe)에서 디렉터리 접합점을 만들었습니다.

mklink /J "%USERPROFILE%\.claude\skills\easyeda-api" "C:\eda\easyeda-api-skill-main"

4. Run API Gateway 확장 프로그램 페이지에서 run-api-gateway_v1.0.6.eext를 설치합니다.

5. PowerShell에서 브리지를 별도 프로세스로 시작합니다.

Start-Process node -ArgumentList "C:\eda\easyeda-api-skill-main\scripts\bridge-server.mjs" -WindowStyle Minimized

6. 시작할 때 출력된 포트를 사용해 Bash 셸(Windows에서는 Git Bash 또는 WSL)에서 첫 테스트 호출을 보냅니다.

curl -X POST http://localhost:49620/execute \
  -H "Content-Type: application/json" \
  -d '{"code": "return await eda.dmt_Project.getCurrentProjectInfo();"}'

설정 순서를 Claude Code에 전달하고 필요한 권한을 승인하는 방법도 있습니다. 진행 장면은 AI Designed This PCB in 2 Hours 영상에서 볼 수 있습니다.

"Bridge Not Found" 오류 해결: Allow External Interaction

확장 프로그램이 브리지에 연결되지 않으면 먼저 권한을 확인합니다. 확장 프로그램 관리자에서 Allow External Interaction을 켜지 않으면 sys_WebSocket.The register 호출이 오류 메시지 없이 차단될 수 있습니다.

Run API Gateway의 외부 상호작용 허용 설정

그림: Run API Gateway에 Allow External Interaction을 허용한 확장 프로그램 관리자

설정을 켠 뒤 API Gateway → Reconnect를 실행합니다. 연결을 다섯 번 실패하면 확장 프로그램의 재시도가 멈추므로, 브리지를 나중에 시작한 경우 수동 재연결이 필요합니다.

EasyEDA Pro의 API Gateway 재연결 메뉴

그림: EasyEDA Pro의 API Gateway 재연결 메뉴

PDF에서 다중 페이지 회로도 재구성하기

원본 KiCad 회로도의 3페이지 PDF, 설계 사양, 상세 핀 맵(CONNECTIONS.md)을 Claude Code에 제공했습니다. CONNECTIONS.md에는 MCU의 각 핀과 연결 넷, 핀 할당 이유가 기록되어 있습니다. 이를 바탕으로 회로도를 다음 세 페이지로 나누었습니다.

  1. MCU와 프런트엔드: 마이크로컨트롤러와 부품 측정 회로
  2. 전원과 인터페이스: 전원 공급과 외부 연결
  3. OLED 인터페이스: 디스플레이 연결과 보조 회로

핵심 과제는 JLCPCB 라이브러리의 올바른 부품 선정, 정확한 배치, 페이지 생성, API 시간 초과 대응이었습니다.

EasyEDA Pro에서 작성한 회로도 첫 페이지

그림: EasyEDA Pro 회로도 첫 페이지

  • LCSC 라이브러리 부품 연결: lib_Device.getByLcscIds로 각 부품을 조회해 실제 풋프린트가 있는 심벌을 선택했습니다. 부품을 임시 배치해 핀 좌표를 읽고 삭제한 다음, 배선이 정확한 핀에 닿도록 했습니다.
  • 회로도 좌표계 파악: API의 좌표 단위는 10 mil이고 y값은 위쪽으로 증가합니다. A4 프레임 범위는 가로 0~1170, 세로 0~825 단위입니다.
  • 설계 문서로 페이지 생성: 긴 배선 대신 전원 심벌, 짧은 라벨 배선, 전역 넷 이름을 사용했습니다. 연결을 핀 가까이에 두어 검증하기 쉽게 했습니다.

JLCPCB 재고 확인으로 조립 가능한 회로도 만들기

Claude Code는 connections.md를 참고해 JLCPCB Parts Library에서 부품을 찾았습니다. 각 부품의 재고를 확인하고 Basic 부품을 우선 고려해 대체품을 제안했습니다.

대체 제안은 원래 설계 요구사항과 맞는지 제가 각각 검토하고 승인했습니다. 사양이 비슷해 보여도 핀 배열, 정격 전압, 허용 오차, 전기적 동작은 다를 수 있으므로 회로도 확정 전에 확인해야 합니다.

오류와 경고가 0건인 EasyEDA Pro 회로도 DRC 결과

그림: 회로도 DRC 오류 0건, 경고 0건

Basic·Extended 구분은 JLCPCB Parts Library에서 확인할 수 있습니다. BOM 업로드 전 부품 분류 확인 방법도 참고하세요.

원래 부품대체 부품LCSC 번호라이브러리 분류교체 이유와 주의점
680 Ω 0.1% (R1, R3, R5)680 Ω 1%C23228Basic재고 있음. 저저항·ESR 측정 정확도는 다소 낮아질 수 있음
39k / 11k 분압기 (R7, R8)18k / 5.1kC25810 / C23186Basic임계값 비율 0.2208 대 0.220
0466.250NR 퓨즈 (F1)SMD1206P025TF 0.25 A PTCC20798Extended유지 전류 0.25 A의 복귀형 부품. 속단 퓨즈보다 높은 전류에서 더 느리게 트립됨
2.2 µF 25 V (C6)10 µF 25 V 0805C15850Basic정격 전압이 같은 Basic 부품
MCP1700 (U3)XC6206P332MRC5446Basic동일한 SOT-23 핀 배열
BSS138 (Q1, Q2)2N7002C8545Basic3.3 V 게이트와 100 kHz I2C 조건에 맞음
C&K 7203SYCGE 토글 (SW3)SS-23D07-G050 슬라이드C54305660Extended기존 토글 스위치 재고 0개
Keystone 5015 테스트 포인트 (TP4)노출 패드BOM에 없음해당 없음조달할 별도 부품 없음

EasyEDA Pro 3.2.149 API에서 겪은 문제와 해결

이 작업에서는 API 관련 문제 일곱 가지가 설계에 영향을 주었습니다. 그중 일부는 잘못된 결과를 남기고도 성공을 반환했습니다. 따라서 편집 후 데이터를 다시 읽어 확인하는 절차가 중요했습니다.

증상원인해결 방법
Supplier Part가 "0603WAF4701T5E.1"로 표시되고 공급업체 부품 속성 불일치 경고가 나타남API로 배치한 부품의 속성 손실공급업체 ID, MPN, 제조사, 이름 등의 속성을 한 번의 전체 수정 호출로 설정
이후 수정에서 경고가 다시 나타남이름만 변경한 modify()가 속성을 다시 손상수정할 때마다 모든 속성을 같은 호출에서 재설정
"Wire has multiple net names"연결된 배선 하나에 서로 다른 넷 라벨 두 개 부착배선 하나에 넷 이름 하나만 사용
넷리스트 내보내기가 끝나지 않음내보내기 호출이 반환되지 않음검증 스크립트처럼 다시 읽은 데이터로 넷리스트 구성
DRC에서 개수만 반환API가 오류 위치 없이 합계만 보고편집기의 DRC 로그를 세션에 붙여넣음

GPT-6 Astra의 EasyEDA Pro 설계 사례는 라이브 API 대신 파일을 가져오는 방식으로 같은 편집기를 활용했습니다.

Claude Code로 PCB 부품 배치하기

Claude Code는 문서의 구역 규칙에 따라 47개 풋프린트를 배치한 뒤 스크립트로 패드 간격을 확인했습니다. EasyEDA의 importChanges() 호출에서는 사람이 가져오기 창의 Apply를 눌러야 하므로, 이 단계는 수동으로 시작했습니다.

CONNECTIONS.md의 배치 구역 규칙:

프로브·전원·프로그래밍·디스플레이 구역으로 나눈 PCB 부품 배치

그림: 테스터 보드의 프로브, 전원, 프로그래밍, 디스플레이 구역

  • 프로브 헤더(J3): 프로브 배선을 짧게 하기 위해 오른쪽 가장자리 배치
  • 임계값 분압기(R7, R8, C1): MCU 5번 핀 가까이에, 프로브 드라이버와 떨어뜨려 배치
  • 전원부: USB-C, 배터리 헤더, 레귤레이터, 스위치를 아래쪽 가장자리에 배치
  • 프로그래밍 헤더(J1): 왼쪽 가장자리 배치
  • OLED 헤더(J2): 왼쪽 위 배치

스크립트는 모든 패드 쌍을 비교해 한 곳의 겹침을 발견했습니다. 수정 후 레이아웃에는 패드 충돌이 없고 보드 가장자리 20 mil 이내에 배치된 부분도 없습니다.

Freerouting으로 EasyEDA Pro PCB 자동 배선하기

EasyEDA Pro 3.2.149의 API에는 자동 배선 호출이 없어 편집기 밖에서 배선했습니다. Claude Code는 패드를 Specctra DSN 파일로 내보내고 Freerouting을 화면 없이 실행한 다음, 결과 배선을 브리지를 통해 다시 그렸습니다.

배선이 완료된 2층 PCB의 2D 레이아웃

그림: 최종 PCB의 2D 배선 결과

배선 절차:

1. 브리지를 통해 열린 PCB의 패드 위치와 넷을 pads.json으로 내보냅니다.

2. gen_dsn.py로 DSN을 만듭니다. 이 사례의 설정은 신호 배선 10 mil, 전원 배선 20 mil, 간격 8 mil, 비아 드릴 12 mil, 패드 24 mil입니다.

3. Java 21에서 Freerouting v2.1.0을 헤드리스 모드로 실행합니다. 원문 기준 v2.2.0 이상은 Java 25가 필요합니다.

java -jar freerouting.jar -de tester.dsn -do t1.ses -mp 60 -mt 1 --gui.enabled=false

4. check_ses.py로 반환된 SES 파일을 검사해 "open nets 0"이 나오는지 확인합니다.

5. import_ses.mjs로 비아를 먼저, 트레이스를 나중에 가져옵니다.

6. PCB DRC를 실행하고 동박 채움을 다시 생성합니다.

Claude Code가 아직 대신할 수 없는 PCB 설계 검토

이 작업에서 Claude Code는 PCB 화면을 직접 보지 않았습니다. 부품 좌표와 EasyEDA Pro API가 반환한 데이터를 이용했습니다. 따라서 다음 사항은 사람이 검토해야 합니다.

  • 육안 검토: 부품 배치, 배선, 간격, 전체 레이아웃
  • 3D 기구 간섭: 부품 높이, 커넥터 위치, 하우징과의 적합성
  • 발열: 열이 나는 부품과 방열용 동박 면적
  • 데이터시트 대조: 핀 배열, 풋프린트, 치수, 전기적 사양
  • 부품 선정: 대체품, JLCPCB 재고, 설계 요구사항 충족 여부

DRC를 통과해도 회로가 전기적으로 올바르고, 기구적으로 적합하며, 제조 준비가 끝났다는 뜻은 아닙니다. 개발 단계별 도구 비교는 PCB 설계용 AI 도구를 참고하세요.

스크립트 실행 후에도 남은 확인 사항

  • 육안 검토: 실크스크린 겹침, 부품 방향, 전체 배치는 아직 사람이 확인하지 않았습니다.
  • SW3 슬라이드 스위치: 풋프린트 핀 간격이 일정하지 않고 회로도는 슬라이더가 인접 핀을 연결한다고 가정합니다. 실제 접점과 조작 방향을 데이터시트로 확인해야 합니다.
  • USB-C 가장자리: 리셉터클이 기판 밖으로 돌출되어야 하는지 기구 검토가 필요합니다.
  • 배터리 극성: 원본 PDF가 모호해 J5의 1번 핀을 +9 V로 가정했습니다. 반드시 확인해야 합니다.
  • MCU 조달: CH32V006을 위탁 제공하거나 V005로 설계를 변경해야 합니다.
  • 제조 파일: Gerber, BOM, 픽앤플레이스(CPL) 파일을 아직 내보내고 검토해야 합니다.
  • 사람이 수행한 단계: 프로젝트 생성, Apply 클릭, DRC 로그 전달, 각 승인.
  • 브리지 안정성: 메모리 부족으로 Claude Code 백그라운드 작업의 브리지가 두 번 종료되었습니다. 별도 프로세스로 실행해 해결했습니다.

결론

이 사례에서는 Claude Code와 EasyEDA Pro를 이용해 PDF의 47개 부품·3페이지 회로도를 다시 작성하고, DRC 오류가 0건인 2층 PCB까지 배선했습니다. AI가 실제 PCB 설계 작업을 도울 수 있음을 보여주지만, 결과 검증 없이 제조에 넘길 수 있다는 뜻은 아닙니다.

배치·배선·라우팅에는 자동화를 활용하되 각 단계에서 설계 데이터를 다시 읽어 확인해야 합니다. 시각적 검토, 기구 검증, 부품 조달 결정은 엔지니어가 맡아야 합니다.

JLCPCB PCB 조립 서비스 배너
검토를 마친 PCB 설계를 실물 보드로
지금 견적 받기
  • 설계 검토를 마쳤다면 JLCPCB에 PCB 파일을 업로드하고 제조 옵션과 견적을 확인할 수 있습니다.

Claude Code PCB 설계 FAQ

Q. Claude Code만으로 PCB 설계를 완료할 수 있나요?

아닙니다. EasyEDA API를 통해 배치·배선·라우팅을 수행할 수 있지만, 이 사례에서는 화면을 직접 보지 못했습니다. 시각적 검토와 기구 확인, 부품 선정은 엔지니어가 해야 합니다.

Q. EasyEDA Pro에는 AI 에이전트가 사용할 API가 있나요?

있습니다. EasyEDA API skill과 로컬 브리지를 사용하면 Claude Code 등이 열린 EasyEDA Pro 편집기에서 JavaScript API를 실행할 수 있습니다.

Q. EasyEDA Pro API에 자동 배선 기능이 있나요?

이 사례에 사용한 3.2.149 버전의 API에는 자동 배선 호출이 없었습니다. Freerouting에서 배선한 결과를 브리지로 가져왔습니다.

Q. EasyEDA API 브리지는 어떻게 보호하나요?

작업 중에만 실행하고 마치면 종료합니다. 원문에서 사용한 skill 1.1.43의 브리지에는 인증이 없으므로 bridge-server.mjs에 공유 토큰과 Origin 검사를 추가하는 방안을 고려해야 합니다.

Q. 공급업체 부품과 속성이 일치하지 않는다는 경고가 왜 나오나요?

이 사례의 EasyEDA Pro 3.2.149에서는 API로 배치한 부품의 공급업체 속성이 손실되었습니다. 공급업체 ID, MPN, 제조사명 및 관련 속성을 한 번의 modify() 호출에서 다시 설정해 경고를 해결했습니다.

지속적인 성장