• OKF Bundle์€ OKF concept ๋ฌธ์„œ๋“ค์„ ๋‹ด์€ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ โ€” โ€œa directory of markdown documents with YAML frontmatter that catalog tools, downstream agents, and humans can all readโ€
  • concept ๋ฌธ์„œยทindex.md(๋ชฉ์ฐจ)ยทlog.md(์ด๋ ฅ)ยทreferences/(๋ถ€์ˆ˜ ๋ฌธ์„œ)๋กœ ๊ตฌ์„ฑ๋œ ํŒŒ์ผ ๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง€
  • git repoยทtarballยทzip์œผ๋กœ ํ†ต์งธ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š” ์ด์‹ ๊ฐ€๋Šฅํ•œ ์ง€์‹ ๋ฌถ์Œ โ€” OKF (Open Knowledge Format)์˜ ๋ฐฐํฌ ๋‹จ์œ„
  • ์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌยท์ค‘์•™ ๊ถŒ์œ„ยทํ•„์ˆ˜ ํˆด๋ง์ด ์—†๋Š” ์ตœ์†Œ ๊ทœ์•ฝ(minimally opinionated) ์ •์  ํฌ๋งท

์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ

๋ฒˆ๋“ค์€ โ€œ์ฃผ์ œ๋ณ„ ๋ฉ”๋ชจ ์นด๋“œ(=concept ๋ฌธ์„œ)๋ฅผ ํ•œ ํด๋”์— ์ •๋ฆฌํ•ด, ํ†ต์งธ๋กœ zip์ด๋‚˜ git์œผ๋กœ ๊ฑด๋„ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋ฌถ์–ด๋‘” ๊ฒƒโ€์ด๋‹ค. ์นด๋“œ ํ•œ ์žฅ = ๊ฐœ๋… ํ•˜๋‚˜(ํ…Œ์ด๋ธ”ยท์ง€ํ‘œยท๋Ÿฐ๋ถโ€ฆ)์ด๊ณ , ์นด๋“œ๋ผ๋ฆฌ๋Š” ๋ณธ๋ฌธ ์•ˆ์˜ ๋งํฌ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. ํด๋” ๋งจ ์•ž์—” ๋ชฉ์ฐจ ์นด๋“œ(index.md), ํ•œ์ชฝ์—” ์ˆ˜์ • ์ผ์ง€(log.md)๊ฐ€ ์žˆ๋‹ค. ์ด ํด๋”๋ฅผ ๊ทธ๋Œ€๋กœ ์••์ถ•ํ•ด ๋ณด๋‚ด๋ฉด ๋ฐ›๋Š” ์ชฝ โ€” ์‚ฌ๋žŒ์ด๋“  ์—์ด์ „ํŠธ๋“  โ€” ์ด ๋ณ„๋„ ๋„๊ตฌ ์—†์ด ํŽผ์ณ ์ฝ๋Š”๋‹ค.

๊ทธ๋ƒฅ markdown์„ ํ•œ๊ณณ์— ๋ชจ์œผ๋ฉด ์•ˆ ๋˜๋‚˜? โ€” OKF๊ฐ€ ๋”ํ•˜๋Š” ๊ฒƒ

์‚ฌ์‹ค OKF๋Š” ๊ฑฐ์ฐฝํ•œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋‹ค. ํฉ์–ด์ง„ markdown ๋”๋ฏธ์— ์ƒํ˜ธ์šด์šฉ์— ๊ผญ ํ•„์š”ํ•œ ์ตœ์†Œ ๊ทœ์น™(๋งจ ์œ„ type, ๋ชฉ์ฐจ index.md, ๋งํฌ ๊ทœ์•ฝ)๋งŒ ๋ชป ๋ฐ•์€ ๊ฒƒ์ด๋‹ค โ€” โ€œno schema registry, no central authority, and no required tooling.โ€ ๊ทธ๋Ÿฐ๋ฐ ์ด ์ž‘์€ ๊ทœ์•ฝ์ด โ€œ๊ทธ๋ƒฅ .md ๋ชจ์œผ๊ธฐโ€์™€ ๊ฒฐ์ •์  ์ฐจ์ด๋ฅผ ๋งŒ๋“ ๋‹ค.

AS-IS โ€” ๊ทœ์•ฝ ์—†๋Š” markdown ๋”๋ฏธ

