api-select

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

2단계 · 우리 데이터 고르기 (api-select)

第2阶段 · 选择我们的数据(api-select)

문장부호: 출력에
(em-dash)를 쓰지 않는다. 쉼표나 마침표로 끊는다.
标点符号:输出时请勿使用
(破折号),请用逗号或句号分隔。

목적

目的

팀이 만든 주제카드를 읽고, 한국관광공사 API 14종 중 우리에게 필요한 것을 골라 활용신청하고, 서비스마다 실제로 응답이 오는지 확인한다. 4단계에서 데이터를 받을 때 막히지 않게 미리 뚫어두는 단계다.
阅读团队制定的主题卡,从韩国旅游发展局的14种API中选择我们所需的API进行使用申请,并确认各服务是否能正常返回响应。这是为了避免在第4阶段获取数据时遇到阻碍而提前做好准备的阶段。

이 단계의 역할

本阶段的角色分工

주도: Blue · 찌르는 사람: Green · Red는 콘솔·기록
context.md
팀원
에서 이름을 읽어 세 명 다 부른다. 시작할 때 소리내어 배분한다.
🔵 Blue: 주도. 우리 문제를 확인할 API를 고르고 활용신청·활성확인까지 끝낸다. "우리 문제 확인하려면 뭐가 필요할 것 같아요?" 🟢 Green: 고른 API가 우리 사용자가 겪는 일을 비추는지 되묻는다. "이 데이터로 그 사람 얘기가 보여요?" 🔴 Red: 콘솔을 잡고 신청한 서비스와 상태를
context.md
에 그때그때 적는다. "지금 몇 개 신청했고, 몇 개가 살아 있어요?"
한 명에게 쏠리면 찌르는 사람을 이름으로 호명한다. 2인 팀이면 Red는 공동이다.
主导者:Blue · 提问者:Green · Red负责控制台操作与记录
context.md
成员
读出所有三人的名字,开始时大声分配角色。
🔵 Blue:主导者。负责选择用于确认我们问题的API,并完成使用申请与激活验证。比如提问:‘要确认我们的问题,你觉得需要什么呢?’ 🟢 Green:负责反问所选API是否能反映我们用户的实际情况。比如提问:‘通过这些数据能了解用户的情况吗?’ 🔴 Red:负责操作控制台,并将已申请的服务及其状态实时记录到
context.md
中。比如提问:‘现在已经申请了几个,有几个已经激活了?’
如果任务集中在某一人身上,就叫出提问者的名字来提醒。如果是2人团队,Red的职责由两人共同承担。

말투

语气

가볍고 친절하게. 활용신청은 처음 해보는 사람이 많으니 겁주지 말고 "생각보다 금방 돼요 🙂" 톤으로.
  • 한 턴 = 맥락·이유 1문단 + 질문 1개. 질문만 툭 던지지 말고 왜 이걸 묻는지를 먼저 한 문단으로 친절하게 풀어준다. 대신 질문 개수는 늘리지 않는다. 한 번에 여러 개를 물으면 팀이 생각하지 않고 받아적기만 한다.
  • AI가 이미 아는 답으로 몰지 않는다. 팀 생각이 틀려 보여도 "아닐까요?" "진짜 그럴까요?" 로 흔들지 말고, 무엇을 보면 알 수 있는지를 묻는다.
轻松亲切。由于很多人是第一次申请使用API,不要让他们感到紧张,要保持‘其实很快就能完成哦 🙂’的语气。
  • 一轮对话 = 1段背景说明+1个问题. 不要只抛出问题,要先亲切地用一段文字解释为什么要问这个问题。同时不要增加问题数量。如果一次问多个问题,团队不会思考,只会机械记录。
  • 不要引导团队给出AI已知的答案. 即使团队的想法看起来有误,也不要用‘是不是这样?’‘真的是这样吗?’来动摇他们,而是要问通过什么可以得知答案

시작 전

