설치 · 로그인 · 라이선스
이 장에서 다루는 것
PAIO를 설치해 처음 실행하고, 계정으로 로그인하고, 라이선스 상태에 따라 어떤 기능이 열리고 막히는지를 안내합니다. 업데이트 알림, 앱 정보 확인, 이슈 신고 경로도 함께 정리합니다. 대상 독자는 PAIO를 처음 설치하는 사용자와 라이선스 상태를 확인해야 하는 사용자입니다. 선행 조건은 배포받은 설치 파일과 사용할 Google 계정 또는 이메일 주소입니다. 별도의 계정 발급 신청은 필요하지 않으며, 처음 로그인하는 계정은 자동으로 만들어지고 체험판으로 시작합니다.
설치 패키지 이름과 지원 플랫폼 목록은 02. 제품 기본 사양에 있습니다. 이 장은 그 패키지를 실제로 설치하고 사용하기 시작하는 절차를 다룹니다.
3.1 설치
3.1.1 Windows — 설치 프로그램(NSIS)
-
PAIO-win-x64.exe를 실행합니다. 설치 프로그램은 사용자 단위(per-user) 로 동작하므로 관리자 권한(UAC) 승격을 요구하지 않으며, "이 컴퓨터의 모든 사용자" 같은 선택 화면도 나타나지 않습니다. -
이미 PAIO가 설치되어 있으면 Program Maintenance 화면이 먼저 나타납니다. 세 가지 중 하나를 선택합니다.
선택 화면 설명 실제 동작 Modify (기본 선택) 현재 설정 그대로 다시 설치합니다. 사용자 데이터와 설정은 유지됩니다 일반 설치 절차로 진행합니다 Repair 누락되거나 손상된 파일을 복구합니다. 사용자 데이터와 설정은 유지됩니다 일반 설치 절차로 진행합니다 Remove 이 컴퓨터에서 PAIO를 제거합니다 기존 제거 프로그램을 실행하고, 제거가 끝나면 설치 프로그램도 그대로 종료합니다(설치는 진행하지 않습니다) PAIO에는 선택 설치할 구성 요소가 없으므로 Modify 와 Repair 는 같은 절차를 수행합니다. 설명 문구만 다를 뿐 결과는 동일합니다.
-
License Agreement 화면에서 약관을 읽고 I agree to the License Agreement 를 선택합니다. 두 라디오 버튼은 처음에 모두 해제되어 있으며, I agree to the License Agreement 를 선택하기 전까지는 다음 단계 버튼이 비활성 상태로 남습니다.
-
설치 폴더를 지정합니다. 기본값은
%LOCALAPPDATA%\Programs\PAIO이며 변경할 수 있습니다. -
마지막 화면의 Create a desktop icon 체크박스는 기본으로 켜져 있습니다.
참고로 설치 프로그램의 UI 언어는 영어로 고정되어 있습니다(Windows 표시 언어가 한국어여도 영어로 표시됩니다). 제거 시 사용자 데이터는 지워지지 않습니다.
3.1.2 Windows — 설치 없이 사용(ZIP)
설치 없이 사용하려면 PAIO-win-x64.zip 을 원하는 위치에 풀고 PAIO.exe 를 실행합니다.
이 방식에서는 바로가기와 시작 메뉴 항목이 만들어지지 않습니다.
3.1.3 macOS
PAIO-mac-x64.dmg(Intel) 또는PAIO-mac-arm64.dmg(Apple Silicon)를 열고 PAIO를 Applications 폴더로 끌어다 놓습니다.- 첫 실행 시 Gatekeeper 경고가 나타납니다. macOS 빌드는 코드 서명과 공증(notarize)을 모두
수행하지 않기 때문입니다. 시스템 설정 ▸ 개인정보 보호 및 보안에서 실행을 허용합니다.
"손상되었기 때문에 열 수 없습니다" 로 표시되는 경우에는 터미널에서
xattr -dr com.apple.quarantine /Applications/PAIO.app을 실행한 뒤 다시 엽니다.
3.1.4 Linux
- Debian/Ubuntu:
sudo dpkg -i PAIO-linux-x64.deb또는sudo apt install ./PAIO-linux-x64.deb로 설치합니다. 아이콘과.desktop항목이 시스템 전역으로 함께 등록됩니다. - tar.gz:
PAIO-linux-x64.tar.gz를 원하는 위치에 풀고 실행 파일을 실행합니다. 이 방식에는 시스템 등록이 없으므로, 앱이 첫 실행 때 스스로 등록을 수행합니다.~/.local/share/applications/paio.desktop를 만듭니다.~/.local/share/icons/hicolor/<크기>/apps/paio.png에 8개 크기(16, 24, 32, 48, 64, 128, 256, 512)의 아이콘을 복사합니다.
3.1.5 설치본 무결성 검사 (Windows 전용)
PAIO는 실행 직후 백그라운드에서 PAIO.exe 자신의 코드 서명(Authenticode)을 검사합니다. 이
검사는 Windows 설치본에서만 수행합니다. 검사에 1초 안팎이 걸리므로, 잠금이 걸리는 경우
안내는 창이 나타난 뒤에 표시됩니다. 검사 결과별 동작은 다음과 같습니다.
| 검사 결과 | 동작 |
|---|---|
정상 서명 + 서명자가 POPCORNSAR Co.,Ltd. | 정상 실행 |
| 서명 없음 | 정상 실행 |
| 인증서 만료, 폐기 서버 접속 불가 등 판정 불가 | 아무것도 강제하지 않고 정상 실행 |
| 해시 불일치 (서명 후 실행 파일이 변조됨) | 기능 잠금 |
| 다른 서명자로 재서명됨 | 기능 잠금 |
잠금이 걸렸을 때 나타나는 안내와 진단 파일의 위치는 20. 문제 해결 · FAQ 20.1에 있습니다.
잠금이 걸리더라도 앱이 종료되지는 않습니다. 대신 편집 기능이 세션 동안 읽기 전용으로 고정되고, 다음 메시지가 한 번 표시됩니다.
PAIO could not verify the integrity of its installation.Please reinstall PAIO. Editing is disabled for this session.
이 잠금은 라이선스가 정상이어도 해제되지 않습니다. 이 상태에서는 익스포트도 거부됩니다 (3.4.5 참조). 정상 배포본을 다시 설치하는 것이 유일한 해결책입니다.
3.2 첫 실행 — 로그인
PAIO는 인증이 확인되기 전에는 메인 화면(에디터 레이아웃)을 만들지 않습니다. 로그인 화면은
전체 화면 오버레이로 나타나며, 이때 화면 위쪽에는 로고와 가운데 PAIO 제목, 창 조작
버튼(최소화 / 최대화 / 닫기)만 있습니다. 로그인이 끝나야 사이드바·에디터·상태바가 있는 작업 화면이 만들어집니다.
비밀번호는 사용하지 않습니다(passwordless). 로그인 방법은 Google 계정과 이메일 일회용 코드(OTP) 두 가지입니다.
3.2.1 로그인 화면

