Skip to content

Latest commit

ย 

History

History
85 lines (65 loc) ยท 6.27 KB

File metadata and controls

85 lines (65 loc) ยท 6.27 KB

hwp-hierarchical-md

๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ํ•œ๊ธ€(HWP/HWPX) ๊ณต๋ฌธ์„œ๋ฅผ, ์›๋ฌธ์˜ ์„น์…˜ ๊ณ„์ธต(๋Œ€๋ถ„๋ฅ˜ยท์ค‘๋ถ„๋ฅ˜ยท์ฒจ๋ถ€)์„ ๋ณด์กดํ•œ ์ฑ„ Markdown์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” Claude Code Skill์ด๋‹ค. ํ•œ๊ตญ ๊ณต๊ณต๊ธฐ๊ด€ ์ž…์ฐฐ๊ณต๊ณ ๋ฌธ 42๊ฑด์„ ๋Œ€์ƒ์œผ๋กœ ๊ฒ€์ฆํ–ˆ๋‹ค.

Claude Code์™€ ํ•จ๊ป˜ ์„ค๊ณ„ยท๊ตฌํ˜„ํ–ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •(2-pass ๋ถ„๋ฆฌ, ๊ฒฐ์ •๋ก ์  ์•ˆ์ „๋ง ๊ทœ์น™ ๋“ฑ)์€ ์‹ค์ œ ์‹คํŒจ ์‚ฌ๋ก€๋ฅผ ๊ทผ๊ฑฐ๋กœ ์„ธ์…˜ ์ค‘ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฒ€์ฆยท์ˆ˜์ •ํ•œ ๊ฒƒ์ด๋‹ค โ€” ๊ทธ ๊ณผ์ •์€ docs/DESIGN_PROCESS.md์— ์ •๋ฆฌํ–ˆ๋‹ค.

๋ฌธ์ œ

HWPโ†’Markdown ๋ณ€ํ™˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜ˆ: kordoc)๋Š” ํ‘œยท์„œ์‹ยท ์ฝ๊ธฐ ์ˆœ์„œ๋Š” ์ถฉ์‹คํžˆ ๋ณด์กดํ•˜์ง€๋งŒ, "์ด ์ค„์ด ์ตœ์ƒ์œ„ ์„น์…˜ ์ œ๋ชฉ์ธ์ง€, ๊ทธ ํ•˜์œ„ ์„ธ๋ถ€ํ•ญ๋ชฉ์ธ์ง€, ์•„๋‹ˆ๋ฉด ์„œ๋ช…๋ž€ ๊ฐ™์€ ๋น„-ํ—ค๋”์ธ์ง€"๋Š” ํŒ๋‹จํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์›๋ฌธ ์Šคํƒ€์ผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(ํฐํŠธ ํฌ๊ธฐ, ๋ณผ๋“œ ์—ฌ๋ถ€)๋งŒ์œผ๋กœ๋Š” ๊ณ„์ธต์„ ์•ˆ์ •์ ์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†๋‹ค โ€” ๊ฐ™์€ "1. 2. 3." ๋ฒˆํ˜ธ ๋งค๊น€์ด ๋ฌธ์„œ ์ตœ์ƒ์œ„ ์„น์…˜์—๋„, ๊ทธ ์•ˆ์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์—๋„, ๋ณ„๋„ ์ฒจ๋ถ€(๋ถ™์ž„/์„œ์‹)์—๋„ ๋ฐ˜๋ณตํ•ด์„œ ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  LLM์—๊ฒŒ ๋ฌธ์„œ ์ „์ฒด๋ฅผ ํ†ต์งธ๋กœ ๋‹ค์‹œ ์“ฐ๊ฒŒ ํ•˜๋ฉด, ๋ฌธ๋‹จ์ด ๋น ์ง€๊ฑฐ๋‚˜ ์—†๋Š” ํ—ค๋”๊ฐ€ ์ƒ๊ธฐ๋Š” ๋“ฑ ์ฝ˜ํ…์ธ  ์†์‹ค ์œ„ํ—˜์ด ์ƒ๊ธด๋‹ค.

