๐Ÿฆ’ ๋ฒ•๋ง API

โ†

๋Œ€ํ•œ๋ฏผ๊ตญ ๋ฒ•๋ น์„ AI ์—์ด์ „ํŠธ๊ฐ€ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋ฌด๋ฃŒ API์ž…๋‹ˆ๋‹ค.

0. ์š”์•ฝ

  1. ๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ ์ œ๊ณต ๋ฒ•๋ น 99.9%+ ์ˆ˜๋ก, ๋งค์ฃผ ํ† ์š”์ผ ์ตœ์‹  ๋™๊ธฐํ™”
  2. XML, HWP, PDF ์‚ฌ์ „ ํŒŒ์‹ฑ โ€” ํ‘œ ๋ฐ์ดํ„ฐ ํฌํ•จ ๋ชจ๋“  ์ถœ๋ ฅ JSON
  3. PostgreSQL + pgvector, ์ฃผ์š” ์กฐ๋ฌธ 20๋งŒ๊ฑด ์ž„๋ฒ ๋”ฉ(768d) โ€” semantic search ์ง€์›
  4. ์ธ์ฆํ‚ค ํ•„์š” ์—†๋Š” REST API, rate limit 100ํšŒ/๋ถ„, ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ ์™„๋ฃŒ (4๋ถ„ ๋‚ด 500 ๋™์‹œ์ ‘์† 20K+ ์š”์ฒญ)
  5. ๋กœ๊ทธ์ธ, IP, ์ฟผ๋ฆฌ ๋“ฑ ๋กœ๊น… ์—†์Œ, ์ต๋ช… ์—”๋“œํฌ์ธํŠธ ํ˜ธ์ถœ ๋นˆ๋„๋งŒ ์ง‘๊ณ„
  6. ๋ฌด๋ฃŒ โ€” ์ˆ˜์ตํ™” ๊ณ„ํš ์—†์Œ

1. ์ˆ˜๋ก ๋ฐ์ดํ„ฐ ๋ฒ”์œ„ (2026. 3. 28. ๊ธฐ์ค€)

  • ๋ฒ•๋ น 5,573๊ฑด ยท ํŒ๋ก€ 171,451๊ฑด ยท ์˜์•ˆ 113,894๊ฑด ยท ํ–‰์ •๊ทœ์น™ 23,829๊ฑด
  • ์กฐ์•ฝ 3,596๊ฑด (์–‘์ž 2,841 / ๋‹ค์ž 751) ยท ํ•ด์„๋ก€ 8,600๊ฑด ยท ์ž์น˜๋ฒ•๊ทœ 18,842๊ฑด
  • ์ธ์šฉ๊ด€๊ณ„ 132,707๊ฑด ยท ์—ฐํ˜ 100,357๊ฑด
  • ์ถœ์ฒ˜: ๋ฒ•์ œ์ฒ˜ Open API, ๊ตญํšŒ Open API

2. ์ œ๊ณต ๋ฐ์ดํ„ฐ ํ˜•์‹

  • ๋ฒ•์ œ์ฒ˜ XML ์›๋ณธ์„ ํŒŒ์‹ฑํ•˜์—ฌ ์ „ ํ•ญ๋ชฉ JSON ๊ตฌ์กฐํ™”
  • ๋ณ„ํ‘œยท์„œ์‹: 5,622๊ฐœ ๋ฒ•๋ น, 12,120๊ฑด โ€” HWP/PDF ์›๋ณธ์„ JSON ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ (ํ‘œ rowspan/colspan ๋ณด์กด)
  • ์กฐ๋ฌธ ๋‹จ์œ„ ๋ถ„ํ•ด: ํŽธ-์žฅ-์ ˆ-๊ด€-์กฐ-ํ•ญ-ํ˜ธ-๋ชฉ ๊ณ„์ธต ์•ฝ 119๋งŒ๊ฑด

3. ๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ

  • Cloudflare Workers + PostgreSQL ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ ์—”์ง„
  • keyword / semantic / hybrid search 3์ข… ์ง€์› โ€” ๋ฒ•๋ น ๊ฒ€์ƒ‰ยทํŒ๋ก€ ๊ฒ€์ƒ‰ ๋ชจ๋‘
    (semantic: ์ •ํ™•ํ•œ ํ‚ค์›Œ๋“œ ๋Œ€์‹  "์ž„์ฐจ์ธ ๋ณดํ˜ธ ์š”๊ฑด"์ฒ˜๋Ÿผ ์˜๋ฏธ๋กœ ๊ฒ€์ƒ‰)
  • grep ํŒŒ๋ผ๋ฏธํ„ฐ โ€” ๋ฒ•๋ น ์•ˆ์—์„œ ์กฐ๋ฌธ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰. grep=๋ณด์ฆ๊ธˆ์ด๋ฉด ํ•ด๋‹น ๋ฒ•๋ น์—์„œ "๋ณด์ฆ๊ธˆ" ํฌํ•จ ์กฐ๋ฌธ๋งŒ ๋ฐ˜ํ™˜