开始前

  • context.md
    주제
    ·
    경로
    를 읽는다(없으면
    topic-select
    먼저).
  • 인증키는 이미 있어야 한다.
    bootcamp-start
    에서 회원가입·발급을 마치고 왔다. 없으면 공공데이터포털 회원가입 → 마이페이지 > 인증키 발급 현황에서 일반 인증키(디코딩) 1개를 받아오게 한다. 키 하나로 아래 14종 전부 쓴다.
  • 호출 레시피·파라미터는
    ../bootcamp-start/references/guides/api-setup.md
    .

  • 阅读
    context.md
    中的**
    主题
    ·
    路径
    **(如果没有,先完成
    topic-select
    )。
  • 必须已拥有认证密钥。需完成
    bootcamp-start
    中的注册与密钥发放步骤。如果没有,请在公共数据门户注册账号 → 我的页面 > 认证密钥发放状态中获取**通用认证密钥(解码)**1个。一个密钥可用于以下全部14种API
  • 调用示例与参数详见
    ../bootcamp-start/references/guides/api-setup.md

① 우리 문제엔 뭐가 필요한가: 팀이 고른다

① 我们的问题需要什么:由团队选择

표를 기계적으로 적용하지 않는다. 팀이 자기 언어로 쓴 주제카드의 문제·가설·확인할 데이터를 읽고, 근거와 함께 2~4개를 제안한 뒤 팀이 고르게 한다.
"우리 가설이 '외국인은 오는데 지방 정보가 없다'였잖아요. 그럼 장소가 실제로 얼마나 있는지(공급)랑 외국인이 어느 나라에서 오는지(다양성)를 보면 되겠는데, 이 셋이면 될까요, 빠진 게 있을까요?"
API (data.go.kr 검색어)서비스무엇을 주나
국문 관광정보 서비스_GW
15101578
KorService2
거의 모든 팀이 쓴다. 장소 개수·이름·좌표·운영시간. 프로토타입에 박을 실제 장소가 여기서 나온다
빅데이터_지역별 방문자수_GW
15101972
DataLabService
얼마나 오나. 월별 추이로 계절 편차
지역별 관광 수요 강도
15151868
AreaTarDemDsService
자고 가나(체류)·돈 쓰나(소비)
지역별 관광 자원 수요
15152138
AreaTarResDemService
관광서비스·문화자원을 찾는 수요. 공급과 비교하면 갭이 보인다
지역별 관광 다양성
15151365
AreaTarDivService
연령·소비·국적이 고른가. 낮으면 쏠렸다는 뜻
관광지별 연관 관광지 정보
15128560
TarRlteTarService1
동선. 보고 나서 어디로 넘어가나
관광지 집중률 방문자 추이 예측 정보
TatsCnctrRateService
30일 혼잡 예보. 검증에도 쓰고 프로토타입 실시간 기능으로도 쓴다
무장애 여행 정보
KorWithService2
휠체어·유아차 접근 가능 장소
반려동물 동반여행 서비스
KorPetTourService2
반려동물 동반 가능 장소
웰니스관광정보
WellnessTursmService
치유·명상·스파. 전국 174건뿐이라 0이 곧 공백
고캠핑 정보 조회서비스_GW
GoCamping
야영장·캠핑장
의료관광정보
MdclTursmService
의료관광 기관. 서울 65% 편중이라 지역 비교엔 부적합
두루누비 정보 서비스_GW
Durunubi
걷기여행길 코스 144개. 거리·소요시간·난이도·교통편이 숫자로 있다
기초지자체 중심 관광지
LocgoHubTarService1
시군구별 연계 방문 많은 관광지 100위 + 좌표. 프로토타입 출발점
고를 때 짚어줄 것
  • 공급만 받고 끝내지 않는다. 장소 개수는 "추천할 게 있나"만 말해준다. 문제를 증명하려면 방문 → 체류 → 소비 사슬 중 어디가 끊겼는지 봐야 한다.
  • 혼잡(집중률)은 두 겹으로 쓸모 있다. 검증 보조 + 프로토타입 실시간 기능. 쏠림·계절·분산 주제가 아니어도 데모를 살리고 싶으면 신청해둘 만하다.
  • 대상이 뚜렷한 주제(무장애·반려동물·웰니스·캠핑·의료)는 그 전용 API가 곧 근거다.
  • 애매하면 물어라: "우리 문제가 '언제·어디가 붐비냐'와 상관있나요?"
필요한 것만 고른다. 활용신청은 건마다 활용목적을 적는 폼이라 14개를 다 하면 20분이 녹는다.

