계정과 Provider 연결하기
Glif의 계정 화면은 하나의 로그인 버튼 아래 모든 권한을 합치지 않는다. 작성자 정보, Glif identity, Cloudflare web deploy와 GitHub source sync를 분리해 보여 주며, 사용자는 필요한 경로만 연결한다.
requires-setup이다. 이 가이드의 화면은 credential이 없는 격리된 release candidate에서 촬영했으며 OAuth 완료, 실제 provider 계정 연결이나 원격 변경 성공을 주장하지 않는다. API token, callback code와 account ID는 캡처·예제·진단에 기록하지 않는다.

기능과 역할
| 기능 ID | 사용자 기능 | 가이드에서 확인할 것 |
|---|---|---|
| OP-01 | 작성자 이름·이메일 | 문서 identity와 로그인 identity를 구분한다 |
| OP-02, AUTH-01 | Glif 계정 연결 | provider보다 먼저 필요한 app identity root다 |
| OP-03 | GitHub 연결 | 선택적 source sync integration이다 |
| OP-04 | Cloudflare 연결 | 사용자 소유 web deploy integration이다 |
| OP-05 | deploy ownership | 현재 기본은 내 Cloudflare project다 |
| OP-06 | sync ownership | GitHub sync는 필요할 때만 켠다 |
| AUTH-02 | scoped provider identity | Glif 로그인과 provider 로그인을 합치지 않는다 |
실습 준비
account-provider-plan-lab은 계정 경계를 기록하는 로컬 Binder다. 예제에는 다음 정보만 넣는다.
- 공개 가능한 작성자 표시 이름
- 수행하려는 operation과 필요한 provider
- local·provider·billing 각각의 확인 항목
- credential을 제외한 오류 분류와 복구 결정
실제 이메일, token, callback URL query, raw account/project ID는 예제에 쓰지 않는다.
1. 작성자 정보 설정
작성자 정보는 문서에 사용할 identity다. Glif 로그인이나 결제 계정과 자동으로 같다고 가정하지 않는다.
- 설정 → 계정을 연다.
- 작성자 정보를 펼친다.
- 공개 산출물에 표시해도 되는 이름을 입력한다.
- 이메일이 필요하면 공개 가능한 주소만 입력한다.
- publish 전에 실제 출력 metadata에서 표시 여부를 확인한다.

공용 문서나 팀 예제를 만들 때는 개인 이메일 대신 프로젝트 대표 주소 또는 빈 값을 사용할 수 있다. Binder별 author override가 있는 문서는 최종 출력에서 실제 적용값을 다시 확인한다.
2. Glif 계정 연결
Glif 계정은 provider 연결과 plan 조회가 붙는 identity root다.
- Account path의 첫 노드에서 GLIF에 로그인을 선택한다.
- 브라우저에서 로그인 대상을 확인한다.
- 앱으로 돌아와 계정 badge와 표시 identity를 확인한다.
- provider 노드가 연결 가능한 상태로 바뀌었는지 확인한다.
- 원래 수행하려던 deploy 또는 sync 작업으로 돌아간다.
로그인 창을 닫거나 callback이 만료되면 문서 입력은 유지된다. 계정 연결을 다시 시작하되 provider 연결이 완료된 것처럼 해석하지 않는다.
3. Cloudflare와 GitHub 중 필요한 경로 선택

| 하고 싶은 일 | 연결할 대상 | 연결하지 않아도 되는 대상 |
|---|---|---|
| 정적 사이트를 web에 게시 | Cloudflare | GitHub |
| Binder source를 repository와 sync | GitHub | Cloudflare |
| 로컬 Markdown 작성·검색·Preview | 없음 | Cloudflare, GitHub |
| web publish와 source sync 모두 운영 | Cloudflare와 GitHub를 각각 연결 | 두 identity를 하나로 취급하지 않음 |
Cloudflare direct deploy
Cloudflare는 빌드된 정적 결과를 사용자가 소유한 Pages project에 게시할 때만 필요하다.
- Cloudflare 직접 배포 행의 역할 설명을 확인한다.
- Glif 계정 연결 뒤 연결을 선택한다.
- OAuth가 제공되면 요청 계정과 Pages 범위를 검토한다.
- 제한된 환경에서 scoped token을 쓸 때는 Pages에 필요한 최소 범위만 부여한다.
- 연결 badge가 바뀐 뒤 게시·배포 운영의 target 검토로 이동한다.
Cloudflare 연결은 GitHub repository를 만들거나 source를 자동 업로드하지 않는다.
GitHub source sync
GitHub는 Binder source revision을 사용자의 repository와 주고받을 때만 필요하다.
- GitHub 소스 동기화 행에서 현재 Binder의 sync 상태를 읽는다.
- 연결을 선택하고 GitHub OAuth의 계정과 권한을 검토한다.
- 연결 뒤 repository와 Binder가 올바르게 매핑됐는지 확인한다.
- remote ahead, local ahead, diverged, unknown base 상태를 구분한다.
- diverged 또는 기준 revision이 불명확하면 push하지 말고 먼저 source를 비교한다.
GitHub 연결은 Cloudflare deploy의 선행 조건이 아니다.
4. 지금 하지 않을 작업은 건너뛰기
Account Settings의 지금 배포하지 않음, 지금 동기화하지 않음은 기능 제거가 아니다. 현재 onboarding에서 해당 provider를 연결하지 않겠다는 선택이다.
- local authoring과 Preview는 계속 사용한다.
- 나중에 deploy 또는 sync 작업에서 다시 연결할 수 있다.
- 건너뛰었다고 Managed provider로 자동 전환되지 않는다.
- 두 provider 중 하나의 실패가 다른 provider credential 사용으로 이어지지 않는다.
5. 연결 해제 전 확인
연결 해제는 local Binder 삭제와 다르다.
- 진행 중인 deploy·sync가 없는지 확인한다.
- 연결 해제 대상이 Cloudflare인지 GitHub인지 다시 읽는다.
- provider remote resource 삭제와 app integration 해제를 구분한다.
- 해제 뒤 badge가
연결 안 됨또는 재연결 필요 상태인지 확인한다. - 원격 project/repository를 지우려면 해당 기능의 별도 확인 절차를 사용한다.
6. Account path를 읽는 법
영상에서 확인할 핵심은 다음과 같다.
- Root: Glif identity가 연결됐는가
- Branch: deploy와 sync 중 어떤 operation을 수행하는가
- Input: 그 operation에 필요한 provider 입력이 남았는가
- State: not connected, connected, re-auth required, error를 구분하는가
- Action: 연결·재연결·해제가 현재 상태와 맞는가
문제 해결
| 상태 | 의미 | 다음 행동 |
|---|---|---|
| 계정 연결 필요 | Glif identity가 없음 | Glif 로그인부터 완료 |
| 환경에서 연결 불가 | account/provider backend 설정이 없음 | local 기능을 계속 쓰고 배포 환경 설정 확인 |
| Provider 연결 안 됨 | 선택한 integration이 없음 | 해당 operation이 필요할 때 연결 |
| 재인증 필요 | 만료·철회·권한 변경 가능성 | 같은 provider에서 재연결 |
| GitHub diverged | local·remote가 공통 기준 뒤 서로 변경 | push 차단, source 비교 후 병합 |
| 연결 해제 일부 실패 | remote revoke와 local cleanup 중 일부 불확실 | 진단 상태 확인 후 같은 provider에서 재시도 |
연결 상태와 plan 복구는 플랜 확인과 연결 복구에서 계속한다.