본문으로 건너뛰기

제품 기본 사양

이 장에서 다루는 것

PAIO의 확정된 수치·목록·제약을 한곳에 모았습니다. 지원 OS와 설치 패키지, 실행 환경, 기술 스택, AUTOSAR 지원 범위, 입출력 포맷, 데이터 모델, AI·검증·라이선스·보안·업데이트 사양, 그리고 알려진 제약을 다룹니다. 조작 절차는 다루지 않습니다. 대상 독자는 도입 검토자와 문제를 좁혀 가는 사용자이며, 선행 조건은 없습니다.

표에 나오는 용어의 뜻은 21. 용어 사전에서 찾을 수 있습니다.

2.1 제품 식별 정보

제품을 식별하는 기본 정보는 다음과 같습니다.

항목
제품명PAIO
버전0.5.0
실행 파일명 (Windows)PAIO
서명자 (Windows)POPCORNSAR Co.,Ltd.
라이선스상용 (PopcornSAR PAIO License)

Windows 서명자 문자열은 인증서에 적힌 그대로 대문자이며 쉼표 뒤 공백이 없습니다 (POPCORNSAR Co.,Ltd.).

2.2 지원 플랫폼과 설치 패키지

지원 OS와 배포 형식은 다음과 같습니다.

OS아키텍처배포 형식산출물 이름
Windowsx64NSIS 설치 실행 파일, ZIPPAIO-win-x64.exe, PAIO-win-x64.zip
macOSx64, arm64 (Apple Silicon)DMG, ZIPPAIO-mac-x64.dmg, PAIO-mac-arm64.dmg, 각 .zip
Linuxx64DEB, tar.gzPAIO-linux-x64.deb, PAIO-linux-x64.tar.gz

Windows 설치 프로그램(NSIS) 동작

Windows 설치 프로그램에서 사용자에게 보이는 동작은 다음과 같습니다.

  • 원클릭 설치가 아니라 마법사 형태로 진행됩니다.
  • 사용자 단위 설치가 기본입니다.
  • 설치 경로를 바꿀 수 있습니다.
  • 바탕화면 바로가기는 마지막 화면의 체크박스로 결정되며, 이 체크박스는 기본으로 켜져 있습니다.
  • 제거해도 앱 데이터는 남습니다.
  • 한국어 Windows에서도 설치 화면은 영문으로 표시됩니다.

macOS · Linux

  • macOS 빌드는 코드 서명과 공증(notarize)을 모두 수행하지 않습니다.
  • Linux .deb는 아이콘을 /usr/share/icons/hicolor/ 아래에 설치하고 .desktop 파일을 만들어 줍니다.
  • Linux .tar.gz는 시스템 통합이 없으므로, 앱이 첫 실행 시 스스로 ~/.local/share/icons/hicolor/<크기>/apps/paio.png 에 아이콘을 등록합니다. 이미 .deb로 설치되어 있거나 개발 모드로 실행 중이면 이 등록을 건너뜁니다.

2.3 실행 환경

실행 환경과 관련된 값은 다음과 같습니다.

항목
창 기본 크기1200 x 800
창 최소 크기800 x 600
창 프레임프레임 없음 (커스텀 타이틀바). macOS는 hiddenInset
창 표시 시점화면 준비가 끝난 뒤 (초기에는 숨김)
동시에 열 수 있는 에디터 탭최대 20개
워크스페이스 단위 격리userDataworkspace-<md5(cwd) 앞 8자> 로 분리 + 워크스페이스별 단일 인스턴스 락
계정/라이선스/머신 ID 저장워크스페이스와 무관한 머신 전역 경로
로그인 전 화면메인 레이아웃 자체가 생성되지 않습니다

같은 워크스페이스(같은 작업 디렉터리)로 PAIO를 두 번 실행하면 두 번째 인스턴스는 종료되고 기존 창에 포커스가 갑니다. 서로 다른 워크스페이스는 각각 독립 인스턴스로 실행됩니다.

2.4 기술 스택

PAIO는 Electron 기반 데스크톱 앱입니다. 코드 편집은 Monaco, 터미널은 xterm을 씁니다.

2.5 AUTOSAR 지원 사양

스키마 버전

PAIO가 다루는 AUTOSAR 스키마 버전 정보는 다음과 같습니다.