flowchart LR
    F1[notes1.md] --> A[๋ฐ›๋Š” ์‚ฌ๋žŒ/์—์ด์ „ํŠธ]
    F2[schema.txt] --> A
    F3[wiki page] --> A
    A -. ๋ชฉ์ฐจยทํƒ€์ž…ยท๋งํฌ ๊ทœ์•ฝ ์—†์Œ .-> X((์–ด๋””์„œ๋ถ€ํ„ฐ ์ฝ์ง€?))

TO-BE โ€” OKF Bundle

flowchart LR
    subgraph B["OKF Bundle (1๊ฐœ ๋””๋ ‰ํ„ฐ๋ฆฌ)"]
        IDX[index.md<br/>๋ชฉ์ฐจ]
        C1["orders.md<br/>type: BigQuery Table"]
        C2[customers.md]
        LOG[log.md<br/>๋ณ€๊ฒฝ ์ด๋ ฅ]
        C1 -->|/tables/customers.md| C2
    end
    B -->|git / tarball / zip| H[์‚ฌ๋žŒ: catยทGitHub]
    B -->|ingest| AG[์—์ด์ „ํŠธ: SDK ์—†์ด ํŒŒ์‹ฑ]

๊ทธ๋ƒฅ ๋ชจ์•„๋‘” ๋”๋ฏธ ๋Œ€๋น„ OKF๊ฐ€ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ(๊ณต์‹ README๊ฐ€ ์ •๋ฆฌํ•œ ์ด์ ):

  • ๋„๊ตฌ ์—†์ด ์ฝํž˜ โ€” โ€œNo SDK or query language stands between a reader and the content.โ€ ์‚ฌ๋žŒ์€ catยทGitHub๋กœ, ์—์ด์ „ํŠธ๋Š” ๋ณ„๋„ SDK ์—†์ด ํŒŒ์‹ฑํ•œ๋‹ค. LLM์—๊ฒŒ ์ข‹์€ ํฌ๋งท์ด ๊ณง ์‚ฌ๋žŒ์—๊ฒŒ๋„ ์ข‹์€ ๊ฐ™์€ ํ•œ ๋ฒŒ์ด๋ผ, โ€œ์—์ด์ „ํŠธ์šฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐโ€์™€ โ€œ์‚ฌ๋žŒ์šฉ ์œ„ํ‚คโ€๋ฅผ ๋”ฐ๋กœ ๋‘˜ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • ๋ฒ„์ „๊ด€๋ฆฌ๊ฐ€ ๊ทธ๋ƒฅ ๋จ โ€” โ€œPull requests, line-by-line diffs, blame, and review workflows just work.โ€
  • ์ด์‹์„ฑ โ€” โ€œNo proprietary API stands between you and your metadata.โ€ git/tarball๋กœ ์–ด๋””๋กœ๋“  ์˜ฎ๊ฒจ๋„ ์‚ด์•„๋‚จ๋Š”๋‹ค.
  • ๊ตฌ์กฐ + ๋น„๊ตฌ์กฐ ๋™์‹œ โ€” frontmatter(๊ตฌ์กฐํ™” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ)์™€ ๋ณธ๋ฌธ(proseยทํ‘œยท์˜ˆ์‹œ)์„ ์˜๋„์ ์œผ๋กœ ํ•จ๊ป˜ ๋‹ด๋Š”๋‹ค.
  • ๊ธฐ์กด ๋„๊ตฌ ํ˜ธํ™˜ โ€” NotionยทObsidianยทMkDocsยทHugoยทJekyll์ด ์ด๋ฏธ markdown + YAML frontmatter๋ฅผ ๋งํ•œ๋‹ค.
  • ๊ด€๊ณ„ ํ‘œํ˜„ โ€” โ€œGraph-shaped, not just tree-shapedโ€ โ€” ํด๋” ๊ณ„์ธต(ํŠธ๋ฆฌ)์„ ๋„˜์–ด ๋งํฌ๋กœ ๊ฐœ๋… ๊ฐ„ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

๋ฒˆ๋“ค ๊ตฌ์กฐ์™€ ๊ฐ ํŒŒ์ผ์˜ ๋ชฉ์  (๊ณต์‹ ์ŠคํŽ™)