로그인 화면. 인증이 끝나기 전에는 이 화면이 창 전체를 덮으며, 뒤의 작업 화면은 만들어지지 않는다.
화면 제목은 Login or Register, 부제는 Get started with PAIO 입니다.
Continue with Google 버튼, 구분선, 이메일 입력란, Continue 버튼이 차례로 놓여
있습니다. 입력값이 비어 있거나 @ 가 없으면 Please enter a valid email address. 가
표시되고 요청이 나가지 않습니다. 오류 문구는 입력을 고치면 사라집니다.

@ 가 없는 값으로 Continue 를 눌렀을 때. 오류 문구가 카드 위쪽에 남고 입력란 테두리가 붉게 바뀐다.
3.2.2 방법 1 — Google 계정
- Continue with Google 을 누릅니다. 시스템 브라우저가 열리고 PopcornSAR 인증 서버가 중개하는 Google 로그인 화면이 나타납니다. Google 인증 키는 앱에 들어 있지 않습니다.
- 브라우저에서 인증을 마칩니다.
- 앱이 자동으로 승인 여부를 확인하며 기다리다가, 승인이 확인되면 자동으로 로그인 상태가 됩니다. 브라우저에서 앱으로 무언가를 붙여 넣을 필요는 없습니다. 기다리는 동안 로그인 화면의 버튼과 입력란은 비활성 상태로 남습니다.
- 10분 안에 인증을 마치지 않으면 대기가 끝나고 로그인 화면이 그대로 남습니다. 이때 오류 메시지는 표시되지 않습니다. Continue with Google 을 다시 누릅니다.
3.2.3 방법 2 — 이메일 일회용 코드(OTP)