설명
출력 스키마 릴리스R25-11 고정 (AUTOSAR_00054.xsd)모든 익스포트가 xmlns="http://autosar.org/schema/r4.0", xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_00054.xsd" 로 나갑니다
번들 XSDR25-11 (AUTOSAR_00054.xsd), R20-11 (AUTOSAR_00049.xsd)schemas/autosar/VERSIONS.json, 기본값 R25-11
AUTOSAR 기능 버전 축4.3 / 4.4 / 4.5 / 4.6 / 4.7 (기본 4.7)변환 계층의 별도 축입니다. 스키마 릴리스와 독립적입니다
  • ECUC Module Definition 임포트 시에는 파일의 xsi:schemaLocation에서 스키마 번호를 읽어 기록합니다.

지원 프로토콜

프로토콜별 지원 범위는 다음과 같습니다.

프로토콜IVC 토폴로지Signal 에디터
CAN / CAN FD커넥터·컨트롤러·클러스터 모두 추가 가능CAN 탭에서 프레임 편집
LIN커넥터·컨트롤러(LIN Master / LIN Slave)·클러스터 추가 가능LIN 탭에서 프레임 편집
Ethernet커넥터·컨트롤러·클러스터·스위치(Coupling Element) 추가 가능전용 탭 없음
FlexRay추가 메뉴 없음. 임포트된 FlexRay 요소도 화면에 나타나지 않습니다(아래 경고 참조)전용 탭 없음

Signal 에디터의 탭은 CAN, LIN, PDU, SIGNAL 네 개입니다. FlexRayEthernet 탭은 나타나지 않습니다. NM-PDU는 별도 탭이 아니라 통합 PDU 탭에서 편집합니다.

FlexRay 요소는 IVC 에디터에서 사라집니다. IVC 에디터는 FlexRay 커넥터·컨트롤러·클러스터를 화면에 그리기 전에 걸러냅니다. 저장할 때는 화면의 다이어그램만 가지고 IVC 모델을 다시 만들기 때문에, FlexRay 요소가 들어 있는 프로젝트에서 IVC 에디터를 편집하고 저장하면 그 요소가 파일에서 없어집니다. 따라서 FlexRay가 포함된 ARXML을 다룰 때는 IVC 에디터에서 저장하지 않는 것이 안전합니다.

입출력 포맷

PAIO가 주고받을 수 있는 포맷과 각 기능의 진입점은 다음과 같습니다.

방향포맷진입점과 비고
임포트ARXML프로젝트 노드 우클릭 ▸ Import. 다중 선택 가능. ECUC Module Definition / Configuration도 같은 흐름에서 추출됩니다
임포트DBC같은 Import 다이얼로그에서 함께 선택 가능. 인코딩은 항상 auto (UTF-8 BOM만 감지, 없으면 ISO-8859-1)
임포트ECUC Configuration ARXMLModule ▸ Configuration 노드 우클릭 ▸ Import ECUC Configuration
익스포트ARXML (R25-11)프로젝트 노드 우클릭 ▸ Export. 저장 위치를 묻지 않고 <프로젝트>/export/ 에 바로 씁니다. 최대 8종 파일
익스포트ARXML (ECU/Machine Extract)IVC 캔버스에서 ECU 노드 우클릭 ▸ Extract ECU, HPC 노드 우클릭 ▸ Extract Machine
익스포트DBC현재 버전에서는 제공되지 않습니다(13.6 참조)

프로젝트 익스포트가 만드는 파일은 최대 8종이며, 모두 <프로젝트>/export/ 에 놓입니다. 조건을 만족하지 못한 파일은 아예 만들어지지 않으므로, export 폴더에 파일이 8개보다 적은 것은 정상입니다.

파일내용생성 조건
<Project>_System.arxmlSystem, ECU Instance, Machine Design, 클러스터, NM, TP, Global Time 등System 모델을 읽을 수 있을 때(새 프로젝트에는 항상 생성되므로 사실상 항상)
<Project>_SWC.arxmlSWC / 컴포지션 / MachineSWC·컴포지션·Machine 중 하나라도 있을 때
<Project>_Interface.arxml포트 인터페이스인터페이스가 있을 때
<Project>_IDS.arxmlIDSM(침입 탐지) 보안 이벤트 정의IDS 모델이 있고 유효할 때
<Project>_COM.arxmlIVC 토폴로지 + 프레임 / PDU / 시그널항상 (통신 데이터가 없어도 씁니다)
<Project>_DataType.arxml데이터 타입, SW-BASE-TYPE, CompuMethod, Unit, DataConstr항상 (DataType 모델이 없으면 내장 프리미티브만 담아 씁니다)
<Project>_EcucModuleDef.arxmlECUC 모듈 정의design/Module/Definition/ 에 정의가 있을 때
<Project>_EcucConfVal.arxmlECUC 모듈 설정값design/Module/Configuration/ 에 설정이 있을 때