์ŠคํŽ™์ด ์ œ์‹œํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

path/to/bundle/
โ”œโ”€โ”€ index.md          # ์„ ํƒ. progressive disclosure์šฉ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ์ฐจ
โ”œโ”€โ”€ log.md            # ์„ ํƒ. ๋ณ€๊ฒฝ ์ด๋ ฅ(์ตœ์‹ ์ˆœ)
โ”œโ”€โ”€ <concept>.md      # ๋ฃจํŠธ์— ๋†“์ธ concept ํ•œ ๊ฐœ
โ””โ”€โ”€ <subdirectory>/   # ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ concept๋“ค์„ ๊ทธ๋ฃนํ™”
    โ”œโ”€โ”€ index.md
    โ”œโ”€โ”€ <concept>.md
    โ””โ”€โ”€ <subdirectory>/
        โ””โ”€โ”€ โ€ฆ

๊ฐ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์™œ ์žˆ๋Š”์ง€, ๋ฌด์—‡์„ ๋งก๋Š”์ง€:

  • concept ๋ฌธ์„œ (<concept>.md) โ€” โ€œA single unit of knowledge within a bundle. Represented as one markdown document.โ€ ์ง€์‹์˜ ์›์ž ๋‹จ์œ„ ํ•˜๋‚˜ = ํŒŒ์ผ ํ•˜๋‚˜๋‹ค. frontmatter์˜ type(ํ•„์ˆ˜)์œผ๋กœ ์ข…๋ฅ˜๋ฅผ ๋ผ๋ฒจ๋งํ•˜๊ณ , ๋ณธ๋ฌธ์— ์Šคํ‚ค๋งˆยท์˜ˆ์‹œยทprose๋ฅผ ๋‹ด๋Š”๋‹ค.
  • index.md (์˜ˆ์•ฝ) โ€” ์–ด๋А ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋‚˜ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชฉ์ฐจ. ๊ทธ ํด๋”์— ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ๋ฌธ์„œ๋ฅผ ์—ด์–ด๋ณด๊ธฐ ์ „์— ํ›‘๊ฒŒ ํ•ด์ค€๋‹ค(progressive disclosure). README ํ‘œํ˜„์œผ๋กœ๋Š” ๋ฒˆ๋“ค ์ „์ฒด๋ฅผ ํ•œ๊บผ๋ฒˆ์— context์— ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  โ€œone level at a timeโ€ ์œผ๋กœ ๋‚ด๋ ค๊ฐ€๋ฉฐ ํƒ์ƒ‰ํ•œ๋‹ค. ๋ณดํ†ต ์ž๋™ ์ƒ์„ฑ๋˜๋ฉฐ, ์—†์œผ๋ฉด consumer๊ฐ€ ์ฆ‰์„์—์„œ ํ•ฉ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • log.md (์˜ˆ์•ฝ) โ€” ๊ณ„์ธต์˜ ์–ด๋А ์ˆ˜์ค€์—๋‚˜ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ณ€๊ฒฝ ์ด๋ ฅ. ๊ทธ scope์˜ ๋ณ€ํ™”๋ฅผ ์ตœ์‹ ์ˆœยทISO 8601(YYYY-MM-DD)๋กœ ๊ธฐ๋กํ•œ๋‹ค. **Update**ยท**Creation**ยท**Deprecation** ๊ฐ™์€ ๊ตต์€ ๋จธ๋ฆฌ๋ง์€ ๊ด€์Šต์ด์ง€ ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
  • references/ โ€” enrichment ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌ๋์ง€๋งŒ ๊ธฐ์กด concept์— ๋”ฑ ๋“ค์–ด๋งž์ง€ ์•Š๋Š” ๋…๋ฆฝ ๋ฌธ์„œ๋ฅผ ๋ชจ์•„๋‘๋Š” ๊ณณ.
  • ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ โ€” ๋„๋ฉ”์ธ์— ๋งž๊ฒŒ ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•œ๋‹ค โ€” โ€œThe directory structure is independent of the domain โ€” producers organize concepts however makes sense.โ€

