> ## Documentation Index
> Fetch the complete documentation index at: https://docs-hub.magicmealkits.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth 클라이언트 만들기

> 계정을 붙일 때 물어보는 클라이언트 ID와 시크릿을 어디서 받아오는지, 구글 화면을 한 단계씩.

허브에 구글 계정을 붙이려고 하면 이런 화면이 나옵니다.

<Frame>
  <img src="https://mintcdn.com/mcp-hub/_5S572FR3uaOuoK1/assets/install/add-account-form.png?fit=max&auto=format&n=_5S572FR3uaOuoK1&q=85&s=03afa2f7a1420128c2c8a4f31a1acda8" alt="OAuth 클라이언트 ID와 시크릿 칸이 있는 계정 추가 화면" width="1840" height="2070" data-path="assets/install/add-account-form.png" />
</Frame>

**OAuth 클라이언트 ID**와 **OAuth 클라이언트 시크릿**. 이 두 값을 구글에서
받아와야 하는데, 이 페이지가 그 방법입니다.

## 이것이 무엇이고 왜 필요한가

허브가 고객님의 Gmail을 읽으려면 구글에 "이 사람 허락을 받았습니다"라고
증명해야 합니다. 그 증명서에 해당하는 것이 OAuth 클라이언트입니다.

이것을 저희가 대신 만들어 드릴 수는 없습니다. 구글이 자동으로 만드는 방법을
제공하지 않아서, 본인 계정으로 콘솔에 들어가 직접 만드셔야 합니다. 대신
만들어진 클라이언트는 **본인 프로젝트 안에** 있습니다. 저희는 그 값을 보지도
보관하지도 않습니다.

한 번 만들면 계속 씁니다. 계정을 여러 개 붙이셔도 클라이언트는 하나면
됩니다.

<Note>
  10분쯤 걸립니다. 설치 페이지의 **OAuth 클라이언트 만들기** 카드에 단계마다
  콘솔로 가는 버튼이 있으니, 그 버튼을 쓰시면 어디로 가야 할지 찾을 일이
  없습니다.
</Note>

## 1. 동의 화면 만들기

동의 화면은 계정을 붙일 때 구글이 보여주는 "이 앱이 이런 권한을 요청합니다"
화면입니다. 클라이언트를 만들려면 동의 화면부터 있어야 합니다.

<Steps>
  <Step title="시작하기">
    설치 페이지에서 **동의 화면 열기**를 누르면 이 화면이 나옵니다.
    **Get started**를 누르세요.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/01-not-configured.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=2f875748f5ec22cc760e84f1f69c9538" alt="아직 설정되지 않았다는 안내와 Get started 버튼이 있는 구글 인증 플랫폼 화면" width="1010" height="560" data-path="assets/oauth/01-not-configured.png" />
    </Frame>
  </Step>

  <Step title="앱 이름과 이메일">
    **App name**은 본인이 알아볼 이름이면 됩니다. 계정을 붙일 때 이 이름이
    보입니다. **User support email**은 목록에서 본인 주소를 고르시면 됩니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/02-app-info.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=7dae2146b694ba127df3862fc10e192b" alt="앱 이름과 지원 이메일을 입력하는 첫 단계" width="1010" height="700" data-path="assets/oauth/02-app-info.png" />
    </Frame>
  </Step>

  <Step title="External 고르기">
    **External**을 고르세요. Internal은 조직 안에서만 쓸 수 있는 설정이라,
    개인 Gmail 계정을 붙이실 수 없게 됩니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/03-audience.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=b4f042127e813aef0d92e641862408e2" alt="Internal과 External 중 External이 선택된 화면" width="1010" height="900" data-path="assets/oauth/03-audience.png" />
    </Frame>

    "테스트 모드로 시작한다"는 설명이 붙어 있는데, 그것은 다음 단계에서
    풀겠습니다.
  </Step>

  <Step title="연락처 이메일">
    본인 주소를 다시 넣습니다. 구글이 이 프로젝트에 변경이 생기면 알려주는
    주소입니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/04-contact.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=cd15fec87dcdff5603344dc98e9f37b8" alt="연락처 이메일을 입력하는 세 번째 단계" width="1010" height="700" data-path="assets/oauth/04-contact.png" />
    </Frame>
  </Step>

  <Step title="동의하고 만들기">
    약관에 체크하고 **Create**를 누릅니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/05-create.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=0e489342a243098ca8eeaf4fddc5c98e" alt="네 단계가 모두 완료 표시된 상태의 Create 버튼" width="1010" height="700" data-path="assets/oauth/05-create.png" />
    </Frame>
  </Step>
</Steps>

## 2. 게시 상태를 In production으로 올리기

**이 단계를 건너뛰면 일주일에 한 번씩 계정 로그인이 풀립니다.** 그때마다
허브에서 재연결을 눌러야 합니다. 지금 30초 쓰면 그 일이 없어집니다.

<Steps>
  <Step title="Audience 화면 열기">
    만들고 나면 이 화면이 됩니다. 왼쪽 메뉴의 **Audience**로 갑니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/06-created.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=8caa3f5edccbbf16baed231b2f9b480d" alt="동의 화면 설정이 만들어진 뒤의 개요 화면" width="1300" height="640" data-path="assets/oauth/06-created.png" />
    </Frame>
  </Step>

  <Step title="Publish app 누르기">
    게시 상태가 **Testing**으로 되어 있습니다. 이 상태가 로그인을 7일마다
    푸는 원인입니다. **Publish app**을 누르세요.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/07-publish-before.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=ae337f523ec2c56c8483b7580ead94e9" alt="게시 상태가 Testing이고 Publish app 버튼이 있는 화면" width="1300" height="760" data-path="assets/oauth/07-publish-before.png" />
    </Frame>
  </Step>

  <Step title="Confirm">
    "검증이 필요할 수 있다"는 안내가 뜹니다. 그대로 **Confirm**을 누르시면
    됩니다. 검증을 받지 않아도 본인 계정으로는 정상 동작합니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/08-publish-dialog.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=1ed4994907f55fd61e22007cbb59f065" alt="In production으로 바꿀지 묻는 확인 창" width="1400" height="900" data-path="assets/oauth/08-publish-dialog.png" />
    </Frame>
  </Step>

  <Step title="확인">
    **In production**으로 바뀌었으면 됩니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/09-in-production.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=2640317801cc0dfb64b152dd293b0a73" alt="게시 상태가 In production으로 바뀐 화면" width="1300" height="760" data-path="assets/oauth/09-in-production.png" />
    </Frame>
  </Step>