2.6 데이터 모델 사양

데이터 모델과 관련된 값은 다음과 같습니다.

항목
프로젝트 고정 폴더(디스크)doc, design, code, workflow, export, import (6개)
프로젝트 고정 폴더(탐색기 표시)doc, design, code, workflow, export (5개)

JSON 스키마 전체: io-model, ivc, signal, system, interface, datatype, vfb, vfb.layout, swc, service, ids, machine, ecuc-module-def, ecuc-module-config.

import 폴더는 만들어지지만 탐색기에는 보이지 않습니다. 프로젝트를 만들 때 디스크에는 6개 폴더가 모두 생성되지만, 탐색기 트리가 그리는 고정 폴더 목록에는 import 가 빠져 있습니다. 파일 탐색기로 프로젝트 폴더를 열면 import 폴더를 볼 수 있습니다.

새 프로젝트의 design 트리에는 System · VFB · IVC 셋만 준비됩니다. 나머지는 해당 에디터에서 처음 저장하거나 임포트가 그 내용을 만들 때 생깁니다.

자세한 내용은 04. 워크스페이스와 프로젝트에서 확인할 수 있습니다.

2.7 AI 프로바이더 사양

제공되는 AI 프로바이더는 다음 5종이며, 화면의 목록도 이 순서입니다.

화면 표시 이름방식기본 설정
Claude [OPUS]로컬 CLI를 서브프로세스로 실행Claude CLI 설치·로그인 필요
Claude [GLM]HTTP API엔드포인트 https://api.z.ai/api/paas/v4, 모델 glm-5.1, API 키 필요
Gemini로컬 CLI를 서브프로세스로 실행Gemini CLI 설치·로그인 필요
Codex로컬 CLI를 서브프로세스로 실행Codex CLI 설치·로그인 필요
Ollama로컬 HTTPhttp://localhost:11434, 모델 llama3.2:3b (설치된 모델 자동 감지)

Claude [GLM] 은 이름과 달리 Anthropic Claude가 아니라 Zhipu AI의 GLM API를 호출합니다. 실제로 호출하는 엔드포인트는 https://api.z.ai/api/paas/v4 입니다.

  • GLM은 환경 변수 GLM_BASE_URL / GLM_MODEL 로 엔드포인트와 모델을 바꿀 수 있습니다. API 키는 앱 안에서 입력해 암호화 저장하며, 환경 변수 GLM_API_KEY / ZHIPUAI_API_KEY 도 대체 수단으로 인정합니다.
  • 채팅 UI 언어는 한국어(ko) / 영어(en) / 일본어(ja) / 중국어(zh)입니다. 기본값은 ko 이며, 선택한 언어는 응답 언어를 강제하는 시스템 프롬프트로 이어집니다.
  • QuickStart 워크플로 템플릿은 7개 도메인 / 24개 템플릿입니다 (body 6, powertrain 7, adas 3, infotainment 4, chassis 2, gateway 1, diagnostics 1).

2.8 검증(Validation) 사양

검증 기능의 주요 수치는 다음과 같습니다.

항목
등록된 규칙 수263개
심각도등록된 규칙이 쓰는 값은 error(227개) 와 warning(36개) 두 가지입니다. info 를 쓰는 규칙은 없습니다
상태바 배지위반 총 개수를 표시하고, 0이면 숨깁니다. 99 초과 시 99+. 검증 자체가 실패하면 개수 대신 ! 를 표시합니다
실행 시점편집이나 워크스페이스 변경 뒤 손을 멈추면 곧바로 자동 실행
결과 이동위반 행 클릭 시 해당 요소를 소유한 에디터를 엽니다. 대부분은 요소까지 선택·강조하지만, 요소를 찾지 못하면 에디터만 열립니다

각 규칙이 무엇을 검사하는지는 이 장 머리말의 AUTOSAR 표준 제약을 참고하세요.

2.9 라이선스와 기능 제한

