Codex์ Claude Code์์ ํ๊ธ HWP๋ฅผ ์ฝ๊ณ , ๊ฒ์ฆ ๊ฐ๋ฅํ HWPX๋ฅผ ๋ง๋๋ ๋ก์ปฌ ๋ฌธ์ ํ๋ฌ๊ทธ์ธ
ํ๊ตญ์ด ยท English ยท ๊ฒฐ๊ณผ ๋ณด๊ธฐ ยท ๋น ๋ฅธ ์ค์น ยท Claude Code ยท ์ง์ ๋ฒ์ ยท ๋ณด์
Gpt_Codex_HWP๋ Codex์ Claude Code์์ ํ๊ตญ์ด HWP/HWPX ๋ฌธ์๋ฅผ ์ฝ๊ณ , ๋ง๋ค๊ณ , ์์ ํ๊ณ , ๊ฒ์ฆํ๊ณ , ๋ฏธ๋ฆฌ ๋ณด๋ ๋ก์ปฌ ํ๋ฌ๊ทธ์ธ์ ๋๋ค. HWPX๋ฅผ ์ ์ ์ฐ๊ธฐ ํ์์ผ๋ก ์ฌ์ฉํ๊ณ ๊ธฐ์กด HWPX์ ์์ ZIP/XML ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ฅํ ํ ๋ณด์กดํฉ๋๋ค. ๋ฐ์ด๋๋ฆฌ HWP๋ ํ์ ๊ฐ์งยท์ฝ๊ธฐยท๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ ์ฉ์ด๋ฉฐ, ์ฝ์ ๋ด์ฉ์ ์ HWPX๋ก ์ ์ฅํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ identity๋ 0.3.5+codex.20261021184753, Claude Code ์บ์๋ 0.3.5-codex.20261021184753์
๋๋ค. identity ์์ฒด๋ ๊ฒ์ ์ฆ๊ฑฐ๊ฐ ์๋๋๋ค. ์ค์น ์ ์ v0.3.5 ๋ฆด๋ฆฌ์ฆ์ ์ ํํ ๋ถ๋ณ ํ๊ทธ SHA, ์์ฒด ์ ์ฒด ํ๊ทธ ๊ฒ์ดํธยท๋์ผ ์คํ attestation ์ฑ๊ณต๊ณผ ์๋ณธ ZIPยทSPDXยทprovenanceยทSHA256SUMS 4๊ฐ ๊ณต๊ฐ ์์ฐ์ ์ค์ ๋ก ํ์ธํ์ญ์์ค.
v0.3.4 ์๋ณธ ์ ์ฒด ํ๊ทธ ๊ฒ์ดํธ๋ ์ด๊ธฐ 10 MiB smoke๋ฅผ ํต๊ณผํ ๋ค node-tests์ replacement-ref ์จ๊ฒจ์ง ๋น๊ณต๊ฐ ํธ๋ฆฌ ๋ณด์ ์ฌ๋ก์์ WINDOWS_REPOSITORY_TEST_CASE case=pc17 status=failed๋ก ์คํจํ์ต๋๋ค. ๋ฆด๋ฆฌ์ค ์ฐ์ถ๋ฌผยทattestationยทRelease๋ ์์ฑ๋์ง ์์์ต๋๋ค. ํ์ ๊ณ์ธก ์ ์ฒด ํ์ผ Windows ์ง๋จ์ ๋ชจ๋ replacement ๋จ๊ณ๋ฅผ ํต๊ณผํ๊ณ historyFailures๊ฐ ์์์ง๋ง, ์๋ณธ ๊ฒ์ดํธ ๋ณต๊ตฌ๋ ์์ธ ์ฆ๋ช
์ ์๋๋๋ค. ์๋ณธ์ ์ ํํ ์์ธ์ ์ฌ์ ํ ๋ฏธํ์ ์ด๋ฉฐ ๊ณผ๊ฑฐ ํ๊ทธ์ ์คํ์ ๋ณด์กดํฉ๋๋ค.
v0.3.5๋ ์ค์ ์ฝ๋ ์์์ ๋ฐ๋ฅธ ๋ค์ชฝ ์ค๋ฅ ๋์ ์ค์ TAP ์์์ ์ฒซ allowlisted ์ค๋ฅ๋ฅผ ๋ณด์กดํฉ๋๋ค. ์ค์ ์์ ํ๊ท ๊ฒ์ฌ๋ ์์ ์ ์คํจยท์์ ํ ํต๊ณผํ๊ณ , ์คํจํ ์์ยทํ์ผ ์ํ๋ ๊ณ์ ์คํจ์
๋๋ค. history scanner์ ๊ธฐ์กด ์๊ฒฉํ ํ๋ก์ธ์ค ์คํจ observer๋ฅผ bounded batch๋ก ์ ๋ฌํ๋ฉฐ, pc17์ ๋ณด์ ๋ฐ๊ฒฌ ๋ assertion๊ณผ ์๋ณธ ์์ธ cause๋ฅผ ์ ์งํ ์ฑ ์ ํ๋ pc17-replace-scan ๋จ๊ณ ๋๋ ๊ธฐ์กด ์์ ํ ํ๋ก์ธ์ค ์ฝ๋๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. ์ค์ Git cat-file ๋ช
๋ น ์คํจ smoke๋ ์ ํ ๋ชจ๋ exit 1์ ์ ์งํ๋ฉด์ ๊ฑฐ์น pc17 ๋์ pc17-replace-scan์ ๋ณด์กดํ์ต๋๋ค. ์ด๋ ์ฆ๊ฑฐ ์ ์ค ์์ ์ด์ง ์๋ณธ native/pc17 ์์ธ ์์ ์ด ์๋๋๋ค. ๋ค์ดํฐ๋ธ ์์ง๊ธฐยท๊ถํยทidentity/RSSยท์์
๋ยท์คํ/์บก์ฒ/์ ๋ฆฌ ์ ํ๊ณผ ์คํจ ์ํ๋ ๊ทธ๋๋ก์ด๋ฉฐ native/RSS/์ ๋ฆฌ ์ฆ๊ฑฐ๋ฅผ ํฉ์ฑํ์ง ์์ต๋๋ค.
v0.3.3์ Linux reparenting ์์ ๋ ์ ์งํฉ๋๋ค. ์ ์ ๋ถ๋ชจ ๋ณ๊ฒฝ์ identity ๋ณ๊ฒฝ์ด ์๋๋ฉฐ ๊ฐ์ PIDยทํ๋ก์ธ์ค ๊ทธ๋ฃนยท์์ ์๊ฐ์ ์ค์ RSS๋ฅผ ์ ์งํฉ๋๋ค. ๊ทธ๋ฃนยท์์ identity ๋ณ๊ฒฝ๊ณผ RSS ๋๋ฝ์ ๊ณ์ ๊ฑฐ๋ถํ๊ณ ์ธก์ ํ์ยท๊ฐ๊ฒฉยทํ์์์ยท๋ ๋ฆฝ์ ์ธ ๊ทธ๋ฃน ์ ๋ฆฌ ์ฆ๋ช ์ ์ ์งํฉ๋๋ค. ์ค์ Linux reparenting์ ์์ ์ ๊ฑฐ๋ถยท์์ ํ ์ค์ RSS ์ผ์น๋ ๊ณผ๊ฑฐ ๊ฐ๋ณ CI ์คํจ์ ์์ธ์ ์ฆ๋ช ํ์ง ์์ต๋๋ค. ์ค๋ณต MCP ๋๊ตฌ ์ด๋ฆ literal๊ณผ ๋จ์ not-throw wrapper ๋์ ์ค์ ์ด๊ธฐํ ์๋ฒ์ canonical ์ ์ฒด schema catalogยท๋ฒ์ ยทstderr ๊ฒ์ฌ๋ฅผ ์ ์งํฉ๋๋ค.
๋ฆด๋ฆฌ์ค ์์ฑ๊ธฐยท๊ฒ์ฆ๊ธฐยทํ๋ซํผ ์์์ฆ์ ํ์ผ๋ณ Git subprocess ๋์ ๊ธฐ์กด bounded blob batch ๊ท์ฝ์ ๊ณต์ ํฉ๋๋ค. ์๋ณธ ํ ์คํธ ์ ํ ์ด๊ณผ ๋ ์ด๋ฏธ ์์งํ TAP ์งํ๊ณผ exit/close ์ํ๋ฅผ ๋ณด์กดํ์ง๋ง, TAP ํต๊ณผ๋ ์ ๋ฆฌ ๋๊ตฌ์ ๋ฐํ๊ฐ๋ง์ผ๋ก ์ ํ ์ด๊ณผยท์ ๋ฆฌ ์คํจ๋ฅผ ์ฑ๊ณต ์ฒ๋ฆฌํ์ง ์์ต๋๋ค. ์ ํ๊ณผ ๋น๊ณต๊ฐ ๋ด์ฉ ๋น๋ ธ์ถ ์กฐ๊ฑด์ ์ ์งํฉ๋๋ค.
v0.3.1์ ์์ค์ ์์ฑ ๋ฐํ์์ markdown-it์ 14.3.1์์ 14.3.3์ผ๋ก ๊ฐฑ์ ํด GHSA-gfr2-rv44-r23c, GHSA-r7fv-28h4-cvq7, GHSA-vfgh-jcmw-g37q์ ๋์ํฉ๋๋ค. ๊ธฐ์กด 14.x API์ ํ์ ์ต์
์ ์ ์งํ๋ฉฐ ์ ๊ธฐ๋ฅ, PDF ์ง์์ด๋ MCP ๋๊ตฌ๋ฅผ ์ถ๊ฐํ์ง ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ identity๋ 0.3.1+codex.20261021043114, Claude Code ์บ์ ๋๋ ํฐ๋ฆฌ๋ 0.3.1-codex.20261021043114์
๋๋ค. ๊ฒ์์๋ ๋ถ๋ณ ํ๊ทธ์ ์ ์ฒด ๋ฆด๋ฆฌ์ฆ ๊ฒ์ดํธ์ attestation ์ฑ๊ณต์ด ํ์ํ๋ฉฐ, ์ค์ ๊ฒ์ฆยท๊ฒ์ ์ํ๋ GitHub ๋ฆด๋ฆฌ์ฆ์ ์ฐ๊ฒฐ๋ ์ํฌํ๋ก์์ ํ์ธํ์ญ์์ค.
v0.3.0์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ Codex์ Claude Code์์ ํจ๊ป ์ฐ๋๋ก ์ง์์ ๋ํ์ต๋๋ค. CI ๊ฒ์ฆ ๋ฌธ์ ํฌ๊ธฐ๋ฅผ 10 MiB๋ก ๋ฎ์ถ๊ณ , ๊ณต๋ฌธ์ ์ด์์ ์ ๊ฒํ๋ ์ ํ ํ๋ฌ๊ทธ์ธ korean-official-doc์ ์ถ๊ฐํ์ผ๋ฉฐ, ๋จ์ด ์ ๋ฐ์ค์ด ์ฌ๋ผ์ง๋ HWPX ์์ฑ ๋ฌธ์ ์ ๊ฒฝ๋กยท์ฐ๊ธฐ ์คํจ ์ฒ๋ฆฌ๋ฅผ ๊ณ ์ณค์ต๋๋ค. UNC ๊ฒฝ๋ก ๊ฑฐ๋ถ, Python 3.10 ์๊ตฌ, ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ค๋ฅ ์ฝ๋์ฒ๋ผ 0.2.x์์ ๋ฐ๋ ๋์์ ๋ฆด๋ฆฌ์ฆ ๋
ธํธ์ ์ ๋ฆฌํ์ต๋๋ค. HWP ์ฝ๊ธฐ ์ ์ฉยทHWPX ์ฐ๊ธฐ ์ ์ฑ
, ๋ช
์์ ๋ฐํ์ ์ค์น์ one-shot ๋๊ตฌ 9๊ฐ๋ ์ ์งํฉ๋๋ค. ๊ฐ๋ฐ๊ณผ ์ค์ ๋ฌธ์ ๊ฒ์ฆ์ Windows x64์์ ์ํํ์ต๋๋ค. ํธ์คํ
CI(Windows x64ยทmacOS arm64ยทLinux lifecycle)๋ v0.3.0 ๋ฆด๋ฆฌ์ค PR ์ปค๋ฐ ๊ธฐ์ค ๊ธฐ๋ก์ด๋ฉฐ, ๊ทธ ์ดํ HEAD์ macOS ๊ฒฐ๊ณผ๋ ํด๋น ์ปค๋ฐ์ ์์์ฆ์ผ๋ก ๋ฐ๋ก ํ์ธํด์ผ ํฉ๋๋ค. ์ค์ Mac ๊ธฐ๊ธฐ์ Codex DesktopยทClaude Codeยทํ์ปด์คํผ์ค ํ๊ธ์ ์์ง ๊ฒ์ฆํ์ง ์์์ต๋๋ค.
v0.3.5 ์ด์ ๊ณต๊ฐ ๋ฆด๋ฆฌ์ค๋ ์ต์ ์์ผ๋ก v0.3.1, v0.3.0, v0.2.7, v0.2.5์
๋๋ค. v0.2.7์ ์์กด์ฑ ๊ฐ์ฌ ์ด์ #18์ ํจํค์ง๋ฅผ ๊ฐฑ์ ํ์ต๋๋ค. v0.3.4, v0.3.3, v0.3.2, v0.2.3, v0.2.4, v0.2.6์ ๋ถ๋ณ ๋ฏธ๊ฒ์ ํ๊ทธ์ด๋ฉฐ GitHub Release์ ๊ณต๊ฐ Release ์์ฐ์ด ์์ต๋๋ค. v0.3.3 ์๋ณธ main native ์คํ์ windows-helper-sampling, ํ๊ทธ full node ์คํ์ mcp-smoke์์ ์คํจํ์ต๋๋ค. ์ ํํ ์์ธ์ ์ ์ ์๊ณ ํ์ nativeยท๋ณ๊ฒฝ ์๋ MCP ์ฑ๊ณต์ ์๋ณธ ์คํจ๋ฅผ ๋ณต๊ตฌํ์ง ์์ต๋๋ค. ์คํจ ํ๊ทธ์ ์๋ณธ ์คํ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. v0.2.2๋ HWP ์ฝ๊ธฐ ์ ์ฉยทHWPX ์ฐ๊ธฐ, ๊ธฐ๋ณธ one-shot ์คํ๊ณผ 100 MiB CI ๊ฒ์ฆ ๋ฒ์๋ฅผ ๋์
ํ์ต๋๋ค. ์์ธํ ์ด๋ ฅ์ CHANGELOG์ ํ๊ตญ์ด ๋ฆด๋ฆฌ์ฆ ๋
ธํธ์์ ํ์ธํ ์ ์์ต๋๋ค.
- Markdown์์ ๋ณด๊ณ ์, ๊ณํ์, ๊ณต๋ฌธ์, ํ์๋ก ๋ฑ์ HWPX ์์ฑ
- ๊ธฐ์กด HWPX์ ๊ตฌ์กฐ ๋ณด์กด ํ ์คํธ ํจ์น์ ๋ผ๋ฒจ ๊ธฐ๋ฐ ์์ ์ฑ์ฐ๊ธฐ
- ์์ ํ SVG/PNG ์์ฐ ์์ฑ๊ณผ HWPX ์ด๋ฏธ์ง ์ฝ์
- HWP/HWPX ํ์ ๊ฐ์ง, Markdown ์ฝ๊ธฐ, ๊ตฌ์กฐ/๊ธ๊ผด ์ฐธ์กฐ ๊ฒ์ฆ, SVG ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- ๋ณดํธ ๋ฌธ์ ๊ฑฐ๋ถ, ์ถ๋ ฅ ๋ฎ์ด์ฐ๊ธฐ ๋ฐฉ์ง, ๊ฒฝ๋ก/ZIP ์ํ ๋ฐฉ์ด
- ๋์ฉ๋ ๋ฌธ์๋ฅผ ํ ๋ฒ๋ง ํ์ฑํด UTF-8 Markdown์ผ๋ก ์ ์ฅํ ๋ค ์์ ํ๊ฒ ๋ถํ ์ฝ๊ธฐ
์๋ ์ด๋ฏธ์ง๋ README ๊ณต๊ฐ์ฉ ํฉ์ฑ Markdown์ hwp_generate_hwpx์ report ํ๋ฆฌ์
์ผ๋ก HWPX์ ์์ฑํ๊ณ , ๊ตฌ์กฐ ๊ฒ์ฆ์ ํต๊ณผํ ๋ฌธ์๋ฅผ SVG๋ก ๋ฏธ๋ฆฌ ๋ณธ ๋ค PNG๋ก ๋ ๋๋งํ ๊ฒฐ๊ณผ์
๋๋ค. ๊ฐ์ธ์ ๋ณด, ์ฌ์ฉ์ ๋ฌธ์, ์ธ๋ถ ๋ฌธ์ ๋ด์ฉ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค.
์ค์ ์์ฑ ๊ฒฐ๊ณผ ยท 1์ชฝ ยท ํ 1๊ฐ ยท ๊ฒ์ฆ ๋ฌธ์ 0๊ฐ ยท ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ฒฝ๊ณ 0๊ฐ
| ํ์ | ์ง์ ๋ฒ์ |
|---|---|
| HWPX | ์ฝ๊ธฐ, ์์ฑ, ๊ตฌ์กฐ ๋ณด์กด ํจ์น, ์์ ์ฑ์ฐ๊ธฐ, ์ด๋ฏธ์ง ์ฝ์ , ๊ฒ์ฆ, ๋ฏธ๋ฆฌ๋ณด๊ธฐ |
| HWP 5.x | ํ์ ๊ฐ์ง, ์ฝ๊ธฐ, ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ง ์ง์. ์ฝ์ ๋ด์ฉ์ ์ HWPX๋ก ์ ์ฅ |
| HWP 3.x | ์ค์ fixture ๊ฒ์ฆ์ด ์์ด ์ง์์ ๋ณด์ฅํ์ง ์์ |
| PDF, DOCX, XLSX ๋ฑ | ์ง์ํ์ง ์์. hwp_read๋ Kordoc ํ์ฑ ์ ์ ๊ฑฐ๋ถ |
HWPX๋ ์ด ํ๋ก์ ํธ์ ์ ์ ์์ฑ ํ์์
๋๋ค. ๋ฐ์ด๋๋ฆฌ HWP๋ฅผ ์์ ํ๋ ค๋ฉด ๋จผ์ hwp_read๋ก ์ฝ๊ณ , ํ์ํ ๋ด์ฉ์ Markdown์ผ๋ก ์ ๋ฆฌํ ๋ค์ hwp_generate_hwpx๋ก ์๋ก์ด HWPX ๊ฒฝ๋ก์ ์ ์ฅํ์ญ์์ค.
- Node.js 22 ์ด์
- Windows x64 ๋๋ macOS Apple Silicon
after-paragraph์ด๋ฏธ์ง ์ฝ์ ์๋ ํ์ค ์์น์ ์ค์น๋ Python 3.10 ์ด์. PATH๋ ํ์ํ์ง ์์ต๋๋ค. Windows๋%SystemRoot%\py.exe๋๋ ์ฌ์ฉ์ ์ค์น%LOCALAPPDATA%\Programs\Python\Launcher\py.exe, macOS๋/opt/homebrew/bin/python3,/usr/local/bin/python3, Command Line Tools์python3์, Linux๋/usr/bin/python3,/usr/local/bin/python3์ ์ฌ์ฉํฉ๋๋ค.- macOS์์๋ ๋ฌธ์ ์ฒ๋ฆฌ ์์ ํ๋ก์ธ์ค์ ๊ฐ๋
์๋ Python์ ์๋๋ค. ๊ทธ๋ฆผ ์ฝ์
(๋ ๋ชจ๋ ๋ชจ๋)๊ณผ 64 MiB๋ฅผ ๋๋ ๋ฌธ์์๋ python3๊ฐ ํ์ํฉ๋๋ค. ์ด ์ฉ๋์๋ Xcode Command Line Tools(
xcode-select --install)์ python3๋ก ์ถฉ๋ถํ์ง๋ง,after-paragraph์ฝ์ ์๋ 3.10 ์ด์(์: Homebrewpython3)์ด ํ์ํฉ๋๋ค. ์ด๋ฏธ์ง helper๋ ์ ๋ขฐ ๊ฒฝ๋ก ์ค 3.10 ์ด์์ธ ์ฒซ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฐ๋ฉฐ doctor๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ์ ํฉ๋๋ค. ์์ผ๋ฉด/usr/bin/python3๊ฐ ์ค์น ์๋ด ์ฐฝ์ ๋์ฐ๊ณ ํด๋น ์์ ์ด ์คํจํ ์ ์์ต๋๋ค. - Codex ๋๋ Claude Code ํ๋ฌ๊ทธ์ธ ๋ง์ผํ๋ ์ด์ค ๋ช ๋ น์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ
Python์ด ์์ผ๋ฉด Python ๊ธฐ๋ฐ ์ด๋ฏธ์ง ์ฝ์
๋ชจ๋๋ง PYTHON_NOT_FOUND๋ก ์คํจํ๋ฉฐ ๋ค๋ฅธ ๋๊ตฌ๋ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Gpt_Codex_HWP๋ Kordoc, rhwp, hwpx-editing-skill๊ณผ ์ฌ๋ฌ ๊ณต๊ฐ ์คํ์์ค๋ฅผ ํตํฉยท์ ์ฉํ๋ ๊ณผ์ ์์ ํ์ธํ ๋ฌธ์ ์ฒ๋ฆฌ ๊ฒฝ๊ณ ๋ฌธ์ ๋ฅผ ์ฒซ ๋ฐฐํฌ ์ ์ ๋ณด์ํ์ต๋๋ค. ์ด๋ ํด๋น ์๋ณธ ํ๋ก์ ํธ๋ค์ ๋์ผํ ๋ฒ๊ทธ๋ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ค๋ ๋ป์ด ์๋๋๋ค. ๊ธฐ๋ฐ ์์ ์ ๊ณต๊ฐํ ๋ชจ๋ ์ ์ง๊ด๋ฆฌ์์ ๊ธฐ์ฌ์๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- HWPX๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ธฐ ์ ์ ZIP ์ค์ ๋๋ ํฐ๋ฆฌ์ ์ค์ ํญ๋ชฉ ์์ ํฌ๊ธฐ ์์ฐ์ ๊ฒ์ฌํฉ๋๋ค.
- ๋์๋ฌธ์๋ง ๋ค๋ฅธ ๋ณดํธ ๋งค๋ํ์คํธ ์ค๋ณต์ ๊ฑฐ๋ถํ๊ณ UTF-8ยทUTF-16 ๋ณดํธ ์ค์ ์ ์ผ๊ด๋๊ฒ ํ์งํฉ๋๋ค.
- ๋ฌธ์ยท์ด๋ฏธ์ง ์ฒ๋ฆฌ์ ์ค์ ์ต์ข MCP ์๋ต์ ํฌ๊ธฐ ์ ํ์ ์ ์ฉํฉ๋๋ค.
- ์์ ๊ฒฐ๊ณผ๋ฅผ ์๋ฏธ ๋จ์๋ก ์ฌ๊ฒ์ฆํ๊ณ Python ์ต์ปค ํ์์ ์ ์ฒด ์ผ์น ๋ชฉ๋ก์ ๋ง๋ค์ง ์๊ณ ์์ฐจ ์ฒ๋ฆฌํฉ๋๋ค.
- ๊ณต๊ฐ ๋ฐฐํฌ ๋ฉํ๋ฐ์ดํฐ์์ ๊ฐ์ธ ์๋ณ ํ์ ์ ์ ๊ฑฐํ์ต๋๋ค.
- Kordoc 3.18.1 ๊ณต์ ์์นด์ด๋ธ๋ฅผ ๊ณ ์ SHA-512๋ก ์ธ์ฆํ๊ณ ํ์ํ Core๋ง ํฌํจํด ์์ค๋งต๊ณผ ์ ํ ์์กด์ฑ์ ์ ๊ฑฐํ์ต๋๋ค.
- ๊ณต๊ฐ ๋ฐฐํฌ๋ฌผ์ ํจํนํ๊ธฐ ์ ์ ๊ฐ์ธ์ ๋ณด ๊ฒฝ๋ก, ๊ฐ์ธํค, ์ค์ ์๊ฒฉ์ฆ๋ช
,
.env, ํ ์คํธยท์ฌ์ฉ์ ๋ฌธ์๊ฐ ์๋์ง ๊ฒ์ฌํฉ๋๋ค.
์ธ๋ถ ์ฐธ๊ณ ๋ฒ์, ๊ณ ์ ๋ฒ์ , ์ ์๊ถ๊ณผ ๋ผ์ด์ ์ค๋ THIRD_PARTY_NOTICES.md๋ฅผ ํ์ธํ์ญ์์ค.
์ด ํ๋ก์ ํธ๋ ์ฃผ๋ก Windows x64์์ ๊ฐ๋ฐํ๊ณ ์ค์ ๊ฒ์ฆํ์ต๋๋ค. v0.3.1์ ๊ฒํ commit 4180a8d35e01aa95205a39c60ae9686486f6f9cb์์ Windows x64ยทmacOS arm64ยทLinux CI๊ฐ ํต๊ณผํ ๊ธฐ๋ก์ ๊ทธ SHA์ ํ์ ๋ฉ๋๋ค. ์ดํ ํจ์น๋ ๊ฐ๊ฐ์ ์ค์ CIยทํ๊ทธยท๋ฆด๋ฆฌ์ฆ ์ฆ๊ฑฐ๋ก ํ๋จํ์ญ์์ค. ํธ์คํ
macOS๋ ์ค์ Mac์ Codex DesktopยทClaude Codeยทํ์ปด์คํผ์ค ํ๊ธ ์ฌ์ฉ ๊ฒ์ฆ์ด ์๋๋ฉฐ, macOS ์์ ์ง์์ ์ฃผ์ฅํ์ง ์์ต๋๋ค.
๋ฆด๋ฆฌ์ค๋ณ ํ ์คํธยท๊ฐ์ฌ ๊ฒฐ๊ณผ๋ ๊ฐ GitHub ๋ฆด๋ฆฌ์ฆ์ ๋ ธํธ์ ๊ธฐ๋กํฉ๋๋ค.
์๋ ๋ช
๋ น์ ๊ฒ์ ํ์ธ ํ ์ฌ์ฉํ v0.3.5 ๊ณ ์ ๋ช
๋ น์ด๋ฉฐ ๊ฒ์ ์ฆ๊ฑฐ๊ฐ ์๋๋๋ค. ๋จผ์ ํด๋น GitHub ๋ฆด๋ฆฌ์ฆ์ ์ ํํ ๋ถ๋ณ ํ๊ทธ SHA, ์์ฒด ์ ์ฒด ํ๊ทธ ๊ฒ์ดํธยท๋์ผ ์คํ attestation ์ฑ๊ณต๊ณผ ์๋ณธ ZIPยทSPDXยทprovenanceยทSHA256SUMS 4๊ฐ ๊ณต๊ฐ ์์ฐ์ ์ค์ ๋ก ํ์ธํ์ญ์์ค. ์์ค ๋ณ๊ฒฝยทidentity ๋ฌธ์์ด์ด๋ ์ด์ ๋ฒ์ ์ CI ํต๊ณผ๋ง์ผ๋ก ๊ฒ์๋ฅผ ์ถ์ ํ์ง ๋ง์ญ์์ค. ๋ฆด๋ฆฌ์ฆ ๋
ธํธ๋ฅผ ํ์ธํ ๋ค ์ ํ๋ฌ๊ทธ์ธยท์บ์ identity๋ก ์ฌ์ค์นํ๊ณ , ์บ์ ๊ฒ์ฆยท๋ฐํ์ ๋ช
์์ ์ค์นยทdoctorยทํธ์คํธ ์ฌ์์ยท๋ฌธ์ ์์
์ ๊ฒ์ฆํ์ญ์์ค. ์ฑ๊ณตํ๊ธฐ ์ ์๋ ์ด์ ์ง์ ๋ฐํ์์ ์๋์ผ๋ก ์ญ์ ํ์ง ๋ง์ญ์์ค.
์คํ ์ค์ธ Codex ํธ์คํธ๋ฅผ ๋จผ์ ๋ซ์ผ์ญ์์ค. ๊ธฐ์กด ๋ง์ผํ๋ ์ด์ค๊ฐ v0.3.1์ฒ๋ผ ๋ค๋ฅธ ref์ ๊ณ ์ ๋ผ ์์ผ๋ฉด marketplace add --ref v0.3.5๋ง์ผ๋ก๋ ๋ณ๊ฒฝ๋์ง ์๊ณ already added from a different source ์ค๋ฅ๊ฐ ๋ฉ๋๋ค. marketplace upgrade๋ ๋ฑ๋ก๋ ref๋ฅผ ์๋ก ์ฝ์ ๋ฟ ํ๊ทธ๋ฅผ ๋ฐ๊พธ์ง ์์ต๋๋ค. ์์ค ๋ฑ๋ก์ ์ ๊ฑฐํ ๋ค ์ ํ๊ทธ๋ก ๋ค์ ๋ฑ๋กํฉ๋๋ค.
codex plugin marketplace remove gpt-codex-hwp-local --json
codex plugin marketplace add Burntgogi/Gpt_Codex_HWP --ref v0.3.5 --json
$installed = codex plugin add gpt-codex-hwp@gpt-codex-hwp-local --json | ConvertFrom-Jsonmarketplace remove๋ ์์ค ๋ฑ๋ก ์ ๊ฑฐ์ด๋ฉฐ plugin remove๊ฐ ์๋๋๋ค. Codex CLI 0.162.1์ ๊ฒฉ๋ฆฌ Linux ํ๋กํ์์ ์์ค ์ ๊ฑฐยท์ฌ๋ฑ๋ก ํ์๋ ์ด์ ์บ์๊ฐ ๋จ์์ง๋ง, ์ plugin add๋ ์ด์ ํ๋ฌ๊ทธ์ธ ์บ์๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ด์ ์ง์ ๋ฐํ์์ lockยท์ค์น ์์์ฆ์ ๋ฐ๋์ง ์์์ต๋๋ค. ์ด์ ์บ์๊ฐ ํญ์ ๋จ๋๋ค๊ณ ๊ฐ์ ํ์ง ๋ง์ญ์์ค. ๋ฐํ๋ ์ JSON์ ์๋ 4โ6๋จ๊ณ ๊ธฐ์ค์ผ๋ก ๊ฒ์ฆํ๊ณ , ์ฑ๊ณต ์ ์๋ ์ด์ ์ง์ ๋ฐํ์์ ์๋์ผ๋ก ์ญ์ ํ์ง ๋ง์ญ์์ค.
์ ๋ฒ์ ๊ฒ์ฆ์ ์คํจํ๋ฉด ํธ์คํธ๋ฅผ ๋ซ๊ณ ์ ์ธ ๋ช
๋ น์ ํ๊ทธ๋ฅผ ์ง์ ๊ณต๊ฐ v0.3.1๋ก ๋ฐ๊ฟ ์บ์๋ฅผ ๋ค์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ JSON version์ 0.3.1+codex.20261021043114์ฌ์ผ ํ๋ฉฐ, ํด๋น identity์ installedPath๋ฅผ ๊ฒ์ฆํ ๋ค doctor์ ๋ฌธ์ ์์
์ ํ์ธํ์ญ์์ค. ์ด์ ์ ๊ฒฉ๋ฆฌ v0.3.0 โ v0.3.1 ๊ฒ์ฆ์์๋ ๊ฐ์ ์์ค ์ฌ๋ฑ๋ก ๊ฒฝ๋ก๋ก ์ด์ ์บ์์ DOCTOR_OK๋ฅผ ๋ฐํ์ ์ฌ์ค์น ์์ด ๋ณต๊ตฌํ์ต๋๋ค. v0.3.1์ markdown-it ๋ณด์ ํจ์น๋ฅผ ํฌํจํ์ง๋ง v0.3.3์ Linux reparenting ์์ ์ ์์ผ๋ฏ๋ก ์์ ๋ณต๊ตฌ์ฉ์ผ๋ก๋ง ํ๋จํ์ญ์์ค.
์ฌ์ฉ์๋ Codex ์์ด์ ํธ์๊ฒ ๋ค์๊ณผ ๊ฐ์ด ์์ฒญํ ์ ์์ต๋๋ค.
Burntgogi/Gpt_Codex_HWP์v0.3.5์์ฒด ์ ์ฒด ๊ฒ์ดํธยท๋์ผ ์คํ attestationยท์๋ณธ 4๊ฐ ๊ณต๊ฐ ์์ฐ๊ณผ ๊ฒ์๊ฐ ํ์ธ๋๋ฉด ํ๊ทธ๋ฅผ ๊ณ ์ ํด ์ค์นํด ์ฃผ์ธ์. ์ด ์ ์ ์์๋ฅผ ๋ฐ๋ฅด๊ณinstalledPath๋ฅผ ๊ฒ์ฆํ ๋ค ๋ช ์์ ๋ฐํ์ ์ค์น๊ธฐ์doctor๋ฅผ ์คํํ์ธ์. ์คํ ์ค์ธ ๋ชจ๋ Codex CLI์ Desktop ํธ์คํธ๋ฅผ ํ ๋ฒ ๋ซ์๋ค๊ฐ ๋ค์ ์ด๊ณ/mcp์ ๊ธฐ๋ณธgpt-codex-hwp๊ฐ ๋ฑ๋ก๋์ง ์๋์ง์ ๋ฌธ์ ์์ ํ one-shot ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋์ง ํ์ธํด ์ฃผ์ธ์. ๊ฒ์ฆ์ด ์ฑ๊ณตํ ๋๊น์ง ์ด์ ์ง์ ๋ฐํ์์ ์ ์งํ์ธ์.
- Git, Codex CLI, Node.js 22 ์ด์๊ณผ npm์ ํ์ธํฉ๋๋ค.
after-paragraph์ด๋ฏธ์ง ์ฝ์ ์๋ง Python 3.10 ์ด์์ด ์ถ๊ฐ๋ก ํ์ํฉ๋๋ค. - ์์ง์ด๋
main๋์ ๋ฆด๋ฆฌ์ค ํ๊ทธ๋ฅผ ๊ณ ์ ํด ๋ง์ผํ๋ ์ด์ค๋ฅผ ๋ฑ๋กํฉ๋๋ค.
codex plugin marketplace add Burntgogi/Gpt_Codex_HWP --ref v0.3.5 --json๋ฐํ๋ JSON์ marketplaceName์ด gpt-codex-hwp-local์ธ์ง ํ์ธํฉ๋๋ค.
- ์ค์น ๊ฒฐ๊ณผ๋ฅผ JSON์ผ๋ก ๋ฐ์ต๋๋ค.
$installed = codex plugin add gpt-codex-hwp@gpt-codex-hwp-local --json | ConvertFrom-Json
$installedPath = [System.IO.Path]::GetFullPath([string]$installed.installedPath)- ์ค์น JSON์
pluginId๊ฐgpt-codex-hwp@gpt-codex-hwp-local์ด๊ณversion์ด0.3.5+codex.20261021184753์ธ์ง ํ์ธํฉ๋๋ค.installedPath๊ฐ ์ ๋ ๊ฒฝ๋ก์ด๊ณ ์ค์ ๋๋ ํฐ๋ฆฌ์ด๋ฉฐ, ๊ฒฝ๋ก ๋์ดplugins/cache/gpt-codex-hwp-local/gpt-codex-hwp/<version>๊ตฌ์กฐ์ธ์ง ํ์ธํฉ๋๋ค. ๋ฐํ์์๋.codex-plugin/plugin.json,runtime-manifest.json,package.json,package-lock.json,dist/install-runtime.js,dist/runtime-bootstrap.js,dist/doctor.js,dist/oneshot.js,dist/mcp.js,examples/oneshot-tool-schemas.json,examples/mcp-manual.json์ด ๋ชจ๋ ์์ด์ผ ํ๊ณ ,.codex-plugin/plugin.json์skills๋./skills/์ด๋ฉฐmcpServers์์ฑ์ ์์ด์ผ ํฉ๋๋ค. JSON ๋ฌธ์์ด์ ๋ช ๋ น์ผ๋ก ํ๊ฐํ๊ฑฐ๋ ์์ ๋ฐ์ ๊ฒฝ๋ก์์ npm์ ์คํํ์ง ์์ต๋๋ค. - ๊ฒ์ฆํ ์ ํํ ๊ฒฝ๋ก์์ ํ๋ซํผ ๋ฐํ์์ ์ค์นํ๊ณ ์ง๋จํฉ๋๋ค. Windows x64์์ ์ค์น๋ ์ด์ ์์กด์ฑ์ 64 MiB ์ดํ์ธ์ง ํ์ธํฉ๋๋ค.
Push-Location -LiteralPath $installedPath
try {
$runtime = node dist/install-runtime.js --json | ConvertFrom-Json
if ($LASTEXITCODE -ne 0 -or $runtime.code -ne "RUNTIME_INSTALL_OK") { throw "runtime installation failed" }
node dist/doctor.js --json
if ($LASTEXITCODE -ne 0) { throw "doctor found a required failure" }
} finally {
Pop-Location
}doctor๋ ์ง๋จ ์ ์ฉ์ด๋ฉฐ ์ค์น๋ ๋ณต๊ตฌ๋ฅผ ์ํํ์ง ์๊ณ MCP ๋๊ตฌ๊ฐ ์๋๋๋ค. JSON์๋ ์์ ํ ์ํ ์ฝ๋, ๋ถ๋ฆฌ์ธ, ๋ฒ์ ๊ณผ ๊ฐ์๋ง ํฌํจ๋๋ฉฐ Pythonยทrhwpยท๊ณ ์ ํ ์คํธ fixture ๊ฐ์ ์ ํ ๊ธฐ๋ฅ์ ๋ถ์ฌ๋ ํ์ ์คํจ์ ๋ถ๋ฆฌ๋ฉ๋๋ค.- ์คํ ์ค์ธ ๋ชจ๋ Codex CLI์ Desktop ํธ์คํธ๋ฅผ ํ ๋ฒ ๋ซ์๋ค๊ฐ ๋ค์ ์ฌ์ญ์์ค. ์ ์์
๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ๊ณผ ์คํฌ์ด ๋ณด์ด๊ณ
/mcp์gpt-codex-hwp๊ฐ ๊ธฐ๋ณธ ๋ฑ๋ก๋์ง ์๋์ง ํ์ธํฉ๋๋ค.RUNTIME_NOT_INSTALLED๊ฐ ๋์ค๋ฉด ๋ฌธ์ ์์ ์ ๋ฐ๋ณตํ์ง ๋ง๊ณ ๊ฒ์ฆํ ๊ฒฝ๋ก์์ ์ค์น๊ธฐ๋ฅผ ๋ค์ ์คํํฉ๋๋ค. HWP/HWPX ์์ ํ๋๊ฐ ์ฑ๊ณตํ๋์ง ํ์ธํ๊ณ ์์ฑ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆํ ๋ค one-shot ํ๋ก์ธ์ค์ ํ์ ํ๋ก์ธ์ค ์ข ๋ฃ๋ฅผ ํ์ธํฉ๋๋ค. worker-onlyยทchild-onlyยทmixed ์ข ๋ฃ ์์์ฆ๊ณผ ๊ฐ๋ ๋ ๋๋จธ์ง ํ๋ก์ธ์ค ํธ๋ฆฌ 0๊ฐ๊ฐ ๊ฒ์ฆ ๋์์ ๋๋ค. ํธ์คํ ๊ณผ ์ค์ ๊ธฐ๊ธฐ์ ๊ฒ์ฆ ๋ฒ์๋ ์ ํ๋ซํผ ๊ฒ์ฆ ์ํ ์ ์ ๋ฐ๋ฆ ๋๋ค. ์คํจํ๋ฉด ์ด์ ์ง์ ๋ฐํ์์ ์๋์ผ๋ก ์ญ์ ํ์ง ๋ง๊ณ ์ค๋ฅ์installedPath๋ง ๋ณด๊ณ ํฉ๋๋ค. ํ ํฐ, ํ๊ฒฝ ๋ณ์, ์ฌ์ฉ์ ๋ฌธ์ ๋ด์ฉ์ ๋ณด๊ณ ํ์ง ์์ต๋๋ค.
v0.3.5 ์์ฒด ์ ์ฒด ๊ฒ์ดํธยท๋์ผ ์คํ attestationยท์๋ณธ 4๊ฐ ๊ณต๊ฐ ์์ฐ๊ณผ ๊ฒ์๋ฅผ ํ์ธํ ๋ค ๋ค์ ์ ๊ทธ๋ ์ด๋ ์์๋ฅผ ์งํค์ญ์์ค. ์ identity๋ ์ด์ ๋ฐํ์์ ์ฌ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ์ด์ ๋๋ ํฐ๋ฆฌ์ ์์กด์ฑ๋ง ๊ฐฑ์ ํ๋ ๊ฒ์ ์ ๊ทธ๋ ์ด๋๊ฐ ์๋๋๋ค. ๊ธฐ์กด ์ค์น๋ ๋จผ์ ์ ์์ค ์ ๊ฑฐยท์ฌ๋ฑ๋ก ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
- ํ๊ทธ๋ฅผ ๊ณ ์ ํ ๋ง์ผํ๋ ์ด์ค๋ฅผ ๋ฑ๋กํฉ๋๋ค.
codex plugin marketplace add Burntgogi/Gpt_Codex_HWP --ref v0.3.5- ์ ํ๋ฌ๊ทธ์ธ์ ์ค์นํฉ๋๋ค.
codex plugin add gpt-codex-hwp@gpt-codex-hwp-local์ด ๋ช
๋ น๋ง์ผ๋ก ์ด์ ์์กด์ฑ์ด ์ค๋น๋์ง๋ ์์ต๋๋ค. version์ด 0.3.5+codex.20261021184753์ธ์ง ํ์ธํ๊ณ ๊ฒ์ฆ๋ installedPath์์ node dist/install-runtime.js --json์ ์คํํด RUNTIME_INSTALL_OK๋ฅผ ํ์ธํ ๋ค node dist/doctor.js --json์ ์คํํด DOCTOR_OK๋ฅผ ํ์ธํ์ญ์์ค.
-
์คํ ์ค์ธ ๋ชจ๋ Codex CLI์ Desktop ํธ์คํธ๋ฅผ ํ ๋ฒ ๋ซ์๋ค๊ฐ ๋ค์ ์ฌ์ญ์์ค. ์ ์์ ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
gpt-codex-hwp@gpt-codex-hwp-localํ๋ฌ๊ทธ์ธ๊ณผ ์คํฌ์ ๋ณด์ฌ์ผ ํ์ง๋ง/mcp์gpt-codex-hwp๊ฐ ๊ธฐ๋ณธ ๋ฑ๋ก๋๋ฉด ์ ๋ฉ๋๋ค. ์คํฌ๋ก ๋ฌธ์ ์์ ํ๋๋ฅผ ์คํํด 1ํ ์คํ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋์ง ํ์ธํฉ๋๋ค. -
์ ์ค์น ๊ฒ์ฆ์ ์ฑ๊ณตํ ๋ค์๋ง ๊ธฐ์กด ํ๋ฌ๊ทธ์ธ์ ์ ๊ฑฐํฉ๋๋ค.
codex plugin remove hwp-korean-docs@hwp-local- ์ ์ค์น ๊ฒ์ฆ์ ์คํจํ๋ฉด ์ด์ ์ง์ ๋ฐํ์์ ์ ์งํ๊ณ ์ ํ๊ทธ ๋ณ๊ฒฝ ์ ์ ๋ณต๊ตฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค. ์ค๋ฅ์ ๊ฒ์ฆํ
installedPath๋ฅผ ๋ณด๊ณ ํ๊ณ , ์บ์๋ฅผ ๊ฐ์ ๋ก ์ฌ์ฌ์ฉํ๋ ค๊ณ ๋ฒ์ ๋ฉํ๋ฐ์ดํฐ๋ ์ด์ ๋ฐํ์ ์์กด์ฑ์ ์์ ํ์ง ๋ง์ญ์์ค.
๊ฐ์ ํ๋ฌ๊ทธ์ธ ํด๋๋ฅผ Claude Code์์๋ ์๋๋ค. ์ ์ฅ์ ๋ฃจํธ์ .claude-plugin/marketplace.json์ด plugins/gpt-codex-hwp๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ, ๋ง์ผํ๋ ์ด์ค ์ด๋ฆ์ Codex์ ๊ฐ์ gpt-codex-hwp-local์
๋๋ค. Claude Code ์ง์์ v0.3.0๋ถํฐ ํฌํจ๋ฉ๋๋ค. v0.3.5 ์์ฒด ์ ์ฒด ๊ฒ์ดํธยท๋์ผ ์คํ attestationยท์๋ณธ 4๊ฐ ๊ณต๊ฐ ์์ฐ๊ณผ ๊ฒ์๋ฅผ ํ์ธํ ๋ค ์์ง์ด๋ main ๋์ #v0.3.5 ํ๊ทธ๋ฅผ ๊ณ ์ ํ์ญ์์ค. ์ ์บ์ยท๋ช
์์ ๋ฐํ์ ์ค์นยทdoctor์ ๋ฌธ์ ์์
ํ๋๊ฐ ์ฑ๊ณตํ ๋๊น์ง ์ด์ ์ง์ ๋ฐํ์์ ์ ์งํ์ญ์์ค. ์ด๋ฒ ๋ฒ์ ์ ์ค์ Claude Code GUI ์ค์นยท์ฌ์ฉ์ ๊ฒ์ฆํ์ง ์์์ต๋๋ค.
Claude Code ์ธ์ ์์์:
/plugin marketplace add Burntgogi/Gpt_Codex_HWP#v0.3.5
/plugin install gpt-codex-hwp@gpt-codex-hwp-local
ํฐ๋ฏธ๋์์๋ claude plugin marketplace add Burntgogi/Gpt_Codex_HWP#v0.3.5์ claude plugin install gpt-codex-hwp@gpt-codex-hwp-local์ ์ฌ์ฉํฉ๋๋ค.
- ์ค์น๋ ํ๋ฌ๊ทธ์ธ ๊ฒฝ๋ก๋
~/.claude/plugins/cache/gpt-codex-hwp-local/gpt-codex-hwp/<๋ฒ์ >์ ๋๋ค.CLAUDE_CONFIG_DIR์ ์ฐ๋ฉด~/.claude๋์ ๊ทธ ๊ฒฝ๋ก๊ฐ ๊ธฐ์ค์ ๋๋ค. ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์ด0.3.5+codex.20261021184753์ธ์ง ํ์ธํ์ญ์์ค. Claude Code๋ ๋ฒ์ ์+๋ฅผ-๋ก ๋ฐ๊ฟ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค๋ฏ๋ก ์ด๋ฒ ๋ฒ์ ์ ์ด๋ฆ์0.3.5-codex.20261021184753์ด๋ฉฐ, ๋ฐํ์์ ์ด ๋ฐฐ์น๋ฅผ Claude Code ์ค์น๋ก ์ธ์ํฉ๋๋ค. - ๊ทธ ๊ฒฝ๋ก์์ Codex์ ๊ฐ์ ๋ช ์์ ๋ฐํ์ ์ค์น๊ธฐ์ doctor๋ฅผ ์คํํฉ๋๋ค.
cd "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/plugins/cache/gpt-codex-hwp-local/gpt-codex-hwp/0.3.5-codex.20261021184753"
node dist/install-runtime.js --json # code๊ฐ RUNTIME_INSTALL_OK์ธ์ง ํ์ธ
node dist/doctor.js --json # code๊ฐ DOCTOR_OK์ธ์ง ํ์ธPowerShell์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. CLAUDE_CONFIG_DIR์ ์ฐ๋ฉด $env:USERPROFILE\.claude ๋์ ๊ทธ ๊ฒฝ๋ก๋ฅผ ๋ฃ์ผ์ญ์์ค.
Push-Location -LiteralPath "$env:USERPROFILE\.claude\plugins\cache\gpt-codex-hwp-local\gpt-codex-hwp\0.3.5-codex.20261021184753"
try {
$runtime = node dist/install-runtime.js --json | ConvertFrom-Json
if ($LASTEXITCODE -ne 0 -or $runtime.code -ne "RUNTIME_INSTALL_OK") { throw "runtime installation failed" }
node dist/doctor.js --json
} finally { Pop-Location }- ์ด์ ์์กด์ฑ์
~/.claude/plugin-runtime-data/gpt-codex-hwp/<์ ์ฒด-ํ๋ฌ๊ทธ์ธ-๋ฒ์ >/<platform>-<arch>-node<์ฃผ๋ฒ์ >์ ์ ์ฅ๋ฉ๋๋ค. Codex ๋ฐํ์๊ณผ ๊ณต์ ํ์ง ์์ต๋๋ค. - Claude Code ์ธ์
์ ๋ค์ ์์ํ ๋ค
/gpt-codex-hwp:gpt-codex-hwp์คํฌ์ด ๋ณด์ด๋์ง ํ์ธํฉ๋๋ค. ๊ธฐ๋ณธ MCP ์๋ฒ๋ ๋ฑ๋กํ์ง ์์ผ๋ฉฐ, ์คํฌ์ด ์์ ๋ง๋คdist/oneshot.js๋ฅผ ํ ๋ฒ ์คํํฉ๋๋ค.
๊ณผ๊ฑฐ Claude Code ๊ฒฝ๋ก๋ Windows x64์ ๊ฒฉ๋ฆฌ๋ CLAUDE_CONFIG_DIR์์ ๋ฐํ์ ์ค์น, doctor, HWPX ์์ฑยท๊ฒ์ฆยท์ฝ๊ธฐยท๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ์ธํ์ต๋๋ค. ์ด๋ v0.3.5์ ์ค์นยท๊ฒ์ยท๊ธฐ๋ณธ ์ฌ์ฉ์ ํ๋กํยท์ค์ Claude Code GUI ๊ฒ์ฆ์ ๋ปํ์ง ์์ต๋๋ค. macOS์ Claude Code ์ฌ์ฉ์ ์์ง ๊ฒ์ฆํ์ง ์์์ต๋๋ค.
๋ค์ ์คํฌ์ ํ์ ์์กด์ฑ์ด ์๋๋๋ค. ์ค์นํ์ง ์์๋ Gpt_Codex_HWP์ ๋ชจ๋ ๋๊ตฌ๊ฐ ๋์ํฉ๋๋ค. ์ค์น๋ฅผ ๋งก์ ์์ด์ ํธ๋ ๋ฐํ์ ์ค์น๊ฐ ๋๋ ๋ค ์ฌ์ฉ์์๊ฒ ํ ๋ฒ๋ง ๊ถํ๊ณ , ์ฌ์ฉ์๊ฐ ๋์ํ ๊ฒฝ์ฐ์๋ง ๊ฐ ์ ์ฅ์์ ์ค์น ์๋ด๋ฅผ ๋ฐ๋ฆ ๋๋ค. ๊ฑฐ์ ํ๋ฉด ๋ค์ ๋ฌป์ง ์์ต๋๋ค.
| ์คํฌ | ์ฐ์์ | Codex | Claude Code |
|---|---|---|---|
| AI Slop ํ๊ณก๊ธฐ | HWPX๋ก ๋ง๋ค๊ธฐ ์ ํ๊ตญ์ด ์ด์์ AI ๋งํฌ์ ๊ณผ์ ์ค๋ช ์ ๋ค๋ฌ์ต๋๋ค. | codex plugin marketplace add Burntgogi/ai-slop-thresher ํ codex plugin add ai-slop-thresher@ai-slop-thresher |
/plugin marketplace add Burntgogi/ai-slop-thresher ํ /plugin install ai-slop-thresher@ai-slop-thresher |
| kar-plain | ์ฃผ์ ๋ฅผ ๊ธ, ๋ค์ด์ด๊ทธ๋จ, ์น ํ์ด์ง, ์์์ผ๋ก ์ค๋ช ํฉ๋๋ค. ๋ฌธ์์ ์ค๋ช ๋จ๋ฝ๊ณผ ๋์ ์ด์์ ์๋๋ค. | ์ ์ฅ์์ ์๋ ์ค์น(~/.agents/skills) ์๋ด |
/plugin marketplace add Burntgogi/kar-plain ํ /plugin install kar-plain@kar-plain |
๊ณต๋ฌธ์ ์์ฑ ๊ท์น (korean-official-doc) |
๊ณต๋ฌธ์ Markdown ์ด์์ ๋ ์งยท์๊ฐยท๊ธ์ก ํ๊ธฐ, ํญ๋ชฉ ๊ธฐํธ ์์, ๋ถ์, ใ๋ใ ํ์๋ฅผ ๋ฒ๋ น ๊ทผ๊ฑฐ์ ํจ๊ป ์คํ๋ผ์ธ์ผ๋ก ์ ๊ฒํฉ๋๋ค. ๊ณต๊ณต๊ธฐ๊ด ๋ฌธ์๋ฅผ ์ฐ๋ ์ฌ์ฉ์์๊ฒ ๊ถํฉ๋๋ค. | ๊ฐ์ ๋ง์ผํ๋ ์ด์ค์์ codex plugin add korean-official-doc@gpt-codex-hwp-local (v0.3.0 ์ด์ ํ๊ทธ) |
๊ฐ์ ๋ง์ผํ๋ ์ด์ค์์ /plugin install korean-official-doc@gpt-codex-hwp-local |
๊ฐ ์ ์ฅ์์ ์ต์ ๋ฆด๋ฆฌ์ค ํ๊ทธ์ ์ค์น ์๋ด๋ฅผ ๋จผ์ ํ์ธํ์ญ์์ค. ์ ๋ช ๋ น์ 2026-10-08 ๊ธฐ์ค์ ๋๋ค.
v0.3.5๋ v0.3.0์ ์บ์ ๋ฐ ์ ์ฅ ๊ตฌ์กฐ๋ฅผ ์ ์งํฉ๋๋ค. ์ด์ ์์กด์ฑ์ ํธ์คํธ ๊ด๋ฆฌ ์บ์๊ฐ ์๋๋ผ Codex์์๋ $CODEX_HOME/plugin-runtime-data/gpt-codex-hwp/<์ ์ฒด-ํ๋ฌ๊ทธ์ธ-๋ฒ์ >/<platform>-<arch>-node<Node-์ฃผ๋ฒ์ >, Claude Code์์๋ <CLAUDE_CONFIG_DIR ๋๋ ~/.claude>/plugin-runtime-data/gpt-codex-hwp/...์ ๊ฐ์ ๊ตฌ์กฐ์ ์ ์ฅ๋ฉ๋๋ค. ๋ ์ง์ ๋ฐํ์ ๊ฒฝ๋ก์ ์ ์ฒด ๋ฒ์ ์ 0.3.5+codex.20261021184753์ด๋ฉฐ, Claude Code ํ๋ฌ๊ทธ์ธ ์บ์์์๋ง +๋ฅผ -๋ก ๋ฐ๊ฟ๋๋ค. ์๋ฅผ ๋ค์ด Windows x64์ Node.js 22 ๋ฐํ์ ํค๋ win32-x64-node22์
๋๋ค. ๊ฐ์ Codex ํ๋กํ์์๋ Node ์ฃผ๋ฒ์ ๋ณ ๋ฐํ์์ ์๋ก ๊ต์ฒดํ์ง ์๊ณ ๊ณต์กดํฉ๋๋ค.
์ค์น ํฌ๊ธฐ๋ ํ๋ซํผ๊ณผ npm์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ก ํฌ๊ธฐ๊ฐ ์ค์ด๋ ๋ค๊ณ ๋ณด์ฅํ์ง ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ์ ๊ฑฐ๊ฐ ์ด ์บ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ง์ด๋ค๊ณ ๊ฐ์ ํ์ง ๋ง์ญ์์ค. ์ ๋ฆฌํ ๋๋ ๋ชจ๋ Codex CLI์ Desktop ํธ์คํธ, ๋๋ Claude Code ์ธ์
์ ์์ ํ ์ข
๋ฃํ๊ณ , ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ์ ํํ <์ ์ฒด-ํ๋ฌ๊ทธ์ธ-๋ฒ์ > ๋๋ ํฐ๋ฆฌ๋ง ํ์ธํด ์๋์ผ๋ก ์ ๊ฑฐํ์ญ์์ค. ๋ชจ๋ Gpt_Codex_HWP ๋ฒ์ ์ ์ ๊ฑฐํ ๊ฒฝ์ฐ์๋ง ์์ gpt-codex-hwp ๋ฐํ์ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ ์ ์ฒด๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๋์ค์ ๋ค์ ์ค์นํ๋ฉด ๊ฒ์ฆ๋ installedPath์์ node dist/install-runtime.js --json์ ์คํํด ๋ฐํ์์ ์ฌ์์ฑํฉ๋๋ค.
๊ธฐ๋ณธ ์ค์น๋ ์คํฌ์ด ๊ฐ ์์
๋ง๋ค dist/oneshot.js๋ฅผ ํ ๋ฒ ํธ์ถํฉ๋๋ค. ์ฌ์ฉํ์ง ์์ ๋๋ Gpt_Codex_HWP ์์ฃผ Node ํ๋ก์ธ์ค๊ฐ ์๊ณ , ํธ์ถ์ ๊ธฐ์กด 9๊ฐ ๋๊ตฌ ๊ณ์ฝ ์ค ํ๋๋ง ์คํํ ๋ค ์ข
๋ฃ๋ฉ๋๋ค. ์์ฒญยท์๋ต JSON์ ๋ฌธ์ ๋ด์ฉ์ ๋ช
๋ น์ค์ ์ฃ์ง ์์ผ๋ฉฐ ์ ์๋ต ํ์ผ๋ง ๋ฐฐํ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
dist/mcp.js์ npm start๋ ๊ธฐ์กด stdio MCP ํธํ์ ์ํด ๋จ์ ์์ง๋ง ์๋ ๋ฑ๋ก๋์ง ์์ต๋๋ค. ์๊ตฌ MCP๊ฐ ํ์ํ ์ฌ์ฉ์๋ง examples/mcp-manual.json์ ๋ช
์์ ์ผ๋ก ๋ณต์ฌยท๋ฑ๋กํ์ญ์์ค. ์ด ๋ชจ๋๋ Codex ์์
์ด๋ ํธ์คํธ๋ง๋ค ๋ณ๋์ Node ์๋ฒ๊ฐ ์์ฃผํ ์ ์์ต๋๋ค.
| ๋๊ตฌ | ์ฉ๋ |
|---|---|
hwp_detect_format |
ํ์ผ์ ์ค์ ๋ฌธ์ ํ์๊ณผ ์ปจํ ์ด๋๋ฅผ ๊ฐ์งํฉ๋๋ค. |
hwp_read |
HWP/HWPX๋ฅผ Markdown๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ก ์ฝ์ต๋๋ค. |
hwp_generate_hwpx |
Markdown์์ ์ HWPX๋ฅผ ์์ฑํฉ๋๋ค. |
hwp_validate |
HWPX ๊ตฌ์กฐ์ ๊ธ๊ผด ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. |
hwp_render_preview |
HWP/HWPX๋ฅผ SVG ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ๋ ๋๋งํฉ๋๋ค. |
hwp_patch_document |
๊ธฐ์กด HWPX ๊ตฌ์กฐ๋ฅผ ๋ณด์กดํ๋ฉฐ ํ
์คํธ๋ฅผ ์์ ํฉ๋๋ค. ๋ฐ์ด๋๋ฆฌ HWP๋ HWP_READ_ONLY์
๋๋ค. |
hwp_fill_form |
๋ผ๋ฒจ ๊ธฐ๋ฐ ์์ ๊ฐ์ ์์ ํ๊ฒ ์ฑ์๋๋ค. |
hwp_create_svg_asset |
์์ ํ SVG์ PNG ์๊ฐ ์์ฐ์ ์์ฑํฉ๋๋ค. |
hwp_insert_image |
์ต์ปค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ฏธ์ง๋ฅผ HWPX์ ์ฝ์ ํฉ๋๋ค. |
์ ๋ฌธ์๋ hwp_generate_hwpx๋ก ๋ง๋ ๋ค hwp_detect_format, hwp_validate, hwp_read, hwp_render_preview ์์๋ก ํ์, ๊ตฌ์กฐ, ๋ด์ฉ, ๋ฐฐ์น๋ฅผ ํ์ธํฉ๋๋ค.
๊ธฐ์กด HWPX๋ ๋จผ์ hwp_read๋ก ์ฝ๊ณ ๋ธ๋ก ์์์ ํ ๊ตฌ์กฐ๋ฅผ ์ ์งํ Markdown์ผ๋ก hwp_patch_document๋ฅผ ํธ์ถํฉ๋๋ค. ๋ฐ์ด๋๋ฆฌ HWP๋ hwp_read๋ก ์ฝ์ ๋ค hwp_generate_hwpx๋ฅผ ์ฌ์ฉํด ์ HWPX๋ก ์ ์ฅํฉ๋๋ค. ์์์ hwp_fill_form, ๊ทธ๋ฆผ์ hwp_create_svg_asset๊ณผ hwp_insert_image๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ฐ ๊ทธ๋ฆผ์ after-paragraph, ์๋ช
ยท๋์ฅ์ seal-anchor ๋ชจ๋๊ฐ ์ ํฉํ๋ฉฐ ์ต์ปค๊ฐ ์๊ฑฐ๋ ์ฌ๋ฌ ๊ฐ๋ฉด ์์๋ก ์ ํํ์ง ์์ต๋๋ค.
๋๋ถ๋ถ์ ํ๊ธ ๋ฌธ์๋ 1 MiB ์ํ์ด๊ณ 10 MiB๋ฅผ ๋๋ ๊ฒฝ์ฐ๋ ๋๋ญ ๋๋ค. ๊ทธ๋์ 10 MiB ์ดํ๋ฅผ ๊ธฐ๋ณธ ์ง์ ๋ฒ์๋ก ์ ํ๊ณ PR CI, ์ฃผ๊ฐ Compatibility, ๋ฆด๋ฆฌ์ค ๊ฒ์ดํธ์์ ์ด ํฌ๊ธฐ๋ง ๊ฒ์ฆํฉ๋๋ค. 10 MiB ์ด๊ณผ 512 MiB ์ดํ๋ ์ด๋ก ์ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ฒ์์ ๋๋ค. ๊ฐ์ ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ์ฐ์ง๋ง ํฌ๊ธฐ๋ณ๋ก ์ผ์ผ์ด ๊ฒ์ฆํ์ง ์์ผ๋ฉฐ ํธํ์ฑ์ ๋ณด์ฅํ์ง ์์ต๋๋ค(best-effort). 512 MiB ์ด๊ณผ ํ์ผ์ ๊ฑฐ๋ถํฉ๋๋ค. ํฌ๊ธฐ์ ๋ฌด๊ดํ๊ฒ ๋น์ ์ยท์์ ์์นด์ด๋ธ, ์์ถ ํด์ ๋ฐ ์์ ์ ์ฑ , ์ ํ์ ํ์ฉ ๋ฃจํธ ์ ์ฑ ์ ๋ฐ๋ผ ๊ฑฐ๋ถ๋ ์ ์์ต๋๋ค. Kordoc 3.18.1์ ํ์ฌ HWP/HWPX ์ ์ฒด ์์ถ ํด์ ๋์ 100 MiB, HWPX ํญ๋ชฉ ์๋ฅผ 500๊ฐ๋ก ์ ํํ๋ฏ๋ก ๋ ์๊ฒฉํ ์์ง ํ๋๊ฐ ๋จผ์ ์ ์ฉ๋ ์ ์์ต๋๋ค.
์ผ๋ฐ hwp_read๋ JavaScript ๋ฌธ์์ด ๊ธธ์ด ๊ธฐ์ค Markdown 64,000์๊น์ง ์ธ๋ผ์ธ์ผ๋ก ๋ฐํํฉ๋๋ค. ๋ ํฐ ๊ฒฐ๊ณผ์๋ ๊ธฐ์กด ํ์ผ์ด ์๋ ์ .md ๊ฒฝ๋ก๋ฅผ markdown_output_path๋ก ์ง์ ํ์ญ์์ค. ํ๋ฌ๊ทธ์ธ์ ์๋ณธ์ ํ ๋ฒ๋ง ํ์ฑํ๊ณ ์ ์ฒด UTF-8 Markdown์ ์ต๋ 256 MiB๊น์ง ์ ์ฅํ๋ฉฐ, ์๋ต์๋ ์ฒ์ 64,000์์ ์ ์ฒด ํฌ๊ธฐยท์๋ณธ ์ง๋ฌธยท๊ถ์ฅ ๋ถํ ํฌ๊ธฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์ดํ Codex๋ ํ์ Markdown์ ์ฝ 64,000์ ๋จ์๋ก ์ฝ์ผ๋ฏ๋ก ์๋ณธ ๋ฌธ์๋ฅผ ๋ฐ๋ณต ํ์ฑํ์ง ์์ต๋๋ค.
์ต์ข
์ง๋ ฌํ MCP ๊ฒฐ๊ณผ์ ํ๋ ์ํ 8 MiB๋ ๋ณ๋๋ก ์ ์ง๋ฉ๋๋ค. ์๋ณธ ํ์ผ์ด 8 MiB๋ฅผ ๋์ผ๋ฉด ์ฒซ ์ฝ๊ธฐ๋ถํฐ markdown_output_path๋ฅผ ์ ๊ณตํ๊ณ , ๋ ์์ ์๋ณธ๋ RESPONSE_TOO_LARGE๊ฐ ๋ฐํ๋๋ฉด ์ .md ๊ฒฝ๋ก๋ฅผ ์ง์ ํด ๋ค์ ์ฝ์ผ์ญ์์ค.
์ทจ์ฝ์ ์ ๊ณต๊ฐ ์ด์์ ๋น๋ฐยท๊ฐ์ธ ๋ฌธ์ยท๊ฐ์ธ์ ๋ณด๋ฅผ ์ฒจ๋ถํ์ง ๋ง๊ณ SECURITY.md์ GitHub ๋น๊ณต๊ฐ ์ ๊ณ ์ ์ฐจ๋ฅผ ์ด์ฉํ์ญ์์ค. ๋ฌธ์ ๋ด์ฉ๊ณผ ๊ฒฉ๋ฆฌ ์์ค์ ํฌํจํ ์ ํํ ์ ๋ขฐ ๋ชจ๋ธ์ ๋ณด์ ๊ฒฝ๊ณ์ ์ค๋ช ๋์ด ์์ต๋๋ค.
GPT_CODEX_HWP_ALLOWED_ROOTS๋ฅผ ์ค์ ํ๋ฉด 9๊ฐ MCP ๋๊ตฌ๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ์ฉ์ ์
๋ ฅยท์ถ๋ ฅ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ๋ก์ปฌ ๋๋ ํฐ๋ฆฌ ์์ผ๋ก ์ ํํ ์ ์์ต๋๋ค. ์ค์ ํ์ง ์์ผ๋ฉด ์ด์ ๋ฒ์ ๊ณผ ๊ฐ์ด ํ์ฌ OS ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ ๋ก์ปฌ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋จ Windows ๋คํธ์ํฌ(UNC) ๊ฒฝ๋ก๋ ์ด ๊ธฐ๋ณธ๊ฐ์์๋ ๊ฑฐ๋ถํฉ๋๋ค. ๊ฐ์ ๋น์ด ์์ง ์์ JSON ๋ฐฐ์ด์ด์ด์ผ ํ๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ์ด๋ฏธ ์กด์ฌํ๋ ๊ณ ์ ํ ์ ๋ ๋๋ ํฐ๋ฆฌ์ฌ์ผ ํฉ๋๋ค. ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ Windows junction/reparse ๋ณ์นญ ์์ฒด๋ ๋ฃจํธ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ ๊ฐ์ ์ ํํ JSON ๋ฌธ์์ด ์์์
๋๋ค.
$env:GPT_CODEX_HWP_ALLOWED_ROOTS = '["C:\\Documents\\HWP","D:\\TeamDocs"]'export GPT_CODEX_HWP_ALLOWED_ROOTS='["/Volumes/TeamDocs"]'๋น ๋ฐฐ์ด, ์๋ชป๋ JSON, ์๋ ๊ฒฝ๋ก, ์ค๋ณต ๋ฃจํธ, ์กด์ฌํ์ง ์๋ ๋ฃจํธ, ํ์ผ ๋๋ ๋งํฌ ๋ฃจํธ๊ฐ ์์ผ๋ฉด one-shot ํธ์ถ์ ๋๊ตฌ๋ฅผ ์คํํ๊ธฐ ์ ์, ์๋ MCP ์๋ฒ๋ ์์ ๋จ๊ณ์์ ๋ซํ ์ํ๋ก ์คํจํฉ๋๋ค. ๊ฐ์ UTF-8 ๊ธฐ์ค 16,384๋ฐ์ดํธ, ๋ฃจํธ 32๊ฐ, ํญ๋ชฉ๋น 4,096์๋ก ์ ํ๋ฉ๋๋ค. ์ค์ ๋ ๊ฒฝ์ฐ ์๋ณธ HWP/HWPX, Markdownยท์ด๋ฏธ์ง ์
๋ ฅ, ์์ฑยทํจ์นยท์์ยท์ด๋ฏธ์ง ์ฝ์
HWPX, MarkdownยทSVGยทPNGยท๋ฏธ๋ฆฌ๋ณด๊ธฐยท์ถ์ถ ์ด๋ฏธ์ง์ ์ถ๋ ฅ ๋๋ ํฐ๋ฆฌ ๋ชจ๋ ์ค๊ฒฝ๋ก ํ์ธ ๋ค ๊ฐ์ ์ ์ฑ
์ ์ ์ฉํฉ๋๋ค. ๊ฑฐ๋ถ ๊ฒฐ๊ณผ๋ PATH_OUTSIDE_ALLOWED_ROOTS๋ง ๋ฐํํ๋ฉฐ ์ค์ ๊ฐ์ด๋ ๊ฑฐ๋ถ๋ ์ ๋ ๊ฒฝ๋ก๋ฅผ ๋
ธ์ถํ์ง ์์ต๋๋ค.
๋์ฉ๋ ์ฒ๋ฆฌ์ฉ ๋ด๋ถ ์คํ์ ์ฌ์ฉ์ ๋ฃจํธ ์ค์ ์ ๋ฐ์ง ์๋ ๋ณ๋์ ์์ธก ๋ถ๊ฐ๋ฅํ OS ์์ ๋๋ ํฐ๋ฆฌ์ ์์ ์ ์ ์ฉ ๊ถํ์ผ๋ก ๋ง๋ค๊ณ , ์์ ํ๋ก์ธ์ค์๋ ์์๋ ํธ๋ค๋ง ์ ๋ฌํ๋ฉฐ finally์์ ์ ๊ฑฐํฉ๋๋ค. ๋ฐ๋ผ์ ์คํ์ ์ฌ์ฉ์ ํ์ฉ ๋ฃจํธ์ ์์ธ๊ฐ ์๋๋ผ ๋
๋ฆฝ๋ ๋ด๋ถ ์ ๋ขฐ ์์ญ์
๋๋ค. allowed_roots๋ ์์ด์ ํธ์ ์ค์๋ ๊ฒฝ๋ก ์ดํ์ ์ค์ด๋ ๋ฐฉ์ด์ ์ด๋ฉฐ, ๊ฐ์ OS ์ฌ์ฉ์ ๊ถํ์ผ๋ก ์คํ๋๋ ์
์ฑ ํ๋ก์ธ์ค๋ฅผ ์์ ํ ๊ฒฉ๋ฆฌํ์ง๋ ๋ชปํฉ๋๋ค. Node.js๋ ๋ชจ๋ ํ์ผ์์คํ
์์ Linux openat2๋ Windows ํธ๋ค ์๋ ๊ฒฝ๋ก์ ๊ฐ์ ์์์ ๋ณด์ฅ์ ์ด์์ฑ ์๊ฒ ์ ๊ณตํ์ง ์์ผ๋ฏ๋ก, ๋์ ์ํ์ ๋ฌธ์๋ ๋ณ๋ ์ ๊ถํ ๊ณ์ ยทVMยท์ปจํ
์ด๋ ๊ฐ์ OS ๊ฒฉ๋ฆฌ์์ ์ฒ๋ฆฌํ์ญ์์ค.
- ์ ๋ ฅ ๊ฒฝ๋ก์ ์ถ๋ ฅ ๊ฒฝ๋ก๋ ๋ฌ๋ผ์ผ ํ๋ฉฐ ๊ธฐ์กด ์ถ๋ ฅ ํ์ผ์ ๋ฎ์ด์ฐ์ง ์์ต๋๋ค.
- ์๋ช , ์ํธํ, DRM, ๋ฐฐํฌ์ฉ ๋ณดํธ๊ฐ ๊ฐ์ง๋ ๋ฌธ์๋ ๋ณดํธ๋ฅผ ์ฐํํ์ง ์๊ณ ๊ฑฐ๋ถํฉ๋๋ค.
- ๊ฒฝ๋ก ๋ณ์นญ, ํ๋๋งํฌ, ์ฌ๋ณผ๋ฆญ ๋งํฌ, Windows junction, ZIP ๊ฒฝ๋ก ์ํ๋ฅผ ๋ฐฉ์ดํฉ๋๋ค.
- Windows ๋คํธ์ํฌ ๊ฒฝ๋ก(UNC,
\\์๋ฒ\๊ณต์)๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฑฐ๋ถํฉ๋๋ค. ๋คํธ์ํฌ ๊ณต์ ๋ฅผ ์จ์ผ ํ๋ฉดGPT_CODEX_HWP_ALLOWED_ROOTS์ ๊ทธ UNC ๋ฃจํธ๋ฅผ ๋ช ์ํ์ญ์์ค. ๊ทธ ์๋ ๊ฒฝ๋ก๋ง ํ์ฉ๋ฉ๋๋ค.GPT_CODEX_HWP_ALLOWED_ROOTS๋ฅผ ์ค์ ํ์ง ์์๋ค๋ฉด ๋งคํ๋ ๋คํธ์ํฌ ๋๋ผ์ด๋ธ(์:Z:\)์ ์๋ ๋ฌธ์๋ ์ฝ์ ์ ์์ง๋ง, ๊ทธ UNC ๋ฃจํธ๋ฅผ ์ง์ ํ์ง ์๋ ํ ๊ทธ ๊ณต์ ๋ก ๊ฒฐ๊ณผ๋ฌผ์ ์ฐ์ง๋ ์์ต๋๋ค. - HWPX ๊ฒ์ฆ์ ์คํจํ๋ฉด ์์ฑ ๋๋ ํธ์ง ๊ฒฐ๊ณผ๋ฌผ์ ์ฐ์ง ์์ต๋๋ค.
hwp_patch_document์ ์๋ฏธ ๊ฒ์ฆ์ ํ์์ด๋ฉฐ ๊ฒ์ฆ์ ๋๊ฑฐ๋ ๊ฒ์ฆ ํต๊ณ ์์ด ๊ฒฐ๊ณผ๋ฌผ์ ๊ฒ์ํ ์ ์์ต๋๋ค.- ๋ณดํธ ๋งค๋ํ์คํธ๋ UTF-8/UTF-16 ์ธ์ฝ๋ฉ์ ๊ตฌ๋ถํด ๊ฒ์ฌํ๊ณ , ZIP ์ํธ๋ฆฌ ์๋ JSZip ๋ก๋ ์ ์ ์ต๋ 10,000๊ฐ๋ก ์ ํํฉ๋๋ค.
- ์์ ๊ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก MCP ๊ฒฐ๊ณผ์์ ๋ง์คํนํ๋ฉฐ ๋ช ์์ ์์ฒญ์ด ์์ ๋๋ง ๊ณต๊ฐํฉ๋๋ค.
- ๋ฐ์ด๋๋ฆฌ HWP ์ง์ ํจ์น๋
HWP_READ_ONLY๋ก ๊ฑฐ๋ถํฉ๋๋ค.
HWPX๋ HANGUL, LATIN, HANJA, JAPANESE, OTHER, SYMBOL, USER ์ธ์ด๊ถ๋ง๋ค ๋ณ๋์ ๊ธ๊ผดํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ฑ ๊ณผ์ ์ ์กด์ฌํ์ง ์๋ ์ฐธ์กฐ๋ง ์ ํจํ ID๋ก ์ ๊ทํํ๋ฉฐ Kordoc์ ์ฅํ, ์๊ฐ, ์๋ ํฌ๊ธฐ, ๊ธ์ ์์น์ ๊ธ๊ผด ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. hwp_validate๋ ๊ธ๊ผดํ์ ์ค๋ณต/๋๋ฝ, ์นด์ดํธ, ID, ๋น ์ด๋ฆ๊ณผ ์๋ชป๋ fontRef๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
์ด ํ๋ฌ๊ทธ์ธ์ ๊ธ๊ผด ํ์ผ์ ๋ฒ๋คํ๊ฑฐ๋ HWPX์ ๋ด์ฅํ์ง ์์ผ๋ฉฐ ์์คํ ๊ธ๊ผด์ ์๋ ์ค์นํ์ง ์์ต๋๋ค. ์ค์ ๊ธ๊ผด ํ์์ ์ค๋ฐ๊ฟ์ ๋ฌธ์๋ฅผ ์ฌ๋ ํ๋ซํผ์ ์ค์น๋ ๊ธ๊ผด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
- ๋ฐ์ด๋๋ฆฌ HWP๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ ์์ฑยท์์ ยท๋ณํ ์ถ๋ ฅ์ ๋ชจ๋ HWPX๋ก ์์ฑํฉ๋๋ค.
- ์ ํจํ ์๋ณธ ๋ฌธ์๋ 10 MiB ์ดํ๊ฐ CI ๊ฒ์ฆ ๊ธฐ๋ณธ ๋ฒ์์ด๋ฉฐ, 10 MiB ์ด๊ณผ 512 MiB ์ดํ๋ ์ด๋ก ์ ์ฒ๋ฆฌ ๊ฐ๋ฅํ์ง๋ง ๊ฒ์ฆํ์ง ์๋ best-effort, 512 MiB ์ด๊ณผ๋ ๊ฑฐ๋ถ๋ฉ๋๋ค. ๋น์ ์ ์์นด์ด๋ธ, ์์ถ ํด์ ยท์์ยทํ์ฉ ๋ฃจํธ ์ ์ฑ ๊ณผ Kordoc 3.18.1์ 100 MiB ์์ถ ํด์ ๋ ๋ฐ HWPX 500๊ฐ ํญ๋ชฉ ์ ํ์ ๋ณ๋๋ก ์ ์ฉ๋ฉ๋๋ค.
- ์ธ๋ผ์ธ Markdown์ 64,000์, ํ์ Markdown ํ์ผ์ 256 MiB, ์ต์ข ์ง๋ ฌํ MCP ๊ฒฐ๊ณผ๋ 8 MiB๋ก ์ ํํฉ๋๋ค.
- Kordoc ๋๋ rhwp ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ํ์ปด GUI์ ํฝ์ ๋จ์๋ก ๋์ผํ์ง ์์ ์ ์์ต๋๋ค.
- rhwp ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํด๋ฐฑ์ ์ฒซ ํ์ด์ง๋ง ๋ ๋๋งํ๊ณ Node ํ๊ฒฝ์ ๊ทผ์ฌ ๊ธ๊ผด ํญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ณดํธ ๋ฌธ์์ ์ํธ๋ DRM์ ํด์ ํ๊ฑฐ๋ ์ฐํํ์ง ์์ต๋๋ค.
- HWP 3.x๋ ์ค์ fixture๊ฐ ์์ด ๊ฒ์ฆ๋ ์ง์์ผ๋ก ํ์ํ์ง ์์ต๋๋ค.
- ๋ฏธ๋ฆฌ๋ณด๊ธฐ SVG๋ 128 MiB๋ก ์ ํํฉ๋๋ค.
- ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ์ด๋ผ์ดํธ๋ ์ต๋ 256๊ฐ ๋ฐ ํฉ๊ณ 16,384์, ํ ๋ฒ์ ์์ ์ฑ์ฐ๊ธฐ ๊ฐ์ ํฉ๊ณ 10,000๊ฐ๋ก ์ ํํฉ๋๋ค.
ํ๋ซํผ๋ณ ๋ค์ดํฐ๋ธ ์์กด์ฑ์ ๊ฒ์ฆํ ํ๋ฌ๊ทธ์ธ installedPath์์ ๋ช
์์ ์ค์น๊ธฐ๋ก ์ค๋นํฉ๋๋ค. Windows์์ ์ค์นํ ๋ฐํ์์ macOS๋ก ๋ณต์ฌํ์ง ๋ง์ญ์์ค.
node dist/install-runtime.js --json
node dist/doctor.js --json์ฒซ ๋ช
๋ น์ JSON code๋ RUNTIME_INSTALL_OK์ฌ์ผ ํฉ๋๋ค. ์ค์น๊ธฐ๋ ์ ๊ธ ํ์ผ๊ณผ ๋งค๋ํ์คํธ๋ฅผ ๊ฒ์ฆํ๊ณ lifecycle script๋ฅผ ๋ ์ฑ Sharp๋ฅผ ํฌํจํ ์ด์ ์์กด์ฑ์ ํ์ฌ OS์ CPU์ ๋ง๊ฒ Codex ๊ด๋ฆฌ ์บ์ ๋ฐ์ ์์์ ์ผ๋ก ๊ฒ์ํฉ๋๋ค. ๋ ๋ฒ์งธ ๋ช
๋ น์ ์ค์น๋ ๋ณต๊ตฌ ์์ด ํ๊ฒฝ์ ์ง๋จํฉ๋๋ค. ๋ฌธ์ ์์
์ค์๋ ์ค์นํ์ง ์์ผ๋ฉฐ, RUNTIME_NOT_INSTALLED๊ฐ ๋ฐํ๋๋ฉด ์ด ์ ์ ์ค์น๊ธฐ๋ฅผ ๋ช
์์ ์ผ๋ก ์คํํ์ญ์์ค. ๊ธ๊ผด ํ์ผ์ ์ค์นํ์ง ์์ต๋๋ค. Kordoc Core๋ HWP/HWPX ์์
์ ํ์ํ ๊ณ ์ ๋ฐํ์๋ง ์ ๊ณตํ๋ฉฐ PDF, OCR, ONNX, ์์ ์์ง ์ ํ ์์กด์ฑ์ ์ค์นํ์ง ์์ต๋๋ค. ๊ฒ์ฆ๋ Windows x64 ๋ฐํ์ ์์กด์ฑ ์์ฐ์ 64 MiB ์ดํ์
๋๋ค.
์ด ํ๋ก์ ํธ์ hwpx-editing-skill ์ฌ์ฉ์ ์ผ๋ฐ ๋ฐํ์ ์์กด์ฑ๊ณผ ๋ค๋ฆ
๋๋ค. ์์ ํญ๋ชฉ๊ณผ ์์ถ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๋ HWPX ์ฌํจํค์ง ํ๋ฆ, ์ผ๋ถ ์์ ์์น๊ณผ ๊ฒ์ฆ ํ๋ฆ์ ํด๋น ํ๋ก์ ํธ์ ๊ณ ์ ์ปค๋ฐ์์ ์์ ยท์ ์ฉํ์ต๋๋ค. ์ ์ง๊ด๋ฆฌ์์ ๊ธฐ์ฌ์๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
Kordoc์์๋ ๋ฌธ์ ๊ฐ์ง, ์ฝ๊ธฐ, HWPX ์์ฑ/๊ฒ์ฆ/๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐํ์์ ์ฌ์ฉํ๊ณ , rhwp์์๋ ์ฝ๊ธฐ ์ ์ฉ ๋ฌธ์ ํ๋ฆ์ ์ํ ์ ํ์ HWP/HWPX ํ์ฑ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํด๋ฐฑ์ ์ฌ์ฉํ์ต๋๋ค. Model Context Protocol TypeScript SDK๋ MCP ์๋ฒ์ stdio ์ ์ก์, xmldom์ XML DOM ์ฒ๋ฆฌ๋ฅผ, SheetJS CFB๋ ๋ฐ์ด๋๋ฆฌ HWP์ OLE ๋ณตํฉ ํ์ผ ์ฒ๋ฆฌ๋ฅผ, JSZip์ HWPX ZIP ์ฒ๋ฆฌ๋ฅผ, Sharp๋ ์์ ํ ์ด๋ฏธ์ง ๋ณํ์, Zod๋ ๋๊ตฌ ์ ๋ ฅ ์คํค๋ง ๊ฒ์ฆ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ ํ๋ก์ ํธ์ ์ ์ง๊ด๋ฆฌ์์ ๊ธฐ์ฌ์๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
Pixelify Sans๋ ์ต์ข ๋ฐฐ๋์ ๋์คํฐํ๋ ์ ๋ชฉ์ ์ ์ํ ๋๋ง ์ฌ์ฉํ์ผ๋ฉฐ ๊ธ๊ผด ํ์ผ์ ํ๋ฌ๊ทธ์ธ์ ํฌํจ๋์ง ์์ต๋๋ค. Pixelify Sans Project Authors์ Google Fonts ์ ์ง๊ด๋ฆฌ์๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ํํ ๋ฒ์ , ์ ์๊ถ, ๋ผ์ด์ ์ค, ์ฌ์ฉ ๋ฒ์๋ THIRD_PARTY_NOTICES.md๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
Gpt_Codex_HWP ํ๋ก์ ํธ๋ Apache-2.0์ผ๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ์ 3์ ๊ตฌ์ฑ ์์์ ์ ์ ์ ๋ ฅ๋ฌผ์ THIRD_PARTY_NOTICES.md์ ๊ธฐ์ฌ๋ ๊ฐ๊ฐ์ ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๊ณต๊ฐ ์ด์์ ํ ๋ฆฌํ์คํธ์์์ ๋ ผ์๋ ํ์ํฉ๋๋ค. ๊ณต์ ๋ธ๋์น, ํ๊ทธ, ๋ฆด๋ฆฌ์ค, ๋ฒค๋ ๋ฐํ์, ์์ฑ ๋ฐํ์์ ๋ณ๊ฒฝ์ ์ ์ฅ์ ์์ ์๊ฐ ๊ฒํ ํ๊ณ ์ง์ ์์ฑํ๋ฉฐ, ์์กด์ฑ ์๋ํ๋ ์ด์๋ฅผ ํตํ ๊ถ๊ณ ๋ง ์ํํฉ๋๋ค. ๋จผ์ ๊ธฐ์ฌ ์ง์นจ์ ์ฝ๊ณ ์ํคํ ์ฒ์ ์๋ณธ๊ณผ ์์ฑ ๋ฐํ์ ๊ฒฝ๊ณ ๋ฐ ๋ณ๊ฒฝ ๊ธฐ๋ก์ ํ์ธํ์ญ์์ค. ์๊ฒฉ์ฆ๋ช , ๊ฐ์ธ ๋ฌธ์, ํ๊ฒฝ ํ์ผ, ๊ฐ์ธ ๊ฒฝ๋ก, ๋ฏธ๊ณต๊ฐ ๊ฐ์ฌ ์๋ฃ๋ ๊ณต๊ฐ ๋ณด๊ณ ์ ํฌํจํ์ง ์์ต๋๋ค. ๋ณด์ ๋ฌธ์ ๋ SECURITY.md์ ๋น๊ณต๊ฐ ์ ์ฐจ๋ก ์ ๊ณ ํฉ๋๋ค.