์ ‘๊ทผ: "ํŒ๋‹จ"๊ณผ "๋ณ€ํ™˜"์„ ๋ถ„๋ฆฌํ•œ๋‹ค

์ด ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™์€ ํ•˜๋‚˜๋‹ค โ€” LLM์€ ํŒ๋‹จ๋งŒ ํ•˜๊ณ , ๋ฌธ์„œ๋ฅผ ๋‹ค์‹œ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

flowchart TD
    A["HWP/HWPX ํŒŒ์ผ"] -->|"kordoc --format json"| B["Stage1\nJSON blocks๋กœ Markdown ์ดˆ์•ˆ ์กฐ๋ฆฝ\n1ร—1 ํ…์ŠคํŠธ๋ฐ•์Šค๋Š” ๋งˆ์ปค๋กœ ๊ฒฝ๊ณ„ ๋ณด์กด(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ, LLM ํ˜ธ์ถœ ์—†์Œ)"]
    B -->|"ํ‰๋ฌธ ํ…์ŠคํŠธ"| C["Pass1a\n๊ทœ์น™ ๊ธฐ๋ฐ˜ ํ—ค๋” ํ›„๋ณด ์ถ”์ถœ\n๋ณผ๋“œ ๋‹จ๋… ์ค„ ยท ๋ฒˆํ˜ธ ๋งค๊น€ ยท ๊ด„ํ˜ธ ๋งˆ์ปค(recall ์šฐ์„ , ์˜คํƒ์€ ํ—ˆ์šฉ)"]
    C -->|"ํ›„๋ณด ๋ชฉ๋ก๋งŒ ์ „๋‹ฌ(์›๋ฌธ ์•„๋‹˜)"| D["Pass1b\nLLM์ด ํ›„๋ณด๋ณ„ ๊ณ„์ธต ํŒ๋‹จ\nmain / sub / attachment / not_heading"]
    D -->|"์ œ๊ณต์ž API๊ฐ€ ํ† ํฐ ํ•œ๋„ ์ดˆ๊ณผ๋ฅผ ์•Œ๋ ค์คŒ"| E["์‹ค์ธก Limit/Requested ๋น„์œจ๋กœ\n๋ฐฐ์น˜๋ฅผ ์ž๋™ ์ถ•์†Œ"]
    E -.->|"์ถ•์†Œ๋œ ๋ฐฐ์น˜๋กœ ์žฌํ˜ธ์ถœ"| D
    D -->|"๋ถ„๋ฅ˜ ๊ฒฐ๊ณผ"| F["๊ฒฐ์ •๋ก ์  ์•ˆ์ „๋ง\n๋ฐ•์Šคยท์„œ์‹ ์Šค์ฝ”ํ”„ ๋‚ด๋ถ€๋Š” ํ•˜์œ„๋กœ ๊ฐ•๋“ฑ\n์„œ๋ช…๋ž€(~๊ท€ํ•˜ ยท ~(์ธ))์€ ํ—ค๋”์—์„œ ์ œ์™ธ"]
    F -->|"ํ™•์ •๋œ ํ—ค๋” ์œ„์น˜"| G["Pass2\nํ—ค๋” ๋งˆํฌ(##/###)๋งŒ ์‚ฝ์ž…\n๋ณธ๋ฌธ์€ ํ•œ ๊ธ€์ž๋„ ์žฌ์ž‘์„ฑํ•˜์ง€ ์•Š์Œ"]
    G --> H["์ตœ์ข… Markdown"]
Loading