권한은 라이선스 상태에 따라 켜지고 꺼집니다. 절차와 화면은 03. 설치 · 로그인 · 라이선스에 있으며, 여기서는 값만 정리합니다.

항목
플랜 종류none / trial / pro / enterprise
라이선스 상태trial / active / expired / readonly
활성 상태 권한읽기 / 쓰기 / 생성 / 삭제 / 익스포트 / 임포트 모두 허용
만료 상태 권한읽기와 임포트만 허용 (쓰기 / 생성 / 삭제 / 익스포트 차단)
기본 상태로그인 + 라이선스 검증 전까지 잠금(읽기 전용)
익스포트온라인 검증을 요구합니다 (오프라인 / 만료 / 변조 시 거부)
인증 백엔드PARS (https://pars.popcornsar.com/pars-ext)

거부될 때 나오는 실제 메시지 문자열은 다음과 같습니다.

상황메시지
만료 상태에서 편집 계열 조작PLAN_EXPIRED: <조작명> is not allowed
설치 무결성 검사 실패 상태에서 익스포트INTEGRITY_EXPORT_DENIED: Installation integrity check failed
서버에 연결하지 못한 상태에서 익스포트OFFLINE_EXPORT_DENIED: A server connection is required
서버가 라이선스를 무효로 판정한 상태에서 익스포트PLAN_EXPIRED: Export is not permitted on this plan

임포트는 만료 상태에서도 항상 허용됩니다. 만료된 라이선스로도 기존 데이터를 읽고 가져올 수는 있게 하려는 정책입니다.

라이선스의 기간과 만료 시각은 서버(PARS)가 발급하는 라이선스 정보를 따릅니다.

2.10 보안 사양

보안과 관련된 설정은 다음과 같습니다.

항목
컨텍스트 격리contextIsolation: true, nodeIntegration: false, sandbox: false, webviewTag: true
CSPdefault-src 'self' / script-src 'self' / style-src 'self' 'unsafe-inline' / img-src 'self' data: https: / font-src 'self' data: / connect-src 'self' + Google OAuth 3개 도메인 + www.plantuml.com / frame-src 'none' / object-src 'none' / base-uri 'self'
네비게이션개발 모드는 localhost, 배포 모드는 file: 만 허용. 문서 뷰어 <webview>file: 만 허용. 외부 링크는 시스템 브라우저로
워크스페이스 격리워크스페이스별 userData 분리 + 워크스페이스별 단일 인스턴스 락
토큰/라이선스 캐시Electron safeStorage 로 암호화
무결성 (Windows)Electron asar 무결성 퓨즈 + 부팅 시 PAIO.exe Authenticode 자체 검사

connect-src 에 허용된 Google 도메인은 accounts.google.com, oauth2.googleapis.com, www.googleapis.com 세 개입니다.

무결성 검사 결과

서명이 유효하지 않은 설치본(변조·재서명)에서는 편집 기능이 세션 동안 읽기 전용으로 잠깁니다. 앱은 종료되지 않습니다. 판정별 동작과 대처, 진단 파일의 위치는 20. 문제 해결 · FAQ 20.1에 있습니다.

설치 후 잠금이 걸렸을 때의 대처는 03. 설치 · 로그인 · 라이선스 3.1.5절을 보세요.

2.11 업데이트 알림 사양

업데이트 알림의 사양은 다음과 같습니다.

항목
방식알림 전용(notify-only) — 새 버전이 있는지 확인해 알리기만 합니다. 자동 다운로드도 자동 설치도 없습니다
피드https://pars.popcornsar.com/pars-ext/updates/paio/latest.yml
주기로그인 직후 1회 + 이후 6시간 간격 백그라운드 확인 (개발 모드에서는 반복 확인 비활성)
수동 확인Help ▸ Check for Updates
상태바 표시새 버전이 있을 때만 표시됩니다. 평소에는 숨어 있습니다
다운로드 경로토스트의 Download 버튼이 다운로드 페이지(https://autosar.io/support)를 엽니다
  • 버전 비교는 major.minor.patch 숫자 세 자리만 봅니다. 프리릴리스 태그는 무시합니다.
  • 확인에 실패하면 토스트 본문이 Update check failed: <사유> 형태가 됩니다. 사유 문자열과 뜻은 20.12 에 정리했습니다.
  • 인디케이터·토스트·수동 확인 등 동작 설명은 3.5 를 참조하세요.

2.12 알려진 제약 사항

현재 버전에서 미리 알아 두어야 할 제약을 세 갈래로 나누어 정리합니다. 정해진 한도, 동작하지 않거나 제공되지 않는 항목, 그리고 오해하기 쉬운 정상 동작입니다.

용량 · 범위 제약

정해진 한도와 범위 제약은 다음과 같습니다.

제약내용
에디터 탭 수최대 20개입니다. 20개를 채운 뒤 새 파일을 열면 아무 안내 없이 열리지 않습니다(콘솔 경고만 남습니다). 탭을 닫아야 다시 열 수 있습니다
ECUC 자동 생성CAN 컨트롤러가 1개라고 가정합니다(첫 번째 CAN 컨트롤러만 반영합니다). 다중 CAN 구성은 지원되지 않습니다
ECUC 자동 생성 모듈Can, CanIf, Com, EcuC, PduR 5종
ECUC 자동 생성 전제 조건대상 ECU에 CAN 커넥터가 없으면 Generate ECUC 버튼과 모듈 체크박스가 모두 비활성입니다. 이때 패널에는 No CAN connector configured. Please add a CAN connector first to enable ECUC generation. 이 표시됩니다
에디터 분할그룹을 만들거나 없앨 때 레이아웃 전체를 다시 그리므로, 스크롤 위치·포커스 같은 화면 상태는 보장되지 않습니다

동작하지 않거나 제공되지 않는 항목

다음 항목은 화면에 보이거나 있을 것으로 기대되지만, 현재 버전에서는 동작하지 않거나 제공되지 않습니다.

항목실제 동작
Export to DBC (프로젝트 컨텍스트 메뉴)현재 버전에서는 제공되지 않습니다. CAN 정보는 프로젝트 Export의 <프로젝트명>_COM.arxml 로 전달합니다(13.6)
DBC 임포트 인코딩 선택인코딩을 고르는 설정은 없으며 항상 자동 감지입니다. BOM 없는 UTF-8 파일은 ISO-8859-1로 읽힙니다(13.2.8)
Signal 에디터 FlexRay / Ethernet이 두 탭은 나타나지 않습니다(7.2)
IVC Add Connector / Add Controller 의 FlexRay메뉴 항목 자체가 없습니다. 임포트된 FlexRay 요소도 화면에 나타나지 않습니다(2.5 경고 참조)
프로젝트 import 폴더디스크에는 만들어지지만 탐색기 트리에는 표시되지 않습니다(2.6절 참조)
design ▸ Module 노드 더블클릭Coming Soon 안내만 있는 빈 탭이 열립니다. 그 아래 Definition / Configuration 노드를 열어야 합니다

그 밖에 알아 둘 동작

다음은 문제로 오해하기 쉬운 정상 동작입니다.

동작이유
ARXML 익스포트가 저장 위치를 묻지 않습니다프로젝트 구조가 고정되어 있어 항상 <프로젝트>/export/ 에 씁니다
임포트를 시작하면 저장하지 않은 편집이 먼저 저장됩니다임포트가 모델을 다시 쓰고 열린 에디터가 디스크에서 다시 읽으므로, 저장하지 않은 편집을 미리 내보내지 않으면 그 편집이 사라집니다
임포트 결과의 노드가 그리드에 줄지어 배치됩니다ARXML에 좌표가 없으므로 임포터가 자동 배치합니다. 한 번 옮겨 두면 재임포트해도 그 좌표가 유지됩니다
내보낸 ARXML을 다른 곳에서 읽으면 화면 배치가 복원되지 않습니다다이어그램 좌표는 프로젝트 안의 IVC 모델과 *.vfb.layout 에만 있고 ARXML로는 나가지 않습니다. 자세한 내용은 01. 제품 개요 1.3절 참고
11종 내장 프리미티브가 DataType 모델에 없습니다프리미티브는 메모리에만 존재하는 내장 정의이며 파일에 저장하지 않는 것이 정상입니다. 자세한 내용은 10. DataType 에디터 참고
외부에서 파일이 바뀌어도 편집 중이면 다시 읽지 않습니다저장하지 않은 편집을 덮어쓰지 않기 위해서입니다. 이때는 다시 읽지 않았다는 경고가 표시되고 화면의 모델이 유지됩니다. 저장하거나 되돌린 뒤에는 정상적으로 반영됩니다