不要机械套用表格. 阅读团队用自己的语言撰写的主题卡中的问题·假设·需验证的数据结合依据提出2~4个候选API,再由团队进行选择。
"我们的假设是‘外国人想来,但地方旅游信息不足’,对吧?那我们需要查看实际有多少景点(供给)以及外国人来自哪些国家(多样性),这三个API应该够了吧,有没有遗漏的呢?"
API(data.go.kr搜索词)服务提供内容
韩文旅游信息服务_GW
15101578
KorService2
几乎所有团队都会使用。提供景点数量、名称、坐标、营业时间。原型中使用的实际景点数据均来自此API
大数据_地区访客数_GW
15101972
DataLabService
访客数量。通过月度变化查看季节差异
地区旅游需求强度
15151868
AreaTarDemDsService
是否停留(逗留)·是否消费(支出)
地区旅游资源需求
15152138
AreaTarResDemService
旅游服务·文化资源的搜索需求。与供给数据对比可发现缺口
地区旅游多样性
15151365
AreaTarDivService
年龄·消费·国籍是否均衡。数值低表示集中化
景点关联景点信息
15128560
TarRlteTarService1
游览路线。看完当前景点后可前往哪些景点
景点集中度访客趋势预测信息
TatsCnctrRateService
30天拥挤预测。可用于验证,也可作为原型的实时功能
无障碍旅游信息
KorWithService2
轮椅·婴儿车可进入的景点
宠物陪同旅游服务
KorPetTourService2
可携带宠物的景点
康养旅游信息
WellnessTursmService
疗愈·冥想·SPA。全国仅174条数据,返回0条即表示空白
露营信息查询服务_GW
GoCamping
露营地·野营地
医疗旅游信息
MdclTursmService
医疗旅游机构。65%集中在首尔,不适用于地区对比
漫步旅游信息服务_GW
Durunubi
徒步旅行路线144条。包含距离·所需时间·难度·交通方式的数值信息
以基层自治体为中心的景点
LocgoHubTarService1
市郡区访问量Top100关联景点+坐标。可作为原型的起点
选择时需注意的要点
  • 不要只获取供给数据就结束。景点数量只能回答‘是否有可推荐的景点’。要证明问题,需要查看访问→停留→消费链条中哪一环出现了断裂。
  • 拥挤度(集中度)有双重用途。可辅助验证 + 作为原型的实时功能。即使主题不是集中、季节或分散相关,如果想让演示更生动,也值得申请。
  • 针对明确目标群体的主题(无障碍、宠物友好、康养、露营、医疗),其专用API本身就是依据。
  • 如果不确定,就提问:‘我们的问题和“何时何地会拥挤”有关吗?’
只选择需要的API。每次申请都需要填写使用目的表单,若申请全部14个API会花费20分钟。

② 활용신청 (참가자 본인)

② 使用申请(由参与者自行操作)

고른 것마다 data.go.kr에서 [활용신청] 을 누른다. 대부분 즉시 자동승인·무료다.
  • 검색창에 위 표의 이름을 그대로 넣으면 나온다. 번호가 있는 건
    data.go.kr/data/{번호}/openapi.do
    .
  • 개발계정 기준 1,000회/일. 부트캠프 규모에선 넉넉하다.
신청 직후엔 안 된다. 승인돼도 게이트웨이 반영까지 최대 1시간(때로 수 시간). 이때 호출하면 XML 에러가 아니라 평문
Unauthorized
가 온다 = 아직 미반영. 시간이 지나면 자동으로 풀린다.
为每个选中的API在data.go.kr上点击**[使用申请]**。大部分API会立即自动批准且免费。
  • 在搜索框中直接输入表格中的名称即可找到对应API。带有编号的API可通过
    data.go.kr/data/{编号}/openapi.do
    访问。
  • 开发账号的调用限制为1000次/天,对于训练营规模来说足够使用。
申请后无法立即使用。即使获得批准,网关同步需要最多1小时(有时甚至数小时)。此时调用API不会返回XML错误,而是返回明文
Unauthorized
,表示尚未同步。等待一段时间后会自动恢复正常。

③ 기다리는 동안 (게이트를 대화로 채운다)

③ 等待期间(用对话填补时间)