frontmatter๋Š” type ํ•˜๋‚˜๋งŒ ํ•„์ˆ˜๋‹ค(routingยทfilteringยทpresentation ์šฉ๋„์ด๋ฉฐ ์ค‘์•™ ๋“ฑ๋ก ์ฒด๊ณ„๊ฐ€ ์—†๋‹ค). ๊ถŒ์žฅ ํ•„๋“œ๋Š” ์šฐ์„ ์ˆœ์œ„ ์ˆœ์œผ๋กœ titleยทdescriptionยทresourceยทtagsยทtimestamp.

์™œ ํ•œ ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ํŒŒ์ผยท๋””๋ ‰ํ„ฐ๋ฆฌ์ธ๊ฐ€

โ€œ์ „๋ถ€ ํ•œ .md์— ์ ์œผ๋ฉด ์•ˆ ๋˜๋‚˜?โ€์— ๋Œ€ํ•œ ๋‹ต์€, ์ด ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ผ ํŒŒ์ผ๋กœ๋Š” ๋ชป ์ฃผ๋Š” ๋„ค ๊ฐ€์ง€๋ฅผ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ์›์ž์  diff โ€” OKF๋Š” โ€œDiffable in version controlโ€. concept๋งˆ๋‹ค ํŒŒ์ผ์ด ๋‚˜๋‰˜์–ด ์žˆ์–ด PR์—์„œ ๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€๊ฐ€ ์ค„ ๋‹จ์œ„๋กœ ๋“œ๋Ÿฌ๋‚œ๋‹ค. ๊ฑฐ๋Œ€ํ•œ ๋‹จ์ผ ํŒŒ์ผ์€ ์ž‘์€ ์ˆ˜์ •๋„ diffยทblame์ด ์ง€์ €๋ถ„ํ•ด์ง„๋‹ค.
  • progressive disclosure โ€” ์—์ด์ „ํŠธ๋Š” context window๊ฐ€ ํ•œ์ •์ ์ด๊ณ  ์‚ฌ๋žŒ๋„ ์ „๋ถ€ ์ฝ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค. index.md๋กœ ๋ชฉ์ฐจ๋งŒ ๋ณด๊ณ  ํ•„์š”ํ•œ concept ํŒŒ์ผ๋งŒ ํŽผ์นœ๋‹ค. ํ•œ ํŒŒ์ผ์ด๋ฉด ๋งค๋ฒˆ ์ „์ฒด๋ฅผ ํ†ต์งธ๋กœ ๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ž˜ํ”„ โ‰  ํŠธ๋ฆฌ โ€” concept๊ฐ€ ํŒŒ์ผ๋กœ ์ชผ๊ฐœ์ ธ ์„œ๋กœ๋ฅผ ๋งํฌํ•˜๋ฉด ๋ฐฉํ–ฅ์„ฑ ์—ฃ์ง€์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋œ๋‹ค. ํ•œ ํŒŒ์ผ ์•ˆ์˜ ์•ต์ปค ๋งํฌ๋งŒ์œผ๋กœ๋Š” ์ด ๊ด€๊ณ„๋ง์„ ๊น”๋”ํžˆ ํ‘œํ˜„ํ•˜๊ฑฐ๋‚˜ ํƒ์ƒ‰ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ๋ผ์šฐํŒ…ยท๊ฒ€์ƒ‰ ๋‹จ์œ„ โ€” type์ด ๋ถ™์€ concept ๋‹จ์œ„๋ผ, consumer๊ฐ€ ์ข…๋ฅ˜๋ณ„๋กœ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์—์ด์ „ํŠธ๊ฐ€ ๊ด€๋ จ ์นด๋“œ ํ•œ ์žฅ๋งŒ ๊ณจ๋ผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ง€์‹์„ ์ž‡๋Š” ๋ฒ•: ๋งํฌ์™€ references/