</Steps>

<Note>
  게시했다고 해서 아무나 쓸 수 있게 되는 것은 아닙니다. 계정을 붙일 수 있는
  사람은 여전히 구글 로그인을 통과한 본인뿐입니다.
</Note>

## 3. 클라이언트 만들기

이제 실제로 ID와 시크릿을 받는 단계입니다.

<Steps>
  <Step title="Create client">
    왼쪽 메뉴의 **Clients**로 가서 **Create client**를 누릅니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/10-clients-empty.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=88c4184785894772128cd5fe5ba4d8ec" alt="아직 클라이언트가 없는 목록 화면" width="1300" height="560" data-path="assets/oauth/10-clients-empty.png" />
    </Frame>
  </Step>

  <Step title="유형과 리디렉션 주소">
    **Application type**은 **Web application**으로 둡니다. 이름은 알아보실 수 있는
    것이면 됩니다.

    아래로 내려가 **Authorized redirect URIs**에서 **Add URI**를 누르고,
    설치 페이지가 알려준 주소를 붙여넣습니다. 그 주소는 설치 페이지의 OAuth
    카드 3번 항목에 복사 버튼과 함께 있습니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/11-client-form.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=cba6f8540f8040ac3d896311f15c4087" alt="웹 애플리케이션 유형과 승인된 리디렉션 URI 칸이 있는 클라이언트 만들기 화면" width="1010" height="1060" data-path="assets/oauth/11-client-form.png" />
    </Frame>

    <Warning>
      이 주소는 한 글자도 틀리면 안 됩니다. 직접 입력하지 마시고 반드시 복사
      버튼을 쓰세요. 틀리면 계정을 붙일 때 구글이 주소가 맞지 않는다며
      거부합니다.
    </Warning>

    다 됐으면 **Create**를 누릅니다.
  </Step>

  <Step title="지금 복사하기">
    만들자마자 **Client ID**(클라이언트 ID)와 **Client secret**(클라이언트
    시크릿)이 함께 뜹니다.

    <Frame>
      <img src="https://mintcdn.com/mcp-hub/tAnjNBsB0ibYi6P4/assets/oauth/12-secret-warning.png?fit=max&auto=format&n=tAnjNBsB0ibYi6P4&q=85&s=0d9c082b522b2bad021aa5a48244700d" alt="이 창을 닫으면 클라이언트 시크릿을 다시 볼 수 없다는 구글의 경고" width="580" height="140" data-path="assets/oauth/12-secret-warning.png" />
    </Frame>

    <Warning>
      **창을 닫기 전에 두 값을 다 복사해 두세요.** 시크릿은 이때 한 번만
      보입니다. 못 옮기셨으면 클라이언트를 지우고 다시 만드는 수밖에
      없습니다.
    </Warning>

    두 값을 허브의 계정 추가 화면에 붙여넣으면 이 페이지는 끝입니다.
  </Step>
</Steps>

## 프로젝트는 몇 개 필요한가

대부분 **하나면 됩니다.** 개인 Gmail과 업무용 Workspace 계정을 같이 붙이셔도
하나로 충분합니다.

```mermaid theme={null}
flowchart LR
  A["개인 Gmail"] --> P["프로젝트 하나<br/>External, In production"]
  B["Workspace 계정"] --> P
  P --> OK["정상 동작"]
```

두 개가 되는 것은 Workspace 계정이 얽힐 때뿐이고, 이유는 두 가지입니다.
**조직이 미검증 앱을 차단해 둔 경우**에는 그 계정이 동의 화면에 도달조차 못
합니다. 또는 차단돼 있지 않더라도 **조직 구성원에게 미검증 경고를 보이고 싶지
않은 경우**입니다. 어느 쪽이든 Workspace 쪽은 그 조직 소유의 프로젝트를 따로
두고 클라이언트를 하나 더 만들게 됩니다.

[Developer Preview](/ko/developer-preview#프로젝트가-두-개-필요해지는-경우)에
이 설정이 왜 클라이언트가 아니라 프로젝트 단위인지까지 적어두었습니다.

```mermaid theme={null}
flowchart LR
  A["개인 Gmail"] --> P1["프로젝트 A"]
  B["Workspace 계정<br/>(조직이 차단)"] -.->|동의 불가| P1
  B --> P2["프로젝트 B<br/>그 조직 소유, Internal"]
  P1 --> OK1["정상 동작"]
  P2 --> OK2["정상 동작"]
```

이 경우 **두 프로젝트 모두 Developer Preview 승인**이 필요합니다. 설치
페이지의 **연결할 Workspace 계정의 조직이 미검증 앱을 차단하나요?** 카드가
두 번째 프로젝트를 잡아주고, 신청서에 넣을 두 프로젝트 번호를 한 줄로
만들어 줍니다.

## 다음

* [설치하기](/ko/quickstart)로 돌아가 계정을 붙이세요
* [문제 해결](/ko/troubleshooting)