ํŒ๋‹จ๊ณผ ๋ณ€ํ™˜์„ ๋ถ„๋ฆฌํ•œ๋‹ค โ€” ํ›„๋ณด๋ฅผ ๋ฝ‘๋Š” ๊ทœ์น™(Pass1a)๊ณผ ๋ฌธ์žฅ์„ ๋‹ค์‹œ ์“ฐ๋Š” ์ผ(Pass2)์—” LLM์„ ์•ˆ ์“ด๋‹ค. LLM์€ ์˜ค์ง "์ด ์ค„์ด ํ—ค๋”์ธ๊ฐ€"๋ผ๋Š” ์ข์€ ํŒ๋‹จ(Pass1b)์—๋งŒ ์“ฐ์—ฌ์„œ, ๋ฌธ๋‹จ ๋ˆ„๋ฝ์ด๋‚˜ ํ—ค๋” ๋‚ ์กฐ ๊ฐ™์€ ์œ„ํ—˜์ด ์„ค๊ณ„์ ์œผ๋กœ ๋ฐฐ์ œ๋œ๋‹ค.

ํ›„๋ณด ๋ชฉ๋ก๋งŒ LLM์— ๋„˜๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์„œ๊ฐ€ ๊ธธ์–ด์ ธ๋„ LLM ํ˜ธ์ถœ ๋น„์šฉ์ด ๊ฑฐ์˜ ๋Š˜์ง€ ์•Š๊ณ , LLM์ด "ํŒ๋‹จ"๋งŒ ํ•˜๊ณ  "์ƒ์„ฑ"์€ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ๋‹จ ๋ˆ„๋ฝยทํ—ค๋” ๋‚ ์กฐ ๊ฐ™์€ ์œ„ํ—˜์ด ์„ค๊ณ„์ ์œผ๋กœ ๋ฐฐ์ œ๋œ๋‹ค.

๊ฒฐ์ •๋ก ์  ์•ˆ์ „๋ง โ€” ์™œ ํ•„์š”ํ•œ๊ฐ€

