정말 데이터가 안 나갈까
온디바이스 AI는 정말 데이터를 밖으로 안 보낼까. 답은 보증이 아니라 검증으로 확인한다. Apioni는 인터넷을 꺼도 작동하며, 앱이 여는 모든 네트워크 연결을 사용자가 자기 컴퓨터에서 명령어 한 줄로 직접 들여다볼 수 있다.
“로컬에서 돈다”는 말은 이제 흔한 마케팅 문구가 됐다. 그래서 온디바이스 AI 보안을 진지하게 따지는 사람일수록 그 말 자체를 의심한다. 의심은 합리적이고, 답은 “믿어라”가 아니라 “지금 직접 확인해 보라”다. 이 글은 로컬 AI 데이터 안전을 보증이 아니라 재현 가능한 절차로 확인하는 방법을 단계로 보여 준다.
여기서 다루는 핵심 용어부터 정리한다.
- 온디바이스 AI: 문서 처리(인덱싱, 검색, 답변 생성)가 외부 서버가 아니라 사용자의 기기 안에서 끝나는 방식. Apioni는 로컬 LLM(Ollama 위에서 도는 Qwen3 계열 모델)과 임베딩 모델(bge-m3)을 사용해 내 PC에서 문서를 처리한다.
- 하이브리드 검색: 키워드 기반 검색(BM25)과 의미 기반 검색을 결합해 RRF(Reciprocal Rank Fusion) 방식으로 순위를 합치는 방법. Apioni는 이 하이브리드 검색으로 연결된 문서에서 근거를 찾고, 답변에 출처를 함께 제시한다.
- 데이터 위치: Apioni는 처리 대상 문서나 질의 내용을 외부 서버나 클라우드로 전송하지 않는다. 모든 처리가 기기 안에서 일어난다.
왜 “로컬에서 돈다”는 말만으로는 부족한가
마케팅 문구와 실제 네트워크 동작은 다를 수 있다. “안전합니다”라는 보증을 하나 더 받는다고 로컬 AI 데이터 안전이 검증되는 것은 아니다. 신뢰는 주장이 아니라 확인 가능성에서 나온다.
그래서 Apioni의 보안 주장은 단정이 아니라 검증 가능한 한 문장이다. 문서 내용은 기기 밖으로 나가지 않는다(직접 확인 가능). 문서의 인덱싱, 검색, 답변 생성은 전부 내 컴퓨터 안의 로컬 엔진으로만 처리되며 문서 내용을 외부로 보내지 않는다. Apioni가 인터넷으로 여는 연결은 실행할 때 새 버전이 있는지 묻는 버전 확인 한 가지뿐이고, 이 연결에는 문서 내용이 담기지 않는다. 이 둘을 사용자가 직접 구분해 확인할 수 있도록, 아래 세 가지 방법을 제공한다.
확인 방법 1: 인터넷을 끊고 그대로 작동하는지 본다
가장 간단한 1차 검증이다.
- Apioni에 문서 폴더를 연결해 둔다
- Wi-Fi를 끄거나 네트워크 케이블을 뽑는다
- 그 상태에서 문서에 대해 질문하거나 요약을 요청한다
답변이 정상적으로 생성되면, 처리가 기기 안에서 끝난다는 직접적인 증거다. 외부 서버에 의존했다면 인터넷이 끊긴 순간 동작하지 않아야 한다. 모든 문서 처리가 기기 안에서 일어나기 때문에 오프라인에서도 동작한다.
확인 방법 2: 답변이 생성되는 동안 네트워크 연결을 직접 들여다본다
가장 확실한 검증이다. 한 가지 전제를 먼저 알아야 한다. 연결은 요청을 처리하는 동안에만 존재한다. 그래서 앱이 유휴 상태일 때 명령을 실행하면 아무것도 안 보이는 게 정상이고, 답변이 생성되는 중에 명령을 실행해야 연결이 보인다.
macOS
- Apioni를 실행합니다
- Finder에서 응용 프로그램 > 유틸리티 > 터미널을 엽니다
- Apioni 창으로 돌아가 질문을 하나 입력하고 답변 생성을 시작합니다
- 답변이 생성되는 동안 터미널에 아래 명령을 입력하고 Return 키를 누릅니다
lsof -i -P | grep -E "Apioni|ollama"
기대 출력 예시는 다음과 같다.
Apioni 4821 me 23u IPv4 0x... TCP localhost:52344->localhost:11434 (ESTABLISHED)
ollama 1207 me 3u IPv4 0x... TCP localhost:11434 (LISTEN)
ollama 1207 me 9u IPv4 0x... TCP localhost:11434->localhost:52344 (ESTABLISHED)
Windows
시작 버튼을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 터미널을 엽니다. Apioni 창에서 질문을 입력해 답변 생성을 시작한 뒤, 생성되는 동안 아래 명령을 붙여넣고 Enter 키를 누릅니다.
Get-NetTCPConnection -State Established | Where-Object { (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName -match "Apioni|ollama" } | Select-Object @{n="Process";e={(Get-Process -Id $_.OwningProcess).ProcessName}}, RemoteAddress, RemotePort, State
출력된 각 행의 RemoteAddress 열을 확인합니다. 답변이 생성되는 동안 Apioni 행의 RemoteAddress가 전부 127.0.0.1이면, 문서 처리가 본인 컴퓨터 안에서만 일어난다는 것이 확인된 것이다. 앱을 막 실행한 직후라면 버전 확인 때문에 apioni.com 으로 가는 Apioni 행이 잠깐 보일 수 있는데, 이는 문서 내용이 담기지 않는 버전 확인이다. 이 구분은 아래에서 다룬다.
출력 해석
| 보이는 패턴 | 의미 |
|---|---|
| Apioni 행이 localhost:11434(127.0.0.1)로만 연결 | 로컬 Ollama 연결. 정상이며 이것이 Apioni 연결의 전부여야 한다 |
| ollama 행이 :11434 LISTEN | Ollama가 로컬에서 수신 대기 중. 정상 |
| ollama 행이 외부 주소:443으로 연결 | Ollama의 모델 다운로드 등. Ollama 프로세스의 행동이며 Apioni 영역 밖 |
| 출력이 비어 있음 | 유휴 상태. 연결은 요청 처리 중에만 존재하므로 정상 |
| Apioni 행에 localhost 이외의 주소 | 약속 위반. 해당 출력 전체를 보관해 제보 대상으로 둔다 |
판정 기준은 단순하다. Apioni로 시작하는 행의 목적지가 전부 localhost(127.0.0.1)이면, Apioni의 외부 전송이 본인 컴퓨터에서 0으로 확인된 것이다.
확인 방법 3: 앱 안의 네트워크 자가검증으로 확인한다
터미널이 익숙하지 않은 사용자를 위해, Apioni는 앱 안에 네트워크 자가검증 기능을 둔다. 앱이 여는 연결 인벤토리를 앱 화면에서 보여 줘, 명령어를 쓰지 않고도 통신 범위를 직접 확인하도록 돕는다. 방법 2의 결과와 같은 사실을 더 쉬운 동선으로 보는 셈이다. 이 기능은 보안을 자동으로 증명해 주는 장치가 아니라, 통신이 없음을 사용자가 직접 확인하도록 돕는 도구다.
어디까지가 Apioni이고 어디부터가 Ollama인가
자가검증을 하다 보면 ollama 행에 외부 주소가 보일 수 있다. 이때 그 연결이 누구의 동작인지 가르는 기준이 필요하다.
Apioni가 문서 작업을 위해 여는 네트워크 연결은 로컬 Ollama(localhost:11434) 한 곳뿐이다. 엔진 상태 확인, 모델 목록 조회, 답변 생성, 문서 임베딩까지 전부 이 단일 로컬 목적지로만 간다. 문서 내용은 이 경로를 벗어나지 않는다.
여기에 더해, Apioni는 실행할 때 새 버전이 있는지 확인하는 버전 확인을 apioni.com 으로 한 번 보낸다. 이 연결은 버전 정보만 주고받으며 문서 내용이나 사용 데이터는 담기지 않는다. 사용자가 메뉴에서 직접 업데이트를 확인하거나 내려받을 때도 apioni.com 에 접속한다. 반면 사용 통계를 보내는 텔레메트리는 없다.
반면 모델 다운로드는 Apioni가 아니라 별도 프로그램인 Ollama가 자체 레지스트리에 접속해 수행한다. Ollama는 Apioni가 설치를 안내하지만 소유하지 않는 별개의 프로세스다. 이 경계를 뭉뚱그리지 않고 분리해 보여 주는 것이 정직한 표기다.
| 연결 | 주체 | 발생 시점 | 목적지 |
|---|---|---|---|
| 엔진 상태 확인 | Apioni | 앱 시작할 때 | localhost:11434 (내 컴퓨터의 Ollama) |
| 문서 인덱싱·검색 | Apioni | 폴더 연결·검색할 때 | localhost:11434 (내 컴퓨터의 Ollama) |
| 질문·답변 생성 | Apioni | 질문할 때 | localhost:11434 (내 컴퓨터의 Ollama) |
| 버전 확인 | Apioni | 앱 실행 시·수동 업데이트 확인 시 | apioni.com (버전 정보만, 문서 내용 없음) |
| 모델 다운로드 | Ollama (별도 프로그램) | 모델 내려받을 때 | Ollama 레지스트리 (Apioni 영역 밖) |
기준은 명확하다. 자가검증에서 ollama 행에 외부 주소가 보이면 그것은 Ollama의 행동이다. Apioni 행에서 apioni.com 으로 가는 연결은 위에서 설명한 버전 확인이다. 그 밖에 Apioni 행에 다른 외부 주소가 보이면, 그것은 Apioni가 지켜야 할 약속을 벗어난 것이며 보고 대상이다.
“절대 안전”이라고 말하지 않는 이유
기밀 문서를 다루는 직군일수록 “절대 안전합니다”라는 말에 오히려 더 의심을 품는다. 검증할 수 없는 절대 단정은 신뢰를 깎는다.
그래서 Apioni는 절대 단정 대신 “문서 내용은 기기 밖으로 나가지 않으며, 외부로 나가는 연결은 문서 내용이 담기지 않는 버전 확인뿐(직접 확인 가능)”이라고만 말하고, 모든 신뢰 주장에 위와 같은 검증 절차를 함께 제공한다. 측정은 매 릴리스에서 동일한 방식으로 다시 수행하고, 네트워크 연결 인벤토리에 변경이 생기면 그 변경을 먼저 공개한 뒤에만 출시한다. 사용자가 직접 재현해 깰 수 있는 형태로만 주장하는 것, 그것이 검증 없는 보증보다 신뢰할 만하다는 판단이다.
어떤 직군에 특히 맞는가
클라우드(ChatGPT 등)에 올릴 수 없는 기밀·민감 문서를 다루는 직군에 맞는다. 처리 자체를 기기 안에서 끝내는 것이 자료 보호의 출발점이기 때문이다.
- 법률: 사건 기록, 계약서, 의뢰인 정보 등 외부 반출이 제한되는 문서를 검색·요약·작성한다.
- 회계·세무: 고객사 재무·세무 자료를 클라우드에 올리지 않고 내 PC에서 다룬다.
- 금융: 고객 거래·신용 정보 등 규제 대상 데이터를 외부 전송 없이 처리한다.
- 공공: 망분리(내부망과 외부 인터넷망을 물리적·논리적으로 분리하는 보안 정책) 환경에서 인터넷을 꺼도 작동한다.
- 의료·연구: 환자 정보, 미공개 연구 데이터를 기기 안에서만 처리한다.
- 기업 보안: 사내 기밀 문서를 외부 LLM 서비스에 노출하지 않고 활용한다.
한계도 함께 본다
기기 안에서 끝낸다는 구조에는 대가가 있다. 8GB 램 기준에서는 4B급 모델까지 무리 없이 돌아가고, 클라우드의 초대형 모델보다 작고 느리다. Apioni는 한국어 게이트(ko-v2)와 수치 충실 게이트로 이 작은 모델의 정답률을 끌어올려 자체 실측에서 naive 구성 대비 정답률을 14~18%p 높였지만(표본·조건 한정), 모델 자체의 크기 한계가 사라지는 것은 아니다. 실시간 최신 정보 검색처럼 외부 데이터가 꼭 필요한 작업은 여전히 클라우드 쪽이 유리하다. 그래서 Apioni가 겨냥하는 자리는 속도·규모 경쟁이 아니라, 외부로 내보낼 수 없는 문서를 기기 안에서 출처와 함께 다루는 작업이다.
자주 묻는 질문
인터넷을 완전히 끊어도 모든 기능이 동작하나요?
필요한 모델을 한 번 내려받은 뒤에는 문서 인덱싱, 검색, 답변 생성이 인터넷 없이 동작합니다. 모든 처리가 기기 안에서 일어나기 때문입니다. 단, 아직 받지 않은 모델을 처음 다운로드할 때는 인터넷이 필요하며, 이 다운로드는 별도 프로그램인 Ollama가 수행합니다.
자가검증 명령어를 실행했더니 ollama가 외부 주소에 연결돼 있습니다. 문제인가요?
ollama 행에 보이는 외부 연결은 Ollama 프로세스의 행동(주로 모델 다운로드)이며 Apioni 영역 밖입니다. 판정 기준은 Apioni로 시작하는 행입니다. 답변 생성 중 Apioni 행의 목적지가 전부 localhost(127.0.0.1)이면 문서 내용이 기기 밖으로 나가지 않는다는 것이 확인됩니다. 실행 직후 Apioni 행이 apioni.com 으로 가는 것은 문서 내용이 담기지 않는 버전 확인입니다.
텔레메트리나 외부 통신은 어디까지 있나요?
사용 데이터를 외부로 보내는 텔레메트리는 없습니다. Apioni가 인터넷으로 보내는 통신은 실행할 때 새 버전이 있는지 확인하는 버전 확인 한 가지뿐이며, 이 연결에는 문서 내용이 담기지 않습니다. 문서 처리에 쓰이는 계측 로그는 사용자의 컴퓨터 안에 머뭅니다. 네트워크 연결 구성에 변경이 생기면, 변경 내용을 먼저 공개한 뒤에만 출시합니다.
가격과 라이선스는 어떻게 되나요?
₩39,000 일회성 구매이며 구독이 아닙니다. 한 번 사면 계속 쓸 수 있고, 회사 단위 라이선스라 기기 수 제한이 없습니다. 구매 전 14일 무료 트라이얼을 제공하며, 트라이얼에는 카드나 결제 정보가 필요하지 않습니다.
직접 확인해 보세요
가장 확실한 검증은 직접 해 보는 것입니다. Apioni를 내려받아 인터넷을 끊고 문서 작업을 돌려 본 뒤, 위 명령어로 네트워크 연결을 직접 확인해 보세요. 14일 무료 트라이얼은 카드나 결제 정보가 필요 없습니다.
계속 쓰기로 했다면 ₩39,000 일회성 구매로 전환할 수 있습니다. 구독이 아니라 한 번 사면 끝이고, 회사 단위 라이선스라 기기 수 제한도 없습니다.