concept๋ผ๋ฆฌ๋Š” ํ‰๋ฒ”ํ•œ markdown ๋งํฌ๋กœ ์ž‡๋Š”๋‹ค. ๋งํฌ์—๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ(/tables/customers.md โ€” ๊ถŒ์žฅ, ๋ฌธ์„œ๋ฅผ ์˜ฎ๊ฒจ๋„ ์•ˆ์ •์ )์™€ ์ƒ๋Œ€ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค. โ€œA link from concept A to concept B asserts a relationshipโ€ ์ด๋˜, ๊ด€๊ณ„์˜ ์ข…๋ฅ˜(parent/childยทjoins-withยทdepends-onโ€ฆ)๋Š” ๋งํฌ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์ฃผ๋ณ€ prose๊ฐ€ ๋งํ•ด์ค€๋‹ค. ๋˜ โ€œConsumers MUST tolerate broken linksโ€ โ€” ๋Œ€์ƒ์ด ์•„์ง ์—†๋Š” ๋งํฌ๋Š” ๊นจ์ง„ ๊ฒŒ ์•„๋‹ˆ๋ผ ์•„์ง ์“ฐ์ง€ ์•Š์€ ์ง€์‹์ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฏธ A๊ฐ€ ์žˆ๊ณ  ์—ฐ๊ด€๋œ B๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ A์— ํ•ฉ์ณ์ง€๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ โ€” ํฌ๋งท ์ž์ฒด์—๋Š” ์ž๋™ ๋ณ‘ํ•ฉยท์ค‘๋ณต์ œ๊ฑฐ ๊ทœ์น™์ด ์—†๋‹ค(๊ฐ concept์€ ๊ฐœ๋ณ„/discrete). ํ•ฉ์น ์ง€ ๋ง์ง€๋Š” producer์˜ ํŒ๋‹จ์ด๊ณ , ๋ ˆํผ๋Ÿฐ์Šค enrichment agent๋Š” ํŽ˜์ด์ง€๋งˆ๋‹ค ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค.

flowchart TB
    NEW[์ƒˆ ์ •๋ณด B] --> Q{๊ธฐ์กด concept A์™€<br/>์–ผ๋งˆ๋‚˜ ์—ฐ๊ด€?}
    Q -->|๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ด€| ENRICH["enrich<br/>A ๋ฌธ์„œ์— B๋ฅผ ๋ณด๊ฐ• (ํ•ฉ์นจ)"]
    Q -->|๋…๋ฆฝ ๊ฐ€์น˜ ์žˆ์Œ| MINT["mint<br/>references/&lt;slug&gt; ์ƒˆ ๋ฌธ์„œ โ†’ A์™€ ๋งํฌ"]
    Q -->|๋ถˆํ•„์š”| SKIP[skip]

์ฆ‰ B๋Š” (a) A ๋ฌธ์„œ์— ๋ณด๊ฐ•๋˜์–ด ํ•ฉ์ณ์ง€๊ฑฐ๋‚˜, (b) references/<slug>๋กœ ๋…๋ฆฝ ๋ฌธ์„œ๊ฐ€ ๋˜์–ด A์™€ ๋งํฌ๋กœ ์ด์–ด์ง„๋‹ค. ์–ด๋А ์ชฝ์ด๋“  ๊ด€๊ณ„๋Š” ๊ฒฐ๊ตญ ๋งํฌ ๊ทธ๋ž˜ํ”„๋กœ ๋‚จ๋Š”๋‹ค. ์ž๋™์œผ๋กœ ํ•ฉ์ณ์ง€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์ƒ์‚ฐ ์ฃผ์ฒด๊ฐ€ ์ •ํ•˜๊ณ  ํ˜•์‹์€ ๊ทธ๊ฒƒ์„ ํ—ˆ์šฉํ•  ๋ฟ์ด๋‹ค.

์›๋ฌธ์„ ๊ทธ๋Œ€๋กœ ๋„ฃ๋‚˜, ์žฌ๊ฐ€๊ณตํ•˜๋‚˜

ํฌ๋งท์€ ์žฌ๊ฐ€๊ณต์„ ๊ฐ•์ œํ•˜์ง€ ์•Š๋Š”๋‹ค. producer์™€ consumer๊ฐ€ ๋…๋ฆฝ์ด๋ผ โ€œ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์—ˆ๋Š”์ง€โ€๋ฅผ ๋”ฐ์ง€์ง€ ์•Š๋Š”๋‹ค โ€” ์‚ฌ๋žŒ์ด ์†์œผ๋กœ ์จ๋„, ์—์ด์ „ํŠธ๊ฐ€ ์ƒ์„ฑํ•ด๋„ ๊ฐ™์€ ๋ฒˆ๋“ค์ด๋‹ค. ๋‹ค๋งŒ ์ŠคํŽ™์€ โ€œProducers SHOULD favor structural markdown โ€” headings, lists, tables, fenced code blocks โ€” over freeform prose, since structure aids both human reading and agent retrievalโ€ ๋ผ๊ณ  ๊ถŒํ•œ๋‹ค.