LLM ๋ถ„๋ฅ˜๋งŒ์œผ๋กœ๋Š” ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด์„ ๋†“์ณค๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

  • ํ…์ŠคํŠธ๋ฐ•์Šค(์ฝœ์•„์›ƒ) ๋‚ด๋ถ€ ์ฝ˜ํ…์ธ : ์›๋ณธ HWP์˜ 1ร—1 ํ…์ŠคํŠธ๋ฐ•์Šค ์•ˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฌธ์„œ ์ตœ์ƒ์œ„ ์„น์…˜ ๋ฒˆํ˜ธ์™€ ๊ฒน์น˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ, LLM์ด ๋ฌธ๋งฅ ์—†์ด ๋ฒˆํ˜ธ๋งŒ ๋ณด๊ณ  ์ตœ์ƒ์œ„๋กœ ์˜ค๋ถ„๋ฅ˜ํ–ˆ๋‹ค. kordoc JSON์˜ rows==1, cols==1 ํ‘œ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ๊ฒฝ๊ณ„๋ฅผ ๋ณด์กดํ•˜๊ณ , ๋ฐ•์Šค ์•ˆ ์ฝ˜ํ…์ธ ๋Š” ํ•ญ์ƒ ํ•˜์œ„๋กœ ๊ฐ•์ œํ•œ๋‹ค.
  • ์ฒจ๋ถ€(๋ถ™์ž„/์„œ์‹) ์Šค์ฝ”ํ”„ ๋‚ด๋ถ€ ์ฝ˜ํ…์ธ : "ใ€์„œ์‹ 7ใ€‘ ์ดํ–‰๋Šฅ๋ ฅ์‹ฌ์‚ฌ..." ๊ฐ™์€ ๊ด„ํ˜ธ ๋งˆ์ปค๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฒจ๋ถ€ ๋ฌธ์„œ ๋‚ด๋ถ€์˜ ์†Œ์ œ๋ชฉ("3. ํšŒ์‚ฌ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ์—ฐ๋ฝ์ฑ…์ž„์ž ์ธ์ ์‚ฌํ•ญ" ๋“ฑ)์ด ๋ฌธ๋งฅ ์—†์ด ์ตœ์ƒ์œ„ ์„น์…˜์œผ๋กœ ์˜ค๋ถ„๋ฅ˜๋๋‹ค. ๊ด„ํ˜ธ ๋งˆ์ปค ๊ตฌ์กฐ(ํŠน์ • ๋‹จ์–ด๋ฅผ ํ•˜๋“œ์ฝ”๋”ฉํ•˜์ง€ ์•Š์Œ)๋กœ ์•ต์ปค๋ฅผ ์žก๊ณ , ๊ทธ ์•ต์ปค๋ถ€ํ„ฐ ๋‹ค์Œ ๋งˆ์ปค ์ „๊นŒ์ง€๋ฅผ ์Šค์ฝ”ํ”„๋กœ ์žก์•„ ๋‚ด๋ถ€ ์ฝ˜ํ…์ธ ๋ฅผ ํ•˜์œ„๋กœ ๊ฐ•๋“ฑํ•œ๋‹ค.
  • ์„œ๋ช…/๋‚ ์ธ๋ž€: "OO ๊ท€ํ•˜"(์ˆ˜์‹ ์ฒ˜ ์ธ์‚ฌ๋ง), "๋Œ€ํ‘œ์ž: (์ธ)"(์‘์ฐฐ์ž ์„œ๋ช…๋ž€) ๊ฐ™์€ ์ค„์ด ๊ฐ„ํ—์ ์œผ๋กœ ํ—ค๋”๋กœ ์˜ค๋ถ„๋ฅ˜๋๋‹ค. ๋‘ ํŒจํ„ด ๋ชจ๋‘ 42๊ฐœ ๋ฌธ์„œ ์ „์ˆ˜ ์กฐ์‚ฌ์—์„œ ์˜คํƒ 0๊ฑด์œผ๋กœ ํ™•์ธ๋œ ์•ˆ์ „ํ•œ ๊ฒฐ์ •๋ก ์  ๊ทœ์น™์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ด๋Ÿฐ ๊ทœ์น™์€ ๋ชจ๋‘ "์ด๋ฏธ LLM์ด ํ™•์ •ํ•œ ํŒ๋‹จ"์ด๋‚˜ "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ณด์กดํ•œ ๊ตฌ์กฐ ์ •๋ณด"์—๋งŒ ๋ฐ˜์‘ํ•˜๋Š” ์ข์€ ๋ฒ”์œ„๋กœ ์„ค๊ณ„ํ–ˆ๋‹ค โ€” "๋ฒˆํ˜ธ๊ฐ€ ์ด์–ด์ง€๋ฉด ์ตœ์ƒ์œ„" ๊ฐ™์€ ์ „์—ญ ๊ทœ์น™์€ ์˜๋„์ ์œผ๋กœ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๋ถ™์ž„/๋ณ„์ฒจ์—์„œ ๋ฒˆํ˜ธ๊ฐ€ ์ •๋‹นํ•˜๊ฒŒ 1๋ถ€ํ„ฐ ๋ฆฌ์…‹๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜คํƒํ•ด์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํŒจํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ฒ€์ฆ

