Altium Designer 확장 기능
Altium Designer's extension model lets you add functionality that runs inside the design environment itself – not alongside it.
확장은 C# 또는 C++로 Altium Designer SDK를 사용해 빌드한 컴파일된 DLL입니다. 이들은 Altium Designer의 클라이언트-서버 아키텍처에 동등한 수준의 모듈로 연결되며, 사용자 관점에서는 기본 제공 기능과 구분되지 않습니다. 확장은 메뉴 항목, 패널, 도구 모음, 명령을 추가할 수 있고, PCB, Schematic, BOM, 프로젝트 데이터를 포함한 전체 설계 객체 모델에 접근하고 수정할 수 있으며, 일반적인 Outjob 워크플로의 일부로 출력물도 생성할 수 있습니다.
이것은 스크립팅과는 다른 모델입니다. 스크립트는 런타임에 인터프리트되며 스크립팅 API의 일부 기능만 사용할 수 있습니다. 반면 확장은 컴파일되며, SDK 전체에 접근할 수 있고, 자체 문서 편집기와 출력 생성기를 구현할 수 있습니다. 대규모 환경에서 안정적으로 실행되어야 하거나, 설계 환경과 깊이 통합되어야 하거나, 여러 엔지니어에게 지원되는 도구로 배포되어야 하는 기능이라면 확장이 올바른 접근 방식입니다.
확장은 실제로 어디에 사용되는가
-
Custom panels and UI within Altium Designer – 가장 일반적인 사용 사례입니다. 확장은 외부 시스템의 정보를 보여주는 도킹 가능한 패널을 추가합니다. 예를 들면 ERP의 부품 상태, 내부 데이터베이스의 승인된 제조업체 데이터, 실시간 공급망 데이터 등을 설계 환경 내부에서 직접 표시할 수 있습니다. 엔지니어는 도구를 전환하지 않고도 필요한 정보를 확인할 수 있습니다.
-
Proprietary output generators – Altium Designer의 Outjob 시스템은 동등한 수준의 출력 유형으로 연결되는 사용자 정의 출력 생성기를 지원합니다. 확장은 기본적으로 지원되지 않는 형식의 출력물을 생성할 수 있습니다. 예를 들면 사용자 정의 넷리스트 형식, 독점 제조 데이터 구조, 내부 문서 템플릿 등이 있으며, 이를 기존 출력 및 릴리스 워크플로에 통합할 수 있습니다.
-
Design rule extensions – 확장은 PCB 편집기의 기본 DRC 시스템 내에서 실행되는 사용자 정의 DRC 검사를 추가할 수 있습니다. 이 검사는 동일한 패널에 표시되고, 동일한 위반 마커를 생성하며, 기본 제공 DRC와 동일한 객체로 크로스 프로빙됩니다. 엔지니어는 해당 검사가 사용자 정의라는 사실을 알 필요가 없습니다.
-
Automation beyond scripting – 확장은 스크립트로는 비현실적인 복잡한 설계 작업 시퀀스를 자동화할 수 있습니다. 예를 들어 대규모 설계를 반복 처리하거나, 여러 파일에 걸친 배치 작업을 수행하거나, 설계 작업 중 외부 API와 통합하는 작업이 가능합니다. 확장은 컴파일되므로 애플리케이션 자체와 같은 수준의 성능으로 실행됩니다.
확장 vs 스크립팅: 무엇을 언제 사용해야 하는가
스크립팅은 빠른 반복 작업, 일회성 자동화, 그리고 자주 수정해야 하는 작업에 적합합니다. 스크립트는 더 빨리 작성할 수 있고 변경도 더 쉽습니다.
전체 SDK 접근, 프로덕션 수준의 안정성, UI 구성 요소, 사용자 정의 문서 편집기 또는 출력 생성기, 혹은 팀 전체에 관리형 도구로 배포가 필요할 때는 확장을 사용하세요. 확장은 빌드 단계와 개발 환경이 필요하지만, 팀 워크플로의 표준적인 일부가 되는 기능이라면 그 투자는 충분한 가치가 있습니다.
배포 및 유지관리
확장은 Altium Workspace를 통해 배포되고 관리됩니다. 게시가 완료되면 엔지니어는 수동 파일 배포나 로컬 설치 과정 없이 자신의 Workspace에서 확장을 설치할 수 있습니다. 업데이트도 같은 방식으로 관리됩니다. 따라서 확장은 개인용 유틸리티에 그치지 않고 팀 도구로도 실용적입니다. 배포와 업데이트 문제가 이미 해결되어 있기 때문입니다.
확장이 적합하지 않은 경우
요구사항이 단순한 자동화나 일회성 데이터 변환이라면, 스크립팅이 더 적은 오버헤드로 더 빠르게 목적을 달성하게 해줍니다. 확장은 해당 기능이 신뢰할 수 있고, 유지관리 가능하며, 워크플로의 지원되는 일부로서 여러 엔지니어가 사용할 수 있어야 할 때 의미가 있습니다. 무엇으로 시작해야 할지 확신이 없다면 스크립팅으로 시작하세요. 스크립트가 제약을 넘어서는 순간, 확장은 자연스러운 다음 단계가 됩니다.