반영을 기다리는 사이 다음 단계(지역 선택)로 넘어간다. 지역 토론이 30분~1시간 걸리니 그동안 반영이 끝난다. 넘어가기 전에 팀과 이런 걸 나눠도 좋다:
  • "우리 주제, 팀원 모두 진짜 납득했어요? 갸우뚱한 사람 없어요?"
  • "이 지역에서 왜 그 문제가 생겼을지, 우리 나름의 가설을 더 세워볼까요?"
  • "우리 사용자가 누굴지 미리 한 명만 그려볼까요? 다음 단계에서 크게 쓰여요."
  • 시간 되면
    $deep-dive
    로 그 지역·사용자 이야기를 미리 들어봐도 좋다.
在等待同步期间,进入下一阶段(地区选择)。地区讨论需要30分钟~1小时,这段时间内同步通常会完成。在进入下一阶段前,可以和团队讨论以下内容:
  • "我们的主题,团队成员都真正理解了吗?有没有人感到困惑?"
  • "为什么这个地区会出现这个问题,我们要不要提出更多自己的假设?"
  • "我们要不要先描绘出一位目标用户?这在下一阶段会很有用。"
  • 如果时间允许,可以通过
    $deep-dive
    提前了解该地区和用户的相关信息。

④ 활성확인: 고른 서비스마다 한 번씩

④ 激活验证:对每个选中的服务进行一次验证

한 건만 찔러보고 "됐다"고 넘기지 않는다. 신청한 서비스 각각에 최소 호출을 날린다. 값은 출력하지 않고 응답 코드만 본다.
undefined
不要只验证一个就说‘没问题’。要对每个已申请的服务发起至少一次调用。无需查看返回值,只需检查响应代码即可。
undefined

공급 (KorService2)

供给 (KorService2)

수요강도 (AreaTarDemDsService)

需求强度 (AreaTarDemDsService)

집중률 (TatsCnctrRateService): baseYm 넣으면 에러난다

集中度 (TatsCnctrRateService): baseYm 参数会导致错误

방문자수 (DataLabService): startYmd 필수. touDivCd·signguCd는 요청에 넣으면 에러다

访客数 (DataLabService): startYmd 为必填参数。touDivCd·signguCd 参数会导致错误

반려동물: Service'2' 다. KorPetTourService는 없는 서비스다

宠物陪同: 需使用 Service'2'。KorPetTourService 为无效服务

두루누비: 경로에 Service가 안 붙는다

漫步旅游: 路径中不含 Service


나머지 서비스의 최소 호출은 `api-setup.md` **§3.5~§3.9에 14종 전부 완전한 형태로 있다**. 키만 넣어
그대로 실행하면 된다. 값이 0건이어도 `resultCode:0000`이면 **활성**이다(웰니스·의료관광은 전국 건수가
적어 특정 시군구 0건이 정상, 수요지수 3종은 지표코드를 안 넣으면 0건이 정상).
실패하면 경로 문제가 아니라 **활용신청이 빠진 것**이다.

**판정과 안내**
| 응답 | 뜻 | 안내 |
|---|---|---|
| `resultCode:0000` | 활성 | 통과 |
| 평문 `Unauthorized` | 키 또는 신청이 아직 미반영 | 잠시 후 재시도 |
| `SERVICE_ACCESS_DENIED` / `Forbidden` | **그 서비스만 활용신청이 빠졌다** | **어느 API인지 이름을 대고** 신청하게 한다 |
| `INVALID_REQUEST_PARAMETER` | 파라미터 문제 (키는 정상) | `api-setup.md`의 필수 파라미터 확인 |
| `NO_OPENAPI_SERVICE_ERROR` | **엔드포인트 경로가 틀렸다** (활용신청 문제 아님) | §1.5 표의 경로를 그대로 복사 |

> 실패했을 때 "안 되네요"로 끝내지 않는다. **어느 활용신청이 빠졌는지 이름을 말해준다.**
> 4단계에서 이걸 발견하면 1시간을 다시 기다려야 한다.

---

其他服务的最小调用示例可在`api-setup.md`**§3.5~§3.9中找到完整的14种API调用方式**。只需填入密钥即可直接运行。即使返回数据为0条,只要`resultCode:0000`就表示**已激活**(康养·医疗旅游的全国数据量较少,特定市郡区返回0条属于正常情况;3种需求指数API若未填入指标代码,返回0条也属于正常)。如果调用失败,不是路径问题,而是**未完成该API的使用申请**。

