# 라이선스(License) Nexa SQL은 **오프라인 라이선스 파일** 하나로 정품을 확인합니다. 서버에 접속하지 않고, 파일은 서명되어 있어 바꾸면 무효가 됩니다. ## 무료로 쓸 수 있는 것 > **지금(09-28 이후)**: 라이선스가 없어도 **모든 기능이 동작합니다**(개인 사용 = 전 기능). 아래 "Pro가 여는 것" 표는 기능 제한을 **켰을 때**(숨은 설정 `license.gates=on` · 기본 끔)의 규칙이며, 앞으로 일부 기능에 제한이 생길 수 있습니다. 접속(4종 DBMS) · 실행 · 결과 그리드(편집 포함) · 스크립트·변수 · 편집기 전부 · 탐색기 · CLI(`nsql run/export/import`) — **성능 제한은 없습니다**(행 수·속도·메모리를 라이선스로 막지 않습니다). 무료판은 상태줄에 `Free · non-commercial use only`가 보입니다(라이선스 PolyForm NC · 상업적 사용은 유료). ## Pro가 여는 것(무료 대체 경로가 있는 편의 기능) | 기능 | 무료판 | 대체 | |---|---|---| | Import 창(파일 → 표) | Pro | `nsql import`(CLI · 무료) | | 드라이버 확장 관리자에서 설치 | Pro | 확장 폴더에 손으로 복사 | | 작업 환경 자동 복원·미저장 탭 복구 | Pro | 프로젝트를 손으로 저장·열기 | | 북마크 그룹 | Pro | 기본 북마크(토글·이동)는 무료 | | 절별 코드 완성·상세 카드 | Pro | 키워드·객체 이름 완성은 무료 | | 값 창의 이미지 미리보기·파일 넣기 | Pro | 값을 파일로 저장한 뒤 열기 | | 서식 있는(HTML) 복사 | Pro | 텍스트 복사 | | 로그 파일 내보내기 | Pro | 로그 창에서 선택·복사 | | 동시 연결 | 2(공유)/2(전용) | 접속 해제 뒤 다른 서버 · 인스턴스 2개 | | 편집 탭 | 5 | 탭 닫기 · 프로젝트로 나누기 | | 편집 용량 | 2 MB 이상 = 읽기 전용(실행은 됨) | `nsql run <파일>` · 파일 나누기 | | 결과 탭 | 2 | 결과를 파일로 저장 · 다시 실행 | 잠긴 기능은 메뉴에서 사라지지 않습니다 — 누르면 상태줄과 라이선스 창에 "Pro 기능 · 무료 대체: …"가 나옵니다. ## 라이선스 받기(3단계) 1. **요청 코드 만들기** — 앱 Help ▸ License…(또는 상태줄 배지 클릭) → 이름·이메일 입력 → **요청 코드 복사**. 명령줄: `nsql license request "이름" 이메일`. 한 줄이며 이 PC의 기기 ID **해시**만 담깁니다. 2. **이메일로 보내기** — 요청 코드 한 줄을 **kiros33@sosomlab.com** 으로 보냅니다(창의 안내 줄에도 적혀 있습니다). 발급되면 `nexa-sql.license` 파일이 첨부되어 옵니다. 3. **설치** — 라이선스 창 ▸ **라이선스 파일 열기…** 또는 `nsql license install <파일>`. 검증을 통과한 파일만 `<설정 폴더>/license/`에 복사됩니다(원본은 그대로). `nsql license status`로 `licensed`를 확인합니다. ## PC를 바꾸거나 추가할 때 라이선스는 등록한 PC(개인 = 최대 5대)에서만 유효합니다. 새 PC에서 요청 코드를 만들어 보내면 같은 라이선스 ID로 **재발급**(연 5회)되고, 파일만 교체하면 됩니다. 다른 PC의 파일을 복사해 오면 `invalid(machine)`으로 거부됩니다. ## 백업·제거 - 백업: `nsql license export <파일>`(설치 파일 복사) · 복원: `nsql license import <파일>`(= install). - 제거: 라이선스 창 ▸ 제거 또는 `nsql license remove`(사용자 폴더 파일만 지웁니다). - **유효기간**은 기본 **발급일 + 3년**(파일의 `expires` · 창의 Expires)입니다. 만료 뒤에는 무료 수준이 되며 재발급으로 갱신합니다. - **버전 범위**: 라이선스는 발급 당시의 **메이저 버전**(창의 "Valid up to major" · 예 `0.x`)까지 유효하고, 메이저가 바뀐 판에서는 새 라이선스가 필요합니다. 특정 버전부터 새 라이선스가 필요한 경우 "Invalid from version"에 그 버전이 적힙니다. 범위 밖 판에서는 `outdated`(무료 수준)이 되고 **이전 판은 그대로 정식**입니다. ## 상태가 이상할 때 | 상태줄 | 뜻 | 할 일 | |---|---|---| | `⚠ License invalid (signature)` | 파일이 손상·변조됨 | 받은 파일을 다시 설치 | | `⚠ License invalid (machine)` | 다른 PC의 파일 | 이 PC의 요청 코드로 재발급 | | `⚠ License invalid (norootkey)` | 앱이 아직 공개키를 모르는 판(내부 빌드) | 정식 배포판 사용 | | `⚠ License does not cover this version` | 이 판이 `updates_until` 뒤 · 메이저가 바뀜 · `max_version` 이후 | 재발급 또는 이전 판 | | `⚠ License expired` | 체험·구독 만료 | 재발급 | 개발자용: Debug 빌드는 게이트가 기본 꺼져 있습니다(`license.gates_dev` · `nsql config set license.gates_dev on`으로 켜 시험). Release 빌드는 항상 켜집니다.