Enter your code 화면. 부제에 코드를 보낸 주소가 표시된다(그림은 예시 주소).
- 이메일 주소를 입력하고 Continue 를 누릅니다. 발송에 실패하면 서버가 돌려준 사유가 표시됩니다.
- 발송에 성공하면 Enter your code 화면으로 넘어갑니다. 부제에 코드를 보낸 주소가 표시됩니다.
- 메일로 받은 6자리 숫자를 입력하고 Continue 를 누릅니다. 입력란은 숫자만 받으며
6자리로 제한됩니다. 6자리가 아니면
Please enter a valid 6-digit code.가 표시되고 전송되지 않습니다. 코드는 발송 후 10분 동안만 유효하며, 한 번 사용하면 다시 쓸 수 없습니다. - 코드가 틀리거나 유효 시간이 지났으면
Invalid or expired code가 표시됩니다. - 코드가 오지 않으면 Resend code 를 누릅니다. 이 버튼은 화면에 들어온 직후부터 60초
동안 비활성 상태이며, 남은 시간이
Resend code (59s)처럼 버튼 라벨에 초 단위로 표시됩니다. - Back to login 을 누르면 처음 화면으로 돌아갑니다.
인증에 성공하면 로그인 화면이 사라지고 곧바로 작업 화면이 나타납니다. 계정과 라이선스 상태는 상단바 오른쪽의 사용자 아이콘 ▸ Profile 에서 확인합니다(3.3 참고).
3.3 사용자 메뉴와 프로필
상단바 오른쪽의 사용자 아이콘을 누르면 Profile, 구분선, Sign Out 으로 이루어진 메뉴가 열립니다. 아이콘에는 사용자 이름에서 뽑은 이니셜(최대 2글자)이 표시됩니다.
상단바 오른쪽의 사용자 메뉴. 아바타에는 이름에서 뽑은 이니셜이 표시된다.
Profile 을 선택하면 프로필 화면이 열립니다. 표시되는 항목은 다음과 같습니다.

