Altium Designer에서 출력물 생성을 자동화하기
Output generation is not a manual step at the end of a project – it is a configurable, automatable process that should run the same way every time.
Altium Designer의 출력 생성 시스템은 출력 작업 파일(OutJob)을 중심으로 구성됩니다. OutJob은 제작 데이터, 조립 데이터, 문서, BOM, 검증 검사, 사용자 지정 보고서 등 각종 출력을 모아 설정한 컬렉션이며, 각 출력의 설정, 형식, 대상 위치를 한 번만 정의하면 됩니다. 동일한 OutJob은 어떤 프로젝트에도 실행할 수 있습니다. 프로젝트가 변경되면 OutJob을 실행해 모든 출력을 현재 상태로 다시 생성할 수 있습니다. 출력 요구사항이 바뀌면 OutJob만 한 번 업데이트하면 됩니다.
OutJob은 개별 엔지니어에게 편의를 제공하는 수준에 그치지 않습니다. 팀 차원에서는 무엇을, 어떤 형식으로, 어디에 출력할지를 표준화하는 메커니즘이며, 각 엔지니어가 자신만의 설정으로 수동 출력하면서 발생하는 편차를 없애줍니다.
출력 생성 아키텍처 – OutJob이 생성하는 것
-
Fabrication outputs: Gerber 파일(RS-274X, X2), NC 드릴 파일, ODB++, IPC-2581, 보드 스택 보고서.
-
Assembly outputs: 픽앤플레이스 파일, 조립 도면, 테스트 포인트 보고서.
-
Documentation outputs: 회로도 출력물, PCB 출력물, 3D 모델(STEP), 조립 도면.
-
BOM outputs: 표준 및 사용자 지정 형식의 BOM 보고서.
-
Validation outputs: DRC 보고서, ERC 보고서, 차이점 보고서, 풋프린트 비교 보고서. 이러한 항목은 검사 실패 시 출력 생성을 차단하도록 설정할 수 있습니다.
-
Netlist outputs: 후속 공정 도구용 다양한 넷리스트 형식.
-
Custom outputs: OutJob에 포함된 스크립트를 사용하면 워크플로에 필요한 어떤 형식으로도 출력을 생성할 수 있습니다.
릴리스를 통한 출력 생성 자동화
프로젝트를 Workspace를 통해 릴리스하면 OutJob 실행이 릴리스 프로세스에 통합됩니다. 먼저 검증 검사가 실행되며, 하나라도 실패하면 릴리스가 중단됩니다. 출력은 검증된 설계 상태에서 생성되어 버전 관리되는 릴리스 아티팩트로 Workspace에 저장됩니다. 즉, 릴리스 출력은 항상 설계의 특정 리비전에 추적 가능하며, 검증된 정상 상태에서 생성되고, 팀 전체가 접근할 수 있는 위치에 저장됩니다.
이는 로컬에서 출력을 생성해 파일을 공유하는 방식과는 본질적으로 다릅니다. 출력이 어떤 설계 리비전에 대응하는지 불분명할 일이 없고, 다른 설정으로 다시 생성될 위험도 없으며, 특정 엔지니어의 PC나 환경 설정에 의존하지도 않습니다.
사용자 지정 출력 생성기
Altium Designer가 기본적으로 지원하지 않는 출력 형식의 경우, SDK는 Output Generator API를 제공합니다. 사용자 지정 출력 생성기 확장은 Outjob 시스템에 정식 출력 유형으로 플러그인되며, 기본 제공 출력과 동일하게 OutJob 편집기에 표시되고, 설정값을 구성하고, 출력 컨테이너에 할당하며, 자동 릴리스의 일부로 실행할 수 있습니다. 사용자 입장에서는 사용자 지정 출력 생성기와 기본 출력 생성기를 구분할 수 없습니다.
이 방식은 독점 제조 형식, 사내 문서 템플릿, 사내 도구용 사용자 지정 넷리스트 형식, 또는 Altium이 기본 제공하지 않는 모든 출력 요구사항에 적합합니다.
출력 관리에서 흔히 나타나는 실패 패턴
-
Manual generation with per-engineer settings – 각 엔지니어가 자신의 PC에서 자신의 설정으로 출력을 생성합니다. 그 결과 엔지니어마다, 실행할 때마다 결과가 미묘하게 달라집니다. 제조 단계에서 문제가 발생하면 출력이 어떤 설계 리비전에서 생성되었는지, 사용된 설정이 올바른지 파악하기가 어려워집니다.
-
Outputs stored outside the Workspace – 로컬 또는 공유 네트워크 폴더에 저장된 출력 파일은 이를 생성한 설계와의 연결이 끊어지기 쉽습니다. 특히 리비전이 여러 번 변경된 뒤에는 어떤 설계 리비전이 어떤 출력 세트에 해당하는지 불분명해집니다. Workspace 릴리스 메커니즘은 출력을 버전 관리되는 아티팩트로 특정 설계 리비전에 연결함으로써 이 문제를 해결합니다.
-
Validation and output generation as separate manual steps – 엔지니어가 출력을 생성하기 전에 DRC와 ERC를 수동으로 실행하면, 검사와 출력 생성이 공식적으로 연결되지 않습니다. 어떤 설계가 한 시간 전에 검증을 통과했더라도, 그 다음 한 시간 뒤 누군가 변경을 가한 후 출력이 생성될 수 있습니다. 검증을 OutJob에 통합하면 출력이 생성되는 동일한 설계 상태를 기준으로 검증이 실행되도록 보장할 수 있습니다.
-
OutJob configuration drift between projects – OutJob을 프로젝트 간에 복사한 뒤 각자 따로 수정하면 시간이 지나면서 설정이 서로 달라집니다. 출력 요구사항이 바뀌면 여러 OutJob을 각각 업데이트해야 합니다. Workspace에서 OutJob을 공유 템플릿으로 관리하고 프로젝트에 업데이트를 반영하면 이러한 드리프트를 방지할 수 있습니다.
사용자 지정 출력 생성기에 투자해야 하는 시점
사용자 지정 출력 생성기는 제조 파트너나 후속 공정 도구가 Altium이 기본 생성하지 않는 형식을 요구하고, 그 출력이 관리된 릴리스 프로세스의 일부로 일관되게 생성되어야 할 때 적합합니다. 형식이 Altium의 기본 출력 결과를 후처리해서 만들 수 있는 경우, 예를 들어 BOM CSV를 특정 구조로 변환하는 경우라면, 전체 SDK 확장보다 OutJob 내 스크립트가 더 단순한 경우가 많습니다. 반면 형식 생성에 스크립팅 시스템으로는 접근할 수 없는 수준의 설계 객체 접근이 필요하거나, 해당 출력 유형이 OutJob UI에 정식 구성 가능한 출력으로 통합되어야 한다면 확장을 구축하는 것이 적절합니다.