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

# 앱 타입 선택

> App Key 전용 앱과 OAuth 클라이언트 앱 중 무엇을 만들어야 하는지 알려드릴게요.

앱을 등록할 때 사용하려는 API의 성격에 맞춰 타입을 고릅니다. 기준은 하나입니다 — **사용자 로그인이 필요한가.**

|           | App Key 전용 앱        | OAuth 클라이언트 앱                      |
| --------- | ------------------- | ---------------------------------- |
| 어떤 앱인가요   | 공개 데이터를 가져오는 앱      | 사용자가 로켓펀치 계정으로 로그인해 권한을 허용하는 앱     |
| 사용자 로그인   | 필요 없음               | 필요                                 |
| 발급되는 것    | App Key             | App Key + 시크릿 키 + 리다이렉트 URI 등록     |
| 주로 쓰는 API | 채용공고 · 이벤트 · 게시글 조회 | 게시글 작성 · 수정 · 삭제처럼 사용자 권한이 필요한 API |

## App Key 전용 앱

공개된 데이터를 읽기만 하면 됩니다. 채용공고 검색 서비스, 이벤트 모아보기, 데이터 분석 대시보드처럼 특정 사용자를 대신할 일이 없는 앱이 여기에 해당합니다.

발급받은 App Key를 `X-RP-API-Key` 헤더에 담아 호출하면 끝입니다. 사용자를 로그인시킬 필요도, 동의를 받을 필요도 없습니다.

## OAuth 클라이언트 앱

사용자를 대신해 무언가를 하려면 그 사용자의 동의가 필요합니다. 사용자가 로켓펀치 계정으로 로그인하고 권한을 허용하면, 그 사용자 자격으로 API를 호출할 수 있는 토큰을 받습니다.

등록할 때 **리다이렉트 URI**를 함께 입력합니다. 사용자가 동의를 마친 뒤 돌아올 주소입니다.

<Warning>
  리다이렉트 URI는 앱당 **한 개**이고 **글자 단위로 정확히** 일치해야 합니다. 끝의 슬래시 하나, 쿼리스트링 하나만 달라도 인가가 거부됩니다.
</Warning>

## 어느 쪽인지 헷갈린다면

<AccordionGroup>
  <Accordion title="공고를 검색해서 우리 서비스에 보여주고 싶어요">
    **App Key 전용 앱**입니다. 공개 데이터 조회라 사용자 로그인이 필요 없습니다.
  </Accordion>

  <Accordion title="사용자가 우리 서비스에서 쓴 글을 로켓펀치에도 올리고 싶어요">
    **OAuth 클라이언트 앱**입니다. 특정 사용자 이름으로 글이 작성되므로 그 사용자의 동의가 필요합니다.
  </Accordion>

  <Accordion title="사용자의 로켓펀치 프로필을 우리 서비스 회원가입에 쓰고 싶어요">
    **OAuth 클라이언트 앱**입니다. `profile` scope로 이름과 프로필 정보를, `email` scope로 이메일 주소를 받을 수 있습니다.
  </Accordion>

  <Accordion title="둘 다 필요하면 어떻게 하나요">
    OAuth 클라이언트 앱으로 등록하세요. OAuth 클라이언트 앱도 App Key를 함께 발급받으므로, 공개 데이터 조회는 App Key로 그대로 호출할 수 있습니다.
  </Accordion>
</AccordionGroup>

## 다음 단계

<CardGroup cols={2}>
  <Card title="App Key 인증" icon="key" href="/openapi/auth-app-key">
    키를 헤더에 담아 호출하고 안전하게 관리합니다.
  </Card>

  <Card title="OAuth 2.0 개요" icon="user-lock" href="/openapi/auth-oauth-overview">
    인가 모델과 토큰 수명, 사용할 수 있는 scope를 확인합니다.
  </Card>
</CardGroup>
