AI를 내 메모리에 붙이려면 먼저 “이 사람이 맞다”는 확인이 있어야 한다. 아무나 남의 기억을 읽고 쓸 수는 없으니까. 이 확인을 하는 방법이 두 가지다. OAuth와 API 키. 둘의 차이는 하나로 요약된다.
OAuth는 시스템이 대신 인증해 준다. API 키는 인증을 키 하나에 묶어 둔 것이다.
OAuth: 계정으로 한 번 승인하면 끝
AI 앱에서 AiAkiv를 추가하면 로그인 창이 뜬다. 내 AiAkiv 계정으로 한 번 승인하면 그다음부터는 시스템이 알아서 신원을 확인한다.
- 신원은 내 계정에 묶인다. 앱이 아니라 "나"로 인증된다.
- 내 손에 남는 비밀값이 없다. 복사해 둘 것도, 관리할 것도 없다.
- 갱신·회수를 시스템이 맡는다. 계정 쪽에서 정리하면 접근도 함께 정리된다.
API 키: 인증을 키에 묶어 둔 것
콘솔에서 키를 발급받아 앱 설정에 붙여 넣는 방식이다. 로그인 창은 없다. 대신 그 키 자체가 신분증이 된다.
- 키를 가진 쪽이 곧 나다. 앱이든 사람이든, 키만 있으면 내 권한으로 접근한다.
- 그래서 키는 비밀번호와 같은 무게로 다뤄야 한다(아래 키 보안).
- 발급·회수는 내가 직접 한다. 콘솔의 API 키 관리(콘솔 안내).
콘솔에서 키는 두 가지로 낼 수 있다.
| 키 | 저장 위치 | 쓰임 |
|---|---|---|
| 동적 키 | 지금의 저장 대상(Main) 을 따라간다 | 콘솔에서 Main을 바꾸면 이 키의 저장 위치도 함께 바뀐다 |
| 프로젝트 키 | 특정 프로젝트에 고정 | 그 프로젝트로만 읽고 쓴다: 폴더·앱마다 대상을 못 박고 싶을 때 |
스코프: 키로 할 수 있는 일의 종류
연결에는 스코프가 붙는다. 그 연결로 할 수 있는 일의 종류다.
| 스코프 | 할 수 있는 일 | OAuth | API 키 |
|---|---|---|---|
read |
기억 읽기·검색 | 있음 | 기본으로 있음 |
write |
기억 저장·수정 | 있음 | 기본으로 있음 |
manage |
AI가 콘솔 앱으로 계정을 관리(팀·연결·프로젝트·저장 대상·카드 편집) | 있음 | 발급할 때 체크한 키만 |
manage는 API 키에서 기본으로 꺼져 있다. 키를 발급할 때 "AI 콘솔 관리 허용 (manage)" 을 체크해야 붙는다. 이 체크 칸은 프로젝트 관리(프로젝트 카드의 프로젝트 고정 API 키 발급)와 API 키 관리 두 곳에 있다.- 체크 없이 발급한 키(이 기능 전에 발급한 키 전부)로는 AI가 콘솔 앱의 읽기만 할 수 있다. 편집을 시키려면 체크해서 새로 발급하고 앱 설정의 키도 바꾼다. 같은 대상에 새로 발급하면 이전 키는 폐기된다.
manage가 있어도 AI가 실제로 할 수 있는 일은 콘솔 참고 → AI 권한에서 켠 것뿐이다(AI에게 콘솔 일 시키기).- 스코프도 내 팀 역할이 천장이다. 그 팀에서 viewer이면 OAuth든 API 키든
manage를 받지 못한다. 공개 읽기·연결처럼 읽기 전용으로 붙은 세션에서는write와manage가 함께 빠진다. manage가 있어도 AI에게 콘솔 일을 시키는 것은 앱 기능이 있는 연결에서만 된다. 폴더 연결, API 키 연결, 플러그인으로 설치한 연결(Claude Code, Cursor), 주소https://mcp.aiakiv.com/mcp?apps=all로 붙인 연결(이 주소로 추가한 Claude 계정 커넥터, Codex 연결(설치 프롬프트로 연결한 것) 등)이 그렇고, ChatGPT의 공식 플러그인이나?apps=all없는 주소로 붙인 로그인 연결에서는 콘솔 일을 웹 콘솔에서 직접 한다 → 앱 실행 도구.
무엇을 쓰나: 기본은 OAuth
클라이언트가 OAuth를 지원한다면 고민 없이 OAuth를 쓴다. 관리할 비밀값이 없고, 계정 정책을 그대로 따르기 때문이다.
| 방식 | 클라이언트 |
|---|---|
| OAuth (권장) | Claude Web, Claude Desktop, Claude Code, ChatGPT와 ChatGPT classic(플러그인 설치), Codex(설치 프롬프트), Cursor, Grok |
| API 키 (유일한 설정) | Gemini CLI, ChatGPT의 폴더 고정(.codex/config.toml), Antigravity |
⚠ ChatGPT와 ChatGPT classic 은 다른 앱이다. 이름이 비슷하고 둘이 함께 깔린다. 붙이는 방법은 둘 다 같다. 앱 안의 플러그인 디렉터리에서 AiAkiv Memory 를 설치하고 OAuth 로 로그인한다. 다른 것은 폴더 고정이다. OAuth 로는 폴더마다 프로젝트를 고정하지 못하므로, 폴더 고정은 ChatGPT 앱에서 프로젝트 고정 API 키로 한다 → ChatGPT 연결.
아래쪽 셋은 선택이 아니다. 다만 API 키뿐인 이유는 저마다 다르다.
| 클라이언트 | 왜 API 키뿐인가 |
|---|---|
| Gemini CLI | OAuth 로그인 세션이 유지되지 않는다 |
| ChatGPT의 폴더 고정 | OAuth 로는 폴더마다 프로젝트를 고정하지 못한다. 플러그인 설치는 OAuth 로 붙지만 계정 전체가 Main을 따라간다 |
| Antigravity | 설정이 앱 전체에 하나뿐이라 폴더로 나눌 수 없다: 그래서 키가 프로젝트를 정한다 |
클라이언트별 실제 설정은 설치 안내를 따른다.
키 보안
키가 곧 신원이므로, 유출은 내 기억에 대한 접근 자체가 넘어가는 것을 뜻한다. 아래는 지켜야 할 최소선이다.
- 발급 순간 한 번만 보인다. 그때 안전한 곳(비밀번호 관리자 등)에 옮겨 둔다. 다시 열어볼 수 없다.
- 같은 대상에 새로 발급하면 이전 키는 자동으로 폐기된다. 그래서 재발급이 곧 회수다: 유출이 의심되면 즉시 새로 발급하면 된다.
- 공유하지 않는다. 채팅·이슈·문서에 붙여 넣지 않는다. AI에게도 넘기지 않는다.
- 코드 저장소에 올리지 않는다. 설정 파일에 키가 들어간다면 그 파일을 커밋에서
제외한다(
.gitignore). - 키가 내 권한을 넘지는 못한다. 키의 접근 범위는 내 팀 역할이 천장이다. 읽기 권한뿐인 사람의 키로 쓰기가 되지는 않는다.
- 애초에 기억 안에 키를 저장하지 않는다: 무엇을 저장하나.
자주 헷갈리는 것
- “OAuth인데 왜 프로젝트를 바꾸면 다시 로그인하라고 하나요?” 일부 OAuth 클라이언트(Claude Code·Cursor 등)는 저장 대상을 바꿀 때 재인증이 필요하다. 정상 동작이다.
- “키를 넣었는데 저장이 엉뚱한 데로 가요.” 동적 키는 Main을 따라간다. 대상을 고정하고 싶으면 프로젝트 키를 쓰거나 폴더 바인딩을 건다 (폴더 바인딩 · 팀과 프로젝트).
- “API 키로 붙은 AI가 콘솔 편집을 못 한다고 해요.” 그 키에
manage스코프가 없다. "AI 콘솔 관리 허용" 을 체크해 새로 발급한다(위 스코프). OAuth로 붙었는데 같은 말을 하면 그 연결에 앱 기능이 있는지부터 본다. ChatGPT의 공식 플러그인과?apps=all없는 주소로 붙인 로그인 연결(예전에 그렇게 추가한 Claude 계정 커넥터 등)에는 없다(앱 실행 도구). 앱 기능이 있는 연결이면 다시 연결한다. - “키를 잃어버렸어요.” 복구는 없다. 새로 발급하면 이전 키는 폐기되고 새 키로 이어서 쓰면 된다.