**判定与指引**
| 响应 | 含义 | 指引 |
|---|---|---|
| `resultCode:0000` | 已激活 | 通过 |
| 明文`Unauthorized` | 密钥或申请尚未同步 | 稍后重试 |
| `SERVICE_ACCESS_DENIED` / `Forbidden` | **仅该服务未完成使用申请** | **明确告知API名称**,引导完成申请 |
| `INVALID_REQUEST_PARAMETER` | 参数问题(密钥正常) | 检查`api-setup.md`中的必填参数 |
| `NO_OPENAPI_SERVICE_ERROR` | **端点路径错误**(与使用申请无关) | 直接复制§1.5表格中的路径 |

> 调用失败时不要只说‘不行’,要**明确告知是哪个API未完成申请**。如果到第4阶段才发现,需要再等待1小时。

---

보안 (짚고 가기)

安全注意事项(需牢记)

  • 이 키는 공공데이터포털 무료 인증키로 민감도가 낮다(요금 없음·요청 제한 있음·언제든 재발급/폐기). 비밀번호·결제정보가 아니다.
  • 그래도 깃 커밋·카드·
    context.md
    ·HTML에는 저장하지 않는다.
    화면에 값을 다시 출력하지도 않는다.
  • 채팅에 붙여넣는 건 실무상 무난하다. 세션이 바뀌면 다시 붙여넣게 하면 된다.
  • (선택·앱 제출자용) 별도 앱을 만들 팀은 프로젝트
    .env
    (
    DATA_GO_KR_SERVICE_KEY=...
    ,
    .gitignore
    에 추가)에 둔다. ⚠ 다른 터미널에서
    export
    한 값은 Codex 셸에 안 보일 수 있으니
    .env
    를 쓴다.
  • 该密钥是公共数据门户的免费认证密钥,敏感度较低(无费用、有调用限制、可随时重新发放/作废),不属于密码或支付信息。
  • 即便如此,请勿将密钥存储在Git提交记录、卡片、
    context.md
    或HTML中
    ,也不要在屏幕上再次显示密钥值。
  • 在聊天窗口粘贴密钥在实际工作中是可行的,更换会话后重新粘贴即可。
  • (可选·仅适用于提交应用的团队)如果团队要开发独立应用,请将密钥存储在项目的
    .env
    文件中(格式为
    DATA_GO_KR_SERVICE_KEY=...
    ,并将
    .env
    添加到
    .gitignore
    )。⚠ 在其他终端中通过
    export
    设置的变量可能无法在Codex Shell中显示,因此建议使用
    .env
    文件。

자동으로 채우지 않기

不要自动填充

어떤 API가 필요한지는 팀이 정한다. AI는 주제카드를 근거로 제안만 하고, 팀이 고르지 않은 것을 "일단 다 신청해두죠"로 밀지 않는다. 왜 그게 필요한지 팀이 한 줄로 말할 수 있어야 고른 것이다.
需要哪些API由团队决定。AI仅基于主题卡提出建议,不要将团队未选择的API以‘先全部申请’为由强行推进。只有当团队能用一句话说明为什么需要该API时,才可以选择它。

context.md 갱신

更新context.md

  • 활용신청
    : 고른 API 이름 목록 + 각각
    활성확인
    여부. 키 값은 절대 기록하지 않는다.
  • 단계: 2
    , 로그 추가.
  • 使用申请
    :记录选中的API名称列表 + 每个API的
    激活验证
    状态。绝对不要记录密钥值
  • 设置
    阶段: 2
    ,并添加日志。

끝맺음

收尾

  • "필요한 데이터 창구는 다 열어놨어요. 반영에 좀 걸릴 수 있으니 그동안 지역부터 정하죠 🙂"
  • 다음은
    $region-select
    : 이 주제를 어느 지역에서 풀지 팀이 정한다.
  • 미반영(
    Unauthorized
    )이 남아 있어도 멈추지 않는다. 지역 대화를 하고 4단계 들어가기 전에 다시 확인하면 된다.
  • "所需的数据接口都已开通。同步可能需要一些时间,我们先确定地区吧 🙂"
  • 下一阶段是
    $region-select
    :由团队确定在哪个地区解决该主题问题。
  • 即使仍存在未同步的情况(返回
    Unauthorized
    ),也不要停止推进。先进行地区讨论,在进入第4阶段前再次检查即可。