ํ•œ๊ตญ ๋‚˜๋ผ์žฅํ„ฐ(๊ตญ๊ฐ€์ข…ํ•ฉ์ „์ž์กฐ๋‹ฌ์‹œ์Šคํ…œ)์— ๊ฒŒ์‹œ๋œ ์‹ค์ œ ์ž…์ฐฐ๊ณต๊ณ ๋ฌธ 42๊ฑด(ํ•™๊ตยท๊ณต๊ณต๊ธฐ๊ด€ ๋ฐœ์ฃผ, ๋ฌผํ’ˆ ๊ตฌ๋งคยท๊ณต์‚ฌยท์šฉ์—ญ ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ˜•)์œผ๋กœ ๊ฒ€์ฆํ–ˆ๋‹ค. ์›๋ณธ ๋ฌธ์„œ ์ž์ฒด๋Š” ์‹ค์ œ ๊ธฐ๊ด€์˜ ์ €์ž‘๋ฌผ์ด๋ผ ์ด ์ €์žฅ์†Œ์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค(์ฐธ๊ณ : ํ•œ๊ตญ ์ €์ž‘๊ถŒ๋ฒ• ์ œ7์กฐ 2ํ˜ธ์— ๋”ฐ๋ผ ๊ตญ๊ฐ€ยท์ง€๋ฐฉ์ž์น˜๋‹จ์ฒด์˜ ๊ณต๊ณ ๋Š” ์ €์ž‘๊ถŒ ๋ณดํ˜ธ ๋Œ€์ƒ์ด ์•„๋‹ˆ๋‹ค). ๊ฒ€์ฆ ์ง€ํ‘œ:

  • ์ฝ˜ํ…์ธ  ๋ณด์กด์œจ: Stage1(์›๋ฌธ ์ถ”์ถœ) ๋Œ€๋น„ Pass2(์ตœ์ข… ์ถœ๋ ฅ) ๋ฌธ์ž ์ˆ˜ ๋น„์œจ 42๊ฑด ์ „์ฒด 0.95~1.10 ๋ฒ”์œ„ โ€” ํ—ค๋” ๋งˆํฌ ์‚ฝ์ž… ์™ธ ๋ณธ๋ฌธ ์œ ์‹ค/์™œ๊ณก ์—†์Œ
  • ์„น์…˜ ๋ฒˆํ˜ธ ์—ฐ์†์„ฑ: main_section ๋ฒˆํ˜ธ ์‹œํ€€์Šค 42๊ฑด ์ „์ฒด์—์„œ ์ค‘๋ณตยท๋น„์ •์ƒ ๊ฐญ 0๊ฑด
  • ํ‘œ ๊ตฌ์กฐ: rowspan/colspan ๋ณ‘ํ•ฉ ์…€ ์ฒ˜๋ฆฌ, ๋ฐ‘์ค„ ํƒœ๊ทธยทPUA ์œ ๋‹ˆ์ฝ”๋“œ ์ž”์žฌ ์ œ๊ฑฐ. ์‹ค์ œ ํ—ค๋”๊ฐ€ ์—†๋Š” ํ‘œ(๋ผ๋ฒจ:๊ฐ’ ๋‚˜์—ดํ˜•)๋‚˜ 2๋‹จ ํ—ค๋”(๋Œ€๋ถ„๋ฅ˜+์†Œ๋ถ„๋ฅ˜) ํ‘œ๋„ GFM pipe-table ๋ฌธ๋ฒ•์ด ํ—ค๋” ํ–‰์„ ๊ฐ•์ œํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ •ํ™•ํžˆ ์ฒ˜๋ฆฌํ•œ๋‹ค โ€” ํ—ค๋” ์—†๋Š” ํ‘œ๋Š” ์• ์ดˆ์— ํ‘œ๋กœ ์•ˆ ๋งŒ๋“ค๊ณ  label: value ํ…์ŠคํŠธ๋กœ ์งํ–‰ํ•˜๊ณ , ์—ฐ์†๋œ ํ—ค๋” ํ–‰์€ ์ปฌ๋Ÿผ๋ณ„๋กœ ํ•˜๋‚˜๋กœ ํ•ฉ์นœ๋‹ค(normalize_html_tables.py). RAG ํŒŒ์„œ๋กœ ์“ธ ๋•Œ(๋‹ค์šด์ŠคํŠธ๋ฆผ์ด ํ‘œ๋ฅผ ์ž์—ฐ์–ด๋กœ ๋‹ค์‹œ ํ‰ํƒ„ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ) ๋‹ค์šด์ŠคํŠธ๋ฆผ์ด "์ด๊ฒŒ ์ง„์งœ ํ—ค๋”์ธ์ง€ ์œ„์žฅ๋œ ํ—ค๋”์ธ์ง€"๋ฅผ ํ…์ŠคํŠธ ํŒจํ„ด๋งŒ์œผ๋กœ ์ถ”์ธกํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ์‚ฌ์šฉ๋ฒ•

SKILL.md ์ฐธ๊ณ .

๋ผ์ด์„ ์Šค

MIT