4. ์ธํ„ฐํŽ˜์ด์Šค

  • REST API (5๊ฐœ ์—”๋“œํฌ์ธํŠธ, 12๊ฐœ action) ยท MCP ์„œ๋ฒ„ ยท OpenAPI 3.0 ์ŠคํŽ™(/openapi.json)
  • depth ํŒŒ๋ผ๋ฏธํ„ฐ(=0, 1, 2) โ€” ๋ฒ•๋ฅ โ†’์‹œํ–‰๋ นโ†’์‹œํ–‰๊ทœ์น™ ์œ„์ž„ ์กฐ๋ฌธ ํ•œ ๋ฒˆ์— ์กฐํšŒ
  • ํ™˜๊ฐ ๋ฐฉ์ง€์šฉ ์ธ์šฉ ๊ฒ€์ฆ(verify) โ€” ์—์ด์ „ํŠธ๊ฐ€ ์ธ์šฉํ•œ ์กฐ๋ฌธยทํŒ๋ก€๊ฐ€ ์‹ค์žฌํ•˜๋Š”์ง€ ๊ฒ€์ฆ
  • ์ข…ํ•ฉ ์กฐํšŒ(overview) โ€” ๋ฒ•๋ น 1ํšŒ ์š”์ฒญ์œผ๋กœ ์กฐ๋ฌธ, ํŒ๋ก€, ์˜์•ˆ, ์ธ์šฉ ๋ฒ•๋ น๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ฐ˜ํ™˜
  • ์‘๋‹ต ์†๋„ โ€” ์กฐ๋ฌธ ์กฐํšŒ 5ms, ํŒ๋ก€ ์ƒ์„ธ 9ms
  • ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ ์™„๋ฃŒ โ€” 500 ๋™์‹œ ์ ‘์†, 4๋ถ„ ๋‚ด 20,000+ ์š”์ฒญ ์ฒ˜๋ฆฌ

5. ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ

  • ์ธ์ฆํ‚คยท๋กœ๊ทธ์ธยทํšŒ์›๊ฐ€์ž… ๋ถˆํ•„์š”
  • IP ์ฃผ์†Œ, User-Agent ๋“ฑ ๊ฐœ์ธ ์‹๋ณ„ ๊ฐ€๋Šฅ ์ •๋ณด ์ผ์ฒด ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์Œ
  • ์š”์ฒญ ๋ณธ๋ฌธ(๊ฒ€์ƒ‰์–ด ํฌํ•จ) ์„œ๋ฒ„์— ์ €์žฅํ•˜์ง€ ์•Š์Œ
  • ์ต๋ช… ์—”๋“œํฌ์ธํŠธ๋ณ„ ํ˜ธ์ถœ ๋นˆ๋„๋งŒ ์ง‘๊ณ„ (์„œ๋น„์Šค ์•ˆ์ •์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ชฉ์ )
  • ํ”ผ๋“œ๋ฐฑ์€ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ์ž ์Šน๋‚™ ํ›„ ์ „์†ก โ€” ์—์ด์ „ํŠธ ๋‹จ๋… ๋ฐœ์‹  ๋ถˆ๊ฐ€

6. Acknowledgements

  • ๋Œ€ํ•œ๋ฏผ๊ตญ ๋ฒ•๋ น์˜ SSOT, ๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ๋ฅผ ์šด์˜ํ•ด์ฃผ์‹œ๋Š” ๋ฒ•์ œ์ฒ˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์˜์•ˆยท์ž…๋ฒ• ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐฉํ•ด์ฃผ์‹œ๋Š” ๊ตญํšŒ์‚ฌ๋ฌด์ฒ˜์—๋„ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

IP, ๊ฒ€์ƒ‰์–ด, ๊ฐœ์ธ์ •๋ณด ๋“ฑ์€ ์ผ์ ˆ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ต๋ช… ์—”๋“œํฌ์ธํŠธ ํ˜ธ์ถœ ๋นˆ๋„๋งŒ ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

API ์ถœ๋ ฅ(๋ฒ•์ œ์ฒ˜, ๊ตญํšŒ ์ถœ์ฒ˜)์€ ์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ฒ•์  ํšจ๋ ฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

help@beopmang.org