Profile 화면. 편집할 수 있는 값은 없다(그림은 예시 주소).
| 구역 | 항목 | 내용 |
|---|---|---|
| Account | 로그인한 계정의 이메일 (읽기 전용) | |
| Plan | Current Plan | Trial / Pro / Enterprise |
| Plan | Status | Active / Expired / Read-only, 남은 일수를 알면 (n days left) 를 덧붙임 |
화면 아래에는 Sign Out 버튼이 있습니다. 프로필 화면은 오른쪽 위의 닫기 버튼으로 닫습니다. 프로필에서 편집할 수 있는 값은 없습니다.
Sign Out 을 누를 때 저장하지 않은 탭이 있으면 확인 창이 나타납니다. 제목은 Sign Out, 버튼은 Save & Sign Out / Sign Out / Cancel 입니다. 저장할 탭이 없으면 확인 없이 바로 로그아웃합니다.
3.4 라이선스와 기능 제한
3.4.1 플랜과 상태
권한은 라이선스 상태에 따라 켜지고 꺼집니다.
플랜은 none, trial, pro, enterprise 네 가지이고, 상태는 trial, active,
expired, readonly 네 가지입니다. 권한은 플랜이 아니라 상태로 결정됩니다.
expired 와 readonly 만 제한 상태이고, 나머지는 모두 전체 권한입니다.
readonly는 3.1.5의 무결성 검사가 기능 게이트에 잠금을 건 경우에 쓰입니다. 이 상태는 라이선스 응답으로 덮어쓰이지 않습니다.- 체험 기간은 앱에서 처음 로그인한 시점부터 30일입니다. 내려받거나 설치한 날이 아니라 첫 로그인 시각이 기준입니다. 남은 일수는 서버가 내려주는 체험 만료일로 계산합니다.
3.4.2 권한 표
상태별로 허용되는 동작을 정리하면 다음과 같습니다.
| 상태 | 읽기 | 편집(Modify) | 생성(Create) | 삭제(Delete) | 익스포트(Export) | 임포트(Import) |
|---|---|---|---|---|---|---|
trial / active | O | O | O | O | O | O |
expired / readonly | O | X | X | X | X | O |
- 임포트는 어떤 상태에서도 허용됩니다. 만료 상태에서도 ARXML/DBC를 읽어 들여 내용을 볼 수 있습니다.
- AI 어시스턴트도 제한 상태에서는 쓸 수 없습니다. 챗봇이 프로젝트 파일을 고칠 수 있으므로
편집과 같은 관문을 지납니다. 다만 차단되는 모습이 다른 기능과 달라서, 업그레이드
다이얼로그가 뜨는 대신 상단바의 챗봇 버튼이 비활성으로 바뀌고 툴팁이
Plan expired가 됩니다. 채팅 입력란도 비활성이 되며 안내 문구는Plan expired — upgrade to continue입니다.
3.4.3 권한이 없을 때 보이는 화면
권한 없이 동작을 시도하면 라이선스 잠금이 이를 막고 Upgrade Required 다이얼로그가 나타납니다.
다이얼로그에는 세 개의 플랜 카드가 표시됩니다.
| 카드 | 가격 표기 | 배지 | 카드 하단 버튼 |
|---|---|---|---|
| Trial | Free | Recommended | 없음 |
| Pro | Contact | 없음 | Coming Soon |
| Enterprise | Custom | OEM / Tier 1 | Contact Sales |
지금 쓰고 있는 플랜의 카드는 위 배지 대신 Current 배지가 붙고 테두리가 강조됩니다.
카드 하단 버튼을 누르면 지원 Q&A 페이지(https://autosar.io/support/qna)가 시스템
브라우저로 열립니다. 아래쪽의 Later 버튼은 다이얼로그를 닫습니다.
표시와 동작이 다른 항목: 앱 안에서 결제로 이어지는 경로와 라이선스 키 입력 화면은 없습니다. 구매와 갱신은 위의 링크를 통한 문의로 진행합니다.
라이선스가 활성에서 만료로 바뀌면 닫을 수 없는 형태의 같은 다이얼로그가 화면을 덮습니다. 이때는 닫기 버튼과 Later 가 사라지고, 위쪽 제목 표시줄만 남기고 화면을 덮습니다. 라이선스가 다시 활성이 되면 다이얼로그는 자동으로 닫힙니다.
3.4.4 라이선스 상태 확인
상태바 오른쪽에 현재 라이선스가 상시 표시됩니다. 툴팁은 Click to manage license 입니다. 상태별 표시는 다음과 같습니다.
상태바 오른쪽의 라이선스 표시. 누르면 플랜에 따라 다른 창이 열린다.
| 상태 | 상태바 표시 |
|---|---|
expired / readonly | License Expired |
| 만료까지 7일 이하 | 플랜 이름과 남은 일수 (예: Pro - 3 days, Trial - 3 days) |
| Trial (남은 일수가 7일을 넘을 때) | Trial — <n>d, 남은 일수를 모르면 Trial |
| 그 외 | 플랜 이름 (Pro, Enterprise) |
표시를 클릭하면 현재 플랜에 따라 다른 화면이 열립니다.
| 현재 플랜 | 클릭 시 |
|---|---|
trial | Upgrade Required 다이얼로그 (3.4.3) |
| 그 외 | License Info 다이얼로그 |
License Info 다이얼로그는 상태에 따라 제목과 구성이 바뀝니다.
| 상태 | 제목 | 추가 요소 |
|---|---|---|
| 활성 | License Info | 없음 |
| 만료까지 7일 이하 | License Expiring Soon | 경고 문구 + Renew Pro 버튼 |
| 만료됨 | License Expired | 오류 문구 + Renew Pro 버튼 |
표시되는 항목은 Plan, Expires(만료된 경우 Expired), 그리고 만료되지 않았을 때 함께
나오는 Remaining(남은 일수)입니다. 만료 7일 이하에서는 Remaining 이 경고색으로 표시됩니다. Renew Pro 를 누르면 3.4.3의 업그레이드
다이얼로그가 열립니다. 다이얼로그는 닫기 버튼, 바깥 영역 클릭, Esc 로 닫습니다.
3.4.5 오프라인 동작과 익스포트
라이선스 정보는 암호화되어 로컬에 캐시되며, 캐시 유효 기간은 4시간입니다.
- 서버에 연결되지 않아도 캐시가 유효한 동안에는 마지막으로 확인된 권한으로 계속 작업할 수 있습니다.
- 서버가 명시적으로 "유효하지 않음"을 응답하면 캐시를 즉시 버리고 잠금 상태로 전환합니다. 이 경우 오프라인 캐시로 되살릴 수 없습니다.
- 앱은 부팅 직후, 창이 다시 포커스를 얻을 때, 그리고 로그아웃한 뒤 다시 로그인했을 때 라이선스를 다시 확인합니다. 주기적으로 확인하지는 않습니다.
익스포트는 다른 동작과 달리 실행할 때마다 라이선스를 한 번 더 확인합니다. 프로젝트 Export(ARXML 전체), Extract ECU, Extract Machine, DataType 익스포트가 모두 이 확인을 지납니다. 거부되는 경우와 메시지는 다음과 같습니다.
| 상황 | 메시지 |
|---|---|
| 무결성 검사에 걸린 설치본 | INTEGRITY_EXPORT_DENIED: Installation integrity check failed |
| 서버에 연결할 수 없고 쓸 수 있는 캐시도 없음 | OFFLINE_EXPORT_DENIED: A server connection is required |
| 서버가 로그인 상태를 무효로 판정 (다른 기기 로그인으로 세션이 끊긴 경우 등) | PLAN_EXPIRED: Export is not permitted on this plan |
만료 상태에서는 익스포트 메뉴 자체가 3.4.3의 업그레이드 다이얼로그로 먼저 막히므로, 위 세 메시지는 메뉴를 통과한 뒤에 나오는 결과입니다.
메시지는 익스포트 결과의 오류 목록에 담겨 표시됩니다. 익스포트 절차 자체는 13. 임포트 · 익스포트에서 다룹니다.
3.4.6 세션 무효화
하나의 계정으로 동시에 사용할 수 있는 기기는 1대입니다. 다른 기기에서 같은 계정으로 로그인하면 이 기기의 세션이 무효화됩니다. 같은 기기에서 다시 로그인하는 경우에는 기존 세션을 그대로 이어 쓰므로 무효화되지 않습니다. 앱 안에 등록 기기 목록이나 원격 해제 기능은 없으며, 밀려난 기기는 그 기기에서 다시 로그인하면 됩니다.
무효화된 것을 이 기기가 알아차리는 시점은 다음 라이선스 재확인 때입니다(3.4.5). 따라서 다른 기기에서 로그인한 직후가 아니라, 이 기기의 창을 다시 클릭해 활성화하거나 앱을 다시 켤 때 알림 창이 나타납니다.
- 저장하지 않은 탭이 없으면 Signed in on Another Device 알림 창이 나타납니다. 본문은
You've been signed out because your account was used on another device.이고, OK 를 누르면 로그아웃되어 로그인 화면으로 돌아갑니다. - 저장하지 않은 탭이 있으면 같은 제목의 저장 확인 창이 먼저 나타납니다. 버튼은 Save & Sign Out 과 Sign Out 이며, 취소는 없습니다. 저장에 실패하면 재시도를 묻는 Save Failed 창이 나타납니다.
3.5 업데이트 알림
PAIO의 업데이트 알림은 새 버전이 나왔는지 알려 주기만 합니다. 앱이 스스로 내려받거나 설치하지 않습니다.
- 앱은 배포 피드에서 최신 버전 문자열만 읽어 현재 버전과 비교합니다.
- 첫 확인은 로그인을 마치고 작업 화면이 나타난 뒤 한 번 수행합니다. 로그인 화면에 머무는 동안에는 확인하지 않습니다. 이후에는 6시간 간격으로 반복합니다.
- 새 버전이 있으면 상태바 오른쪽에 다운로드 아이콘이 나타납니다. 툴팁은
Update available · <버전>입니다. 최신 상태이거나 확인에 실패하면 아이콘은 사라집니다. - 백그라운드 확인으로 새 버전을 처음 발견하면 오른쪽 아래에 Software Update 토스트가
한 번 표시됩니다. 본문은
PAIO <버전> is now available.이고 버튼은 Later 와 Download 입니다. 이후 백그라운드 확인에서는 인디케이터만 남고 토스트는 다시 뜨지 않습니다. 백그라운드 확인은 최신 상태와 확인 실패를 알리지 않습니다. - 세션당 1회 한도는 이 백그라운드 토스트에만 적용됩니다. 아래의 수동 확인은 이 한도를 쓰지 않으며, 몇 번을 확인하든 그때마다 결과 토스트가 뜹니다.
- 수동으로 확인하려면
Help ▸ Check for Updates를 선택하거나 상태바의 다운로드 아이콘을 클릭합니다. 인디케이터 클릭은 다운로드 페이지를 여는 것이 아니라 확인을 다시 실행하는 것입니다. 수동 확인은 최신 상태와 실패를 포함해 결과가 항상 토스트로 표시됩니다.
| 수동 확인 결과 | 토스트 본문 | 버튼 |
|---|---|---|
| 새 버전 있음 | PAIO <버전> is now available. | Later, Download |
| 최신 상태 | PAIO is up to date. | OK (5초 뒤 자동 사라짐) |
| 확인 실패 | Update check failed: <사유> | Dismiss (10초 뒤 자동 사라짐) |
Download 를 누르면 다운로드 안내 페이지(https://autosar.io/support)가 시스템
브라우저로 열립니다. 설치는 3.1의 절차를 따라 직접 진행합니다. 확인 실패 토스트의 <사유>
자리에 오는 문자열과 그 뜻은 20.12 에 정리했습니다.
3.6 앱 정보 확인
Help ▸ About PAIO 를 선택하면 정보 다이얼로그가 열립니다. 제목은 PopcornSAR PAIO 이고,
Version: <버전>, 제품 설명, 문의 안내와 연락처 contact@popcornsar.com, 저작권 표기가
표시됩니다. OK 버튼, 오른쪽 위 닫기 버튼, 바깥 영역 클릭, Esc 중 어느 것으로도 닫을 수
있습니다.
상태바 오른쪽 끝에도 현재 버전이 v0.5.0 형식으로 상시 표시됩니다.
3.7 문의 / 이슈 신고
문의하거나 이슈를 신고하려면 앱 상단의 Help ▸ Report Issue 를 선택합니다. 지원 Q&A
페이지(https://autosar.io/support/qna)가 시스템 브라우저로 열립니다.
3.8 계정과 라이선스 데이터가 저장되는 위치
PAIO는 실행한 작업 디렉터리별로 애플리케이션 데이터를 분리해 저장합니다. 다만 계정 관련 데이터는 기기 전역으로 한 곳에 저장합니다. 로그인한 사용자는 작업 디렉터리와 무관하기 때문입니다. 데이터별 저장 범위와 파일은 다음과 같습니다.
| 데이터 | 저장 범위 | 파일 |
|---|---|---|
| 인증 토큰 | 기기 전역 | auth-tokens.enc (암호화) |
| 라이선스 캐시 | 기기 전역 | license-cache.enc (암호화, 유효 기간 4시간) |
| 머신 식별자 | 기기 전역 | machine-id.json |
| AI API 키 | 기기 전역 | glm-api-key.enc (암호화) |
| 그 외 앱 데이터(터미널 상태, 챗봇 세션 등) | 작업 디렉터리별 | workspace-<해시>/ 하위 |
인증 토큰과 라이선스 캐시는 모두 OS의 보안 저장소로 암호화합니다. 암호화를 쓸 수 없는
환경에서는 라이선스 캐시를 아예 남기지 않으므로 오프라인 상태에서 라이선스를 확인할 수
없습니다. 같은 환경에서는 인증 토큰도 저장되지 않습니다. 로그인에 성공할 때마다
Secure Storage Unavailable 경고 창이 나타나고, 앱을 다시 실행하면 매번 다시 로그인해야
합니다. Linux에서는 libsecret 설치가 필요합니다.