๊ทธ๋ž˜์„œ enrichment agent ๊ฐ™์€ ์ƒ์‚ฐ ์—์ด์ „ํŠธ๋Š” ์›๋ฌธ์„ ๊ทธ๋Œ€๋กœ ๋ณต๋ถ™ํ•˜๊ธฐ๋ณด๋‹ค frontmatter(๊ตฌ์กฐํ™” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ) + ๋ณธ๋ฌธ(์Šคํ‚ค๋งˆ ํ‘œยท์˜ˆ์‹œ)์œผ๋กœ ์žฌ๊ตฌ์กฐํ™”ํ•œ๋‹ค. โ€œ์•ˆ๋…•ํ•˜์„ธ์š” โ†’ ์•ˆ๋…•โ€ ๊ฐ™์€ ์ž„์˜์˜ ํ‘œ๋ฉด ํ…์ŠคํŠธ ์ถ•์•ฝ์ด ๋ชฉ์ ์ด ์•„๋‹ˆ๋ผ, ๊ฒ€์ƒ‰ยท์ดํ•ด์— ์œ ๋ฆฌํ•œ ๊ตฌ์กฐ๋กœ ์›์˜๋ฏธ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทœ๊ฒฉ์ด์ง€ ํ”„๋กœํ† ์ฝœ์ด ์•„๋‹ˆ๋‹ค (MCP์™€์˜ ์ฐจ์ด)

OKF๋ฅผ โ€œMCP ๊ฐ™์€ ํ•˜๋‚˜์˜ ๊ทœ๊ฒฉโ€์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ๋ฐฉํ–ฅ์€ ๋งž๋‹ค โ€” ๋‘˜ ๋‹ค ๋ฒค๋” ์ค‘๋ฆฝ ๊ฐœ๋ฐฉ ํ‘œ์ค€์œผ๋กœ, ๋ชจ๋‘๊ฐ€ ๊ฐ์ž ๋ณ€ํ™˜๊ธฐ๋ฅผ ๋งŒ๋“ค๋˜ Nร—M ํ†ตํ•ฉ ๋ฌธ์ œ๋ฅผ ์ค„์ด๋Š” โ€œlingua francaโ€๋‹ค. ์ฐจ์ด๋Š” ์ธต์œ„์— ์žˆ๋‹ค.

MCPOKF
์ •์ฒดํ”„๋กœํ† ์ฝœ (runtime)์ •์  ๋ฐ์ดํ„ฐ ํฌ๋งท
ํ•˜๋Š” ์ผ์—์ด์ „ํŠธ๊ฐ€ ๋„๊ตฌยท๋ฐ์ดํ„ฐ์™€ ์‹ค์‹œ๊ฐ„ ๋Œ€ํ™”์ง€์‹์„ ํŒŒ์ผ๋กœ ์ ์–ด๋‘ 
๋น„์œ HTTP / APIMarkdown ยท JSON ๊ฐ™์€ ํŒŒ์ผ ํฌ๋งท
์‹คํ–‰์š”์ฒญ/์‘๋‹ตยท์„ธ์…˜ ์žˆ์Œ์‹คํ–‰ยท์ฟผ๋ฆฌยท๋Ÿฐํƒ€์ž„ ์—†์Œ

MCP๋Š” โ€œ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋Œ€ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•โ€, OKF๋Š” โ€œ์ง€์‹์„ ํŒŒ์ผ๋กœ ์ ์–ด๋‘๋Š” ๋ฐฉ๋ฒ•โ€์ด๋‹ค. ๋‘˜์€ ๊ฒฝ์Ÿ์ด ์•„๋‹ˆ๋ผ ๋ณด์™„ ๊ด€๊ณ„๋‹ค โ€” ์—์ด์ „ํŠธ๋Š” โ€œParseable by agents without bespoke SDKsโ€ ์ธ OKF ๋ฒˆ๋“ค์„ (์˜ˆ: Knowledge Catalog๊ฐ€ ingestํ•ด) ์ปจํ…์ŠคํŠธ๋กœ ๋ฐ›์•„ ์“ด๋‹ค.

์ฐธ๊ณ  ๋ฌธ์„œ