Storage Delivery Roadmap - barocss/barocss-editor GitHub Wiki
๊ด๋ฆฌ์: Execute Storage (01a11b92-e103-71d3-acc3-1b22720c5a69). ํ์ฌ ํ์ธ์ผ: 2026-10-10, ํ๊ตญ ์๊ฐ.
์ด์ 2026-10-10 ๊ฒ์ฌ ์ค๋น checkpoint์ ์ด๋ ฅ: ๋ค ์ ํ์ asset consumer ๊ฒ์ฌ ๊ณ์ฝ์ full native/๋
๋ฆฝ byte/hash seed, ์ ์ยท๊ฑฐ๋ถยท๋ถ๋ถ ์คํจ, ์ค์ owner interface๋ฅผ ์ฐ๊ฒฐํ๋ค. ๊ธฐ์กด #416/#509/#510/#511์ ์ ์งํ๋ค. #511์ native2 copy๋ applicable #513 source transport๋ฅผ ์กฐ๊ฑด๋ถ ์ฌ์ฌ์ฉํ๋ค. ๋น์ Root #503 writer fixture๊ฐ ์งํ ์ค์ด์์ผ๋ฉฐ ๊ทธ ํ์ฌ ์ฐ์ ์์ ํ์๋ ์๋ ์ต์ ์ํ๋ก ๋์ฒดํ๋ค. 1e6f4b9์ ์ฒซ ์คํจ ๊ธฐ๋ก์ ๋ณด์กดํ๋ค.
์ต์ checkpoint โ 2026-10-10: #503 CLOSED์ fixed local develop 9ad7597d410478e0bcf0a2fd0d13fd004463d658๋ฅผ ํ์ธํ๋ค. ๋ง์ง๋ง Integration owner snapshot์ #377 ํตํฉ ํ๋ณด์ ์ต์ข
preflight ์งํ๊ณผ #504 ์คํจยท์ฌ์๋ยท์ฌ์ด๊ธฐ ๊ฒ์ฌ ์ค๋น์ด๋ฉฐ ๊ทธ ๊ด์ธก์ผ๋ก ์ต์ข
ํต๊ณผ๋ฅผ ์ถ๋ก ํ์ง ์๋๋ค. #412 wiring/์ค์ ์ธ์๋ ์ฌ์ ํ ๋๊ธฐํ๋ฉฐ Root๊ฐ ์ค์ ํ์ฌ serial ์์
์ ์์ checkpoint๋ฅผ ์ ํ๋ค. Storage๋ ๊ธฐ์กด #416์ Site full-native A/B/C packet์ ์ค๋นํ๋ค. ์ ํ source/test lease๋ shared runtime์ ์๋ก ์ฌ์ฉํ์ง ์์๋ค.
ํ์ ํ์ฌ checkpoint โ 2026-10-10: accepted source base54693์์ Editor/Workspace๊ฐ ์ถฉ๋ ์๋ FOUR helper ๊ฒฝ๊ณ๋ฅผ ์ง์ ํ์ธํ๋ค. Storage candidate 51d33a7442a19292859eb0784a505118db39ad52๋ ์๋ณธ/rendition byteยทready-receipt DATA์ ๊ณตํต export path-plan source/tests๋ง ๊ตฌํํ๋ค. New13/affected40์ final unchanged preflight0. ๊ธฐ์กด Site host/renderer/codec/index๋ readonly๋ค. Integration์ ๋ง์ง๋ง ๊ด์ธก์ ๊ธฐ์กด ์ฌ์๋ ์๋๋ฆฌ์ค์ source/compiled ๊ฒฐ๊ณผ์ ๋จ์ ๊ถํยท์
๋ ฅ ๊ฒ์ฌ ๊ธฐ๋ก ์์
์ด๋ฉฐ, ๋ค์ Root ์์ checkpoint๋ ๋ณ๋ ํ์ธํ๋ค. ์ง์ง #412 readiness์ private snapshot512KiB/full materialization interface๋ ์ฌ์ ํ ๋จ์ ์๋ค.
2026-10-10 ์์กด์ฑ ๋ฒํธ ์์ฝ: Integration/Root๊ฐ #377 Workspace ์ค๋น์ 0017_company_member_confirmation ๋ค์ 0018์ #412 private-assets additive migration/wiring์ ์์ฝํ๋ค. #412 ํ๋ณด์๋ migration source๋ ๋ณ๋ ๊ณ ์ ID๊ฐ ์์ผ๋ฏ๋ก ์ถฉ๋ํ์ง ์๋๋ค. ์ต์ข
full ID/SQL/checksum/registration์ Root๊ฐ ์์ checkpoint์์ ํ์ ํ๋ค. ํ์ฌ ์ฝ๋์ migration์ด ์๊ฒผ๊ฑฐ๋ ์คํ๋๋ค๋ ๋ป์ด ์๋๋ค. ๊ธฐ์กด 0006/0010์ ์ ์งํ๋ฉฐ ๋น์ #503 ์ฐ์ ์์๋ ์ ์ต์ ์ํ๋ก ๋์ฒดํ๋ค.
์ฌ์ฉ์๋ ์ด ๋ํ์์ ์ด์ ์๋ฃ ํ ๋ค์ ์ด์๋ฅผ ์ง์ ์ฐพ๊ณ , ํ์ํ ์ด์๊ฐ ์์ผ๋ฉด ๋ก๋๋งต์ ๋ง์ถฐ ๋ง๋ค๊ณ , Wiki๋ฅผ ์ง์ ๊ด๋ฆฌํ๋ฉฐ ์งํํ๋ผ๊ณ ์ง์ํ๋ค. ์ถ๊ฐ ์ง์์ ๋ฐ๋ผ ์์กด์ฑ์ด ์ค๋น๋์ง ์์ ๋์์๋ ๋ก๋๋งต์ ๊ณ์ ๋ณด๊ฐํ๊ณ ํ์ํ ํ์ ์ด์๋ฅผ ์ฌ์ ์์ฑํ๋ค. Planner์๋ ์๋ก ๋ง๋ ์ด์์ ๋ฒํธยท์ ๋ชฉยท๋งํฌ๋ง ์๋ฆฐ๋ค. ์ด ์ง์๋ ์ด ์คํ ์์ญ์ ๋ค์ ์์ ์ ์ ๊ณผ ์ด์ ์์ฑ์ ์ ์ฉํ๋ค. ๊ธฐ์กด ์ด์์ ์๋ ์๋ฃ ๊ธฐ์ค๊ณผ ๋ค๋ฅธ ์์ฑ์์ ์งํ ์ค ๋ณ๊ฒฝ์ ๋ณด์กดํ๋ค.
์ ์ฒด ๋ชฉํ๋ ์ ํ ์งํ ์ง๋์ ์ ์ฅ์์ WP ๊ตฌํ ์์๋ฅผ ๋ฐ๋ฅธ๋ค. ์ด ํ์ด์ง๋ ์์ฐยท๋ณต๊ตฌยท์ค์น ์์ ์ ํ์ฌ ์คํ ์์์ ์ฆ๊ฑฐ๋ฅผ ๊ด๋ฆฌํ๋ค.
- ์์ ์ ์ฌ๊ฐํ ๋ ์ต์ ์ฌ์ฉ์ ์ง์, ์ด์ยท๋๊ธ, ์ด๋ฆฐ PR, ์ ํํ ๋ก์ปฌ ๊ธฐ์ค commit๊ณผ ํ์ผ ์์ ๋ฒ์๋ฅผ ํ์ธํ๋ค.
- ํ์ฌ ์ด์์ ์๋ ์๋ฃ ๊ธฐ์ค์ ๋ชจ๋ ๊ฒ์ฆํ๋ค. ํ๋ณด ๊ตฌํ, ๋จ์ ๊ฒ์ฌ, ๋ก์ปฌ ํตํฉ, ์ค์ ์ธ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ๊ฐ ๊ธฐ๋กํ๋ค. ๊ฒ์ฆ์ด ๋จ์ ์์ผ๋ฉด ์ด์๋ฅผ ์ ์งํ๋ค.
- ์๋ฃ ๊ธฐ์ค์ ์ถฉ์กฑํ๋ฉด ์ด์์ ํตํฉ commit๊ณผ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ๊ณ ๋ซ๋๋ค. ๊ฐ์ ์์ ํด์์ ์ด ๋ก๋๋งต์ ๋ค์ ์คํ ๊ฐ๋ฅํ ๊ธฐ์กด ์ด์๋ฅผ ์ ํํ๊ณ ์์ํ๋ค. ๋ค์ ์์ ์ ์ ๋๋ฌธ์ Planner์ ์ผ์ ์น์ธ์ ๊ธฐ๋ค๋ฆฌ์ง ์๋๋ค.
- ํ์ํ ์์ ์ ๊ธฐ์กด ์ด์๊ฐ ์์ผ๋ฉด ์ด๋ฆฐ ์ด์ยท๋ซํ ์ด์์ ๋ก์ปฌ ์ฝ๋๋ฅผ ํ์ธํ๋ค. ํ์ธํ ๊ตฌํ ๊ณต๋ฐฑ์ ๋ํด ๋ชฉ์ , ๋ฒ์, ์ ํ ์์ , ์์ ํ์ผ ํ๋ณด, ์๋ฃ ๊ธฐ์ค, ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๊ฐ์ถ ์ด์๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ ๋ค. ํ์ฌ ์ด์์ ์๋ฃ๋ ์ ํ ์์กด์ฑ ์ค๋น๊น์ง ์์ฑ ์์ฒด๋ฅผ ๋ฏธ๋ฃจ์ง ์๋๋ค. ์์กด์ฑ์ด ๋จ์ผ๋ฉด WAIT_DEPENDENCY๋ก ๊ธฐ๋กํ๊ณ ์ด ๋ก๋๋งต์ ๋งํฌ์ ์ ์ ์ด์ ๋ฅผ ์ถ๊ฐํ๋ค.
- ์ ์ด์๋ฅผ ๋ง๋ค์์ ๋๋ง Planner (
01a0be9d-0a28-7741-8ce7-b500e1f41aaf)์๊ฒ ๋ฒํธยท์ ๋ชฉยท๋งํฌ๋ฅผ ์งง๊ฒ ์๋ฆฐ๋ค. ์ ๊ธฐ ์ํ ๋ณด๊ณ ๋ ๊ธฐ์ ์น์ธ ์์ฒญ์ ์ถ๊ฐํ์ง ์๋๋ค. - ํธ์ง๊ธฐยทWorkspace ๊ฒฝ๊ณ์ ํ์ผ ๋ฒ์์ API๋ ํด๋น ์์ฑ์์ ์ง์ ๋ง์ถ๋ค. ๊ณต์ package/lock/config/migration๊ณผ ๋ก์ปฌ develop ํตํฉ, ๊ณต์ API/PG/OIDC/S3 ์คํ ์์์ Integration๊ณผ ์ง์ ์กฐ์ ํ๋ค. ๋์์ ๊ฐ์ ํ์ผ์ ์ฐ์ง ์๋๋ค.
- ์ ํ ์์ ์ด ๋ฏธ์๋ฃ๋ฉด ํด๋น ์์กด์ฑ๊ณผ ๋ด๋น์, ์ค์ ์ค๋น ์กฐ๊ฑด์ ๊ธฐ๋กํ๋ค. ์์ ์ ์ฌ๊ฐํ๊ฑฐ๋ ๊ณ์ฝยท์ํยท์ฆ๊ฑฐ๊ฐ ๋ฐ๋ ๋ ๋ก๋๋งต๊ณผ ์ฌ์ ์ด์๋ฅผ ๊ฐฑ์ ํ๋ค. ๋ค์ ๊ฒฐ๊ณผ๋ฌผยท์ ์ถ๋ ฅ ๋งคํยท์คํจ ์ ๋ณด์กดํ ๋ฐ์ดํฐยทfixtureยท๊ฒ์ฌ ์์๋ฅผ ๊ตฌ์ฒดํํ๋ค. ํ์ฌ ์ํ ๊ฐ๋ฅํ ์์ ์ฝ๋ยท๊ฒ์ฌ๋ฅผ ์งํํ๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ ๋ฒ์๋ ํ์ธํ๋ค. ๋ณ๊ฒฝ ์๋ ๋๊ธฐ ์ํ๋ฅผ ๋ฐ๋ณตํด์ ๊ฒ์ํ๊ฑฐ๋ ์ค๋ณต ์ด์๋ฅผ ๋ง๋ค์ง ์๋๋ค.
์๋ ์ํ๋ 2026-10-09 GitHub ์กฐํ ๊ฒฐ๊ณผ๋ค. ์ ์ด์๋ฅผ ์ ํํ ๋ ๋ค์ ํ์ธํ๋ค.
| ์์ | ๊ธฐ์กด ์ด์ | ํ์ฌ ์ํ์ ์์ ์กฐ๊ฑด | ์๋ฃ ๊ฒฐ๊ณผ |
|---|---|---|---|
| 1 | #412 ๋น๊ณต๊ฐ ๋ฌธ์ ์์ฐ | ์งํ ์ค. ์์ ์ฝ๋์ ๋ก์ปฌ ํ๋ณด ์ค๋น. Integration migration/export/config/route ์ฐ๊ฒฐ๊ณผ ์ค์ PG/OIDC/๋น๊ณต๊ฐ S3 ๊ฒ์ฆ ํ์ | ์ค์ writer/viewer ๊ถํ, ์ ๋ก๋ยท์ฝ๊ธฐ, ๊ณ ์ ํค ์ฌ์๋, ์ฅ์ ์ API ์ฌ์์ ๊ฒ์ฆ |
| 2 | #416 Site ์์ฐ ์ฌ์ฉ | ๋๊ธฐ. ์ ํ #407์ ๋ซํ. #412 ํตํฉ ์ธ์์ ํธ์ง๊ธฐ ํ์ผ ๋ฒ์๊ฐ ์ค๋น๋๋ฉด ์ ์ | ์ค์ Site ์ด๋ฏธ์ง ์ฝ์ ยท์ ์ฅยท์ฌ์ด๊ธฐ, ๋ ๊ณ์ ์ ๊ทผ, ์๋ณธ ๋ฐ์ดํธ๋ฅผ ๋ณด์กดํ ๋ ๋ฆฝ ๋ก์ปฌ ๋ด๋ณด๋ด๊ธฐ |
| 3 | #414 DB์ ์์ฐ ๋ณต๊ตฌ | ๋๊ธฐ. #412์ #416์ ์ค์ ์์ฐ fixture ๋ฐ ๋ ๋ฆฝ ๋ณต๊ตฌ ๋ชฉ์ ์ง ํ์ | ์๋ณธ์ ๋ณด์กดํ ์ DB/๊ฐ์ฒด ๋ชฉ์ ์ง ๋ณต์, ์ ์ฒด ํด์ยท์ํยท๊ถํ ๋น๊ต, ์คํจ ์ ๋ถ์์ ์ํ ๊ธฐ๋ก |
| 4 | #419 ์ง์ ๊ฐ๋ฅํ ๋ก์ปฌ ์ค์น | ๋๊ธฐ. #412/#416/#414์ ์๋ ์ ํยท๊ด๋ฆฌ์ ์ ํ ๊ธฐ์ค ํ์. #408์ ๋ซํ. #377/#378์ ์ด๋ ค ์์ | ๊ฐ์ ๋น๋ ๊ฒฐ๊ณผ๋ฅผ ๋ ๋ ๋ฆฝ ๋ชฉ์ ์ง์ ์ค์นํ๊ณ ์ผ๋ฐ ์์ยท์ข ๋ฃยท์ฌ์์ ๋ฐ ๋ฐ์ดํฐ ์ ์ง ๊ฒ์ฆ |
| 5 | #417 ๋ก์ปฌ Site ๊ฒ์ | ํ์. #416/#414์ ๊ธฐ์กด ์ค์น ์ฐ์ ์์ ์ดํ. ์ธ๋ถ alpha ์ถ๊ฐ ํ์ ์กฐ๊ฑด์ผ๋ก ์ทจ๊ธํ์ง ์์ | loopback ๋ฐฉ๋ฌธ origin์ ๋ถ๋ณ ๊ฒ์ ๊ฒฐ๊ณผ, ์์ ํ์ฑํ์ ์ด์ ๋ฒ์ ๋ณต๊ตฌ |
| ํ์ | #509 Word ๋น๊ณต๊ฐ ์ด๋ฏธ์ง | ์ฌ์ ๋ฑ๋ก, WAIT_DEPENDENCY. #412/#416 ํตํฉ ์ธ์์ Word ํ์ผ ์์ ๋ฒ์ ํ์. ๊ธฐ์กด ๋ณต๊ตฌยท์ค์น ์ฐ์ ์์๋ฅผ ์ ์ง | Word ์ค์ ์ฝ์ ยท์ ์ฅยท์ฌ์ด๊ธฐยท๋ค๋ฅธ ๊ณ์ ์ฝ๊ธฐ, ์๋ณธ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ๋ ๋ฆฝ native ๋ด๋ณด๋ด๊ธฐ |
| ํ์ | #510 Slides ๋น๊ณต๊ฐ ์ด๋ฏธ์งยท์ฑ์ฐ๊ธฐ | ์ฌ์ ๋ฑ๋ก, WAIT_DEPENDENCY. #412/#416 ๊ฒ์ฆ๊ณผ Slides ํ์ผ ๋ฒ์ ํ์. #406 snapshot์ ๋ซํ; #372 Yorkie์ ๊ตฌ๋ถ | ์ด๋ฏธ์ง ๊ฐ์ฒดยทpaint fill ์ ์ฅ/์ฌ์ด๊ธฐ, ์ ๋ฑ ๋ณต์ฌ์ ๋์ ์์ฐ ์ฐ๊ฒฐ, ๋ ๋ฆฝ native ๋ค์ด๋ก๋ |
| ํ์ | #511 Note ๋น๊ณต๊ฐ picture | ์ฌ์ ๋ฑ๋ก, WAIT_DEPENDENCY. #412/#416๊ณผ Note ํ์ผ ๋ฒ์ยท์ง์ native mode ํ์. native2๋ ํด๋น #495/#497/#507 ์ ๋ ฅยท๊ถํ, ํ์ ์ #504 ๋ช ์์ adoption ์์กด | picture ์ ์ฅ/์ฌ์ด๊ธฐยท์ Note ๋ณต์ฌ, full native/schema context ๋ณด์กด, ๋ ๋ฆฝ native ๋ค์ด๋ก๋ |
๊ธฐ์กด #416/#414/#419/#417์ ์ฌ์ฌ์ฉํ๋ค. 2026-10-09์๋ 299๊ฐ ์ด์์ fixed Word source๋ฅผ ๋์กฐํด #509๋ฅผ ์ฌ์ ์์ฑํ๋ค. ์ดํ 301๊ฐ ์ด์์ fixed Slides/Note source 58ba404f68eb80664541efb92afe43d69410bb08๋ฅผ ๋์กฐํด #510/#511์ ์ฌ์ ์์ฑํ๋ค. ์ ํ ์๋น์๋ค์ ๊ฐ์ #412 backend๋ฅผ ์ฌ์ฉํ๋ฉฐ ๊ฐ์์ native mappingยท๋ณต์ฌยท์ถ๋ ฅ ๊ฒ์ฌ๋ฅผ ๊ฐ๋๋ค. ์ ์๋น์ ์ด์๊ฐ ํ์ฌ #412/#416 ๋ฐ ๊ธฐ์กด ๋ณต๊ตฌยท์ค์น ์ฐ์ ์์๋ฅผ ์ง์ฐ์ํค์ง ์๋๋ค.
| ์์ | ํ์ํ ์ ๋ ฅ๊ณผ ๋ด๋น ๊ฒฝ๊ณ | ์ง๊ธ ์ค๋นํ ๋ฌธ์ยท๊ฒ์ฌ |
|---|---|---|
| #412 | Integration์ migration/export/config/route์ private PG/OIDC/S3 | ์ ํํ ํ๋ณด commitยทAPIยท์ํ ๊ณ์ฝ ์ ์ง. ์๋ณธ/DB/object ํด์ ๋น๊ต, ๊ถํ ๊ฑฐ๋ถ, ์๋ต ์ ์คยท์คํจยทํ๋ก์ธ์ค ์ฌ์์ ๊ฒ์ฌ ์๋๋ฆฌ์ค |
| #416 | ๊ฒ์ฆ๋ #412 ๊ณ์ฝ, Editor์ Site ํ์ผ ์์ ๋ฒ์ | native resource์ asset ์ฐธ์กฐ ๋งคํ, ์ ๋ก๋โ์ฐธ์กฐโsnapshot ์ ์ฅ ์์, ๋ฆ์ ์๋ตยท๋ฏธํด๊ฒฐ export fixture |
| #414 | #412์ #416์ ์ค์ Site fixture, Integration์ ๋ ๋ฆฝ ๋ณต๊ตฌ ์์ | manifest ํ๋ยท์ฐ๊ธฐ ์ค์ง ๊ฒฝ๊ณ, ready์ unresolved ๋น๊ต, ๋น ๋ชฉ์ ์ง ๊ฑฐ๋ถ ๊ท์น, ์ค๋จยท์์ ๊ฐ์ฒด fixture |
| #419 | ์๋ ์ ํยท๊ด๋ฆฌ์ยท์์ฐยท๋ณต๊ตฌ ์ธ์, Integration ์ค์น ์์ | artifact ์๋ณ, ์ผ๋ฐ start์ provisioning ๋ถ๋ฆฌ, ๋ ๋ชฉ์ ์ง์ DB/object/IdP/port ๊ฒฉ๋ฆฌ ๊ฒ์ฌ |
| #509 | #412/#416 ๊ฒฐ๊ณผ, Editor์ Word ํ์ผ ๋ฒ์ | ๊ธฐ์กด src/native ๋ณด์กด ๋งคํ, local 5 MiB์ ์๋ฒ 4 MiB ์ ํ ์ฒ๋ฆฌ, ๋ฌธ์ ๊ต์ฒดยท์๋ต ์ ์คยท๋ ๋ฆฝ native export fixture |
| #510 | #412/#416 ๊ฒฐ๊ณผ, Editor์ Slides ํ์ผ ๋ฒ์ | image object/paint.src ๋งคํ, slide/component/layout/master ์ฐธ์กฐ, ์ ๋ฑ ๋ณต์ฌยท๋ถ๋ถ ์คํจยทnative/playback fixture |
| #511 | #412/#416 ๊ฒฐ๊ณผ, Editor/Workspace์ Note ํ์ผ ๋ฒ์ยท์ค์ native mode | picture.src/onFile ๋งคํ, block/root ์๋ช , full native2 envelope/pin ๋ณด์กด, ์ Note ๋ณต์ฌยท๋ ๋ฆฝ native fixture |
2026-10-10 ์ถ๊ฐ ์
๋ ฅ: #511์ด native2 ๋ณต์ฌ๋ฅผ ์ง์ํ๋ฉด ๊ธฐ์กด #513 copy/create-receipt transport๋ฅผ ์ฌ์ฌ์ฉํ๋ค. source bebff553์ host 9b43b55f๋ source/controlled ์ค๋น์ด๋ฉฐ ์ค์ ํตํฉ ์ธ์๋ ๋จ์ ์๋ค. ๊ธฐ์กด same-tenant/workspace createยทopaque attemptยทGET-only historical recovery์ full native/pin rules๋ฅผ ๋ณด์กดํ๊ณ ์ create protocol์ ๋ง๋ค์ง ์๋๋ค. ์ญ์ฌ์ receipt๋ ํ์ฌ asset/native write ๊ถํ์ด ์๋๋ค.
์ฌ์ ์์ฑํ ์ด์๋ ๊ตฌํ ์ฐฉ์ ๋๋ ์๋ฃ๋ฅผ ๋ปํ์ง ์๋๋ค. ์ค๋น๋ ์ ๋ ฅ ๊ณ์ฝ๊ณผ ํ์ผ ๋ฒ์๊ฐ ์์ผ๋ฉด ์ํ ๊ฐ๋ฅํ ๋ ๋ฆฝ ๋ถ๋ถ์ ์งํํ๋ค. ์ค์ ํ๊ฒฝ์ด ํ์ํ ๊ฒ์ฌ๋ ๊ทธ ํ๊ฒฝ์ด ์ค๋น๋ ํ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ๋ค.
#416 ๋ ๋ฆฝ ๋ถ๋ถ์ FOUR ์ ๊ท helper/test๋ก ์ง์ ํฉ์ํ์ฌ ์์คยท๊ฒ์ฌ๋ฅผ ์๋ฃํ๋ค. ๋ค์์ Editor์ ๋ณ๋ ์ต์ ๊ธฐ์กด exporter/renderer/test lease์ SAME completed plan ์ฐ๊ฒฐ์ด๋ค. Workspace์ binary await currentness/cancel ์กฐ๊ฑด, Root์ ์ค์ private snapshot format/hash/receipt/recovery์ #412 backend๋ true dependencies๋ค. Scope์ ์๋ ์๋ฃ ๊ธฐ์ค์ ์ค์ฌ consumer ์๋ฃ๋ก ํ์ํ์ง ์๋๋ค.
#416 ํ์ฌ native ๊ฒฝ๊ณ: Editor์ B ์ค์ consumer ๊ฒ์ฌ์์ unchanged loader๊ฐ metadata.loadedAt์ ๋ชจ๋ ๋ ธ๋์ ์ถ๊ฐํ๊ณ root ์ฌ์ฉ์ ๊ฐ์ ๋ฎ์ด์จ ์๋ณธ๊ณผ์ ์ ์ฒด native ๋์กฐ๊ฐ exporter ์ ์ ์คํจํ๋ค. ๊ธฐ์กด ์ด์์ full-native/raw/hash ๊ณ์ฝ ๊ณต๋ฐฑ์ผ๋ก ์ถ์ ํ๋ค. Filename slice์ complete operated model/history export ์ ํ ๋ถ๋ณ์ original load-roundtrip PASS๋ก ๋ฐ๊พธ์ง ์๋๋ค. Source/pre-load materialized/operated model/export artifact๋ฅผ ๊ฐ๊ฐ ๋์กฐํ๊ณ , shared loader์ private snapshot hash domain์ Root/์ ํํ owner์ ๋ณ๋ ํฉ์ํ๋ค. FOUR51d/SIX ๋ฒ์ ๋ฐ loader๋ ์์ ํ์ง ์์๋ค.
#416 ํ์ Editor ๋ฒ์๋ EIGHT๋ก ์ ์ธ๋๋ค. ๊ธฐ์กด package assets/export-html/renderers/publish-commands/assets.test์ new asset-export-consumer.test์ SIX์ app.tsx/input-readiness.test.tsx TWO๊ฐ ์ถ๊ฐ๋๋ค. Storage FOUR์ ๊ฒฝ๋ก ์ถฉ๋์ ์๋ค. ๊ธฐ์กด SIX gate terminal ๋ค original App baseline5๋ฅผ ๋จผ์ ๊ธฐ๋กํ๋ค. Flush ํ input intent/hasPendingInput์ async plan๊ณผ package/host delivery์์ ํ์ธํ๋ Source ๋์์ด๋ฉฐ, actual private snapshot/auth/backend/shared loader ํ์ฑํ๋ ์๋๋ค.
#416 ์ต์ ํ์ ๋ฒ์: Editor๋ ์ค์ current reader command์ input witness๋ฅผ ์ํด runtime.ts/runtime.test.ts TWO๋ฅผ ์ถ๊ฐํด TEN์ ์ ์ธํ๋ค. Atomic earlier gate์ baseline์ ๋จผ์ ๋ณด์กดํ๋ฉฐ public zeroarg refusalยท์ ์ฒด source metadataยท๊ธฐ์กด user pending input์ ์ ์งํ๋ค. Storage๋ ๋ณ๋ NUL TWO successor51dโf421์ ์๋ฃํ๋ค. Actual sanctioned runtime native import/export์๋ metadata value/omission reconcile ๊ฒฝ๋ก๊ฐ ์์ผ๋ฏ๋ก generic loader ์คํจ์ product roundtrip ํ์ ์ ๊ตฌ๋ถํ๋ค; ์ค์ baseline์ ๋ฏธ๊ฒ์ฆ์ด๋ค.
ํ์ owner ๊ฒฐ๊ณผ: actual sanctioned B runtime์์ ์ ์ฒด ์๋ ๊ฐยท์๋ต, authored loadedAtยทomitted root loadedAtยท๋ฐ๋ณต load/export๊ฐ ๋๋ฌํ๋ค. Generic loader ์คํจ๋ lower-level์ด๋ฉฐ ์๋ก์ด product metadata fix๋ก ํ์ ํ์ง ์๋๋ค. Raw key-order assertion์ ์ฒซ ์คํจ์ DTO/value/omission ๊ธฐ๋๊ฐ ์์ ์ fixed raw/server hash์ ๊ตฌ๋ถํด ๋ณด์กดํ๋ค. App/runtime24์ package consumer11์ ๊ฐ๊ฐ์ scoped ๊ฒฐ๊ณผ๋ค. TEN amended final gate53201์ RUNNING, not PASS์ด๋ฉฐ actual private snapshot/current authority/backend ์ธ์์ ๋ณ๊ฐ๋ค. Storage๋ ์ฌ๊ฒ์ฌ๋ ์ฝ๋ ๋ณ๊ฒฝ ์์ด owner ๋ณด๊ณ ์ ๋ฒ์๋ง ๊ธฐ๋กํ๋ค.
| ์ ํ | ์ด์ | ์ค์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ฒ์ | ์ถ๊ฐ ํ์ธํ ๋ณด์กด ๊ฒฝ๊ณ |
|---|---|---|---|
| Site | #416 | page/dataset ์ด๋ฏธ์ง์ self-contained native/static export | pagesยทdatasetยท์ค์ฒฉ rich contentยทresource ์ฐธ์กฐ์ export ์ด๋ฆ ์ถฉ๋ |
| Word | #509 | ์ด๋ฏธ์งยท์ server document ๋ณต์ฌยทself-contained native | full native attrsยทaltยทlayout/crop/caption, local/server ํฌ๊ธฐ ์ฐจ์ด |
| Slides | #510 | image objectยทimage paint fillยท์ server deck ๋ณต์ฌยทself-contained native | slide/object IDsยทconnectorยทcomponent/layout/masterยทtext/notesยทplacement/crop/paint |
| Note | #511 | pictureยท์ server Note ๋ณต์ฌยทself-contained supported native | full body/attrs/marksยทblock/root identity, native2์ด๋ฉด exact full schema bundle/pin๊ณผ ํ์ฌ native write ๊ถํ |
์ค์ ์ ํยทํ์ผ versionยท์ง์ ์์น๋ ๊ฐ ์ ํ ์ฐฉ์ ์ ์ ํ์ ํ๋ค. ๊ธฐ์กด์ ์ง์ํ๋ local ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๊ฐ ๋ฐ์ง ๋ชปํ๋ฉด ์๋ณธ์ ๋ณด์กดํ๊ณ ์ ํ์ ํ์ํ๋ค. generic attachment UI, audio/video, ๊ณต์ ์ ์ ์ฒด ๋ณต๊ตฌ์ ์ถ๊ฐ ๊ณต๋ฐฑ์ ๊ฐ ์๋ parentยท๊ธฐ์กด ์ด์์ ๋์กฐํ ๋ค์ ๋ณ๋ ํ์ํ ๋ฒ์๋ก ์ค๋นํ๋ค.
๊ธฐ์กด #416/#509/#510/#511์ ๊ฐ์ ํ์ ์์๋ฅผ ๊ธฐ๋กํ๋ค. #412 ํ๋ณด 1e6f4b9229cf8c871e52fbf8dff0a1bb2a83fb51๋ ํ์ฌ ๊ถํ๊ณผ ๊ธฐ์กด ๋ฌธ์๋ฅผ ํ์ธํ ๋ค ์
๋ก๋ํ๋ค. ์กด์ฌํ์ง ์๋ ๋์์ ๋จผ์ ์์ฐ์ ์ฌ๋ฆฌ๋ ์์๋ก ๊ณํํ์ง ์๋๋ค. ๊ธฐ์กด create/copy/import/host ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค.
| ์์ | ๋ฐ๋์ ํ์ธํ ๊ฒฐ๊ณผ | ์คํจยท์๋ต ์ ์ค ์ ์ ์งํ ์ํ |
|---|---|---|
| 1. ๋์ ๋ฌธ์ ์์ฑ | full source native revision/raw์ original bytes, ํ์ฌ source-read/destination-create-write ๊ถํ, ๊ณ ์ ์์ฑ ์๋, ์ ํํ destination document ์์ฑ receipt | ๊ฐ์ ๊ธฐ์กด ๋ฌธ์ ํ๋กํ ์ฝ๋ก ์์ฑ receipt/identity๋ฅผ ๋ณต๊ตฌํ๋ค. ํ์ธ๋์ง ์์ ID์ ์ ๋ก๋ํ๊ฑฐ๋ ์ฌ์๋ ๋๋ฌธ์ ๋ค๋ฅธ ๋์ ๋ฌธ์๋ฅผ ์์ฑํ์ง ์๋๋ค. ์๋ณธ๊ณผ copy draft๋ฅผ ์ ์งํ๋ค. |
| 2. ๋์ ์์ฐ ์ค๋น | #412์ fixed destination attempt, ๋์ ๋ฌธ์์ ์ฐ๊ฒฐ๋ ๊ฐ asset ready receipt์ independent byte-count/SHA256 | pending/failed objectยทmetadataยท์๋๋ฅผ ๋ณด์กดํ๋ค. source asset ID/URL์ ๋์ ๊ถํ์ผ๋ก ์ฌ์ฉํ์ง ์๋๋ค. ๊ฐ์ identity/key/bytes๋ก ์ฌํ์ธํ๋ค. |
| 3. native ์ฐธ์กฐ ์ฐ๊ฒฐ | ์ง์ native mapping์ ๋ง๊ฒ ready destination asset identity๋ฅผ ์ฐ๊ฒฐํ ์ฐธ์กฐยทfull native ๋ณด์กด ๊ฒฐ๊ณผ | ์๋ณธ๊ณผ draft, ์๋ฃยท๋ฏธ์๋ฃ ์ฐ๊ฒฐ์ ๊ตฌ๋ถํ์ฌ ์ ์งํ๋ค. temp URL/credential์ durable ์๋ฌธ์ผ๋ก ์ ์ฅํ์ง ์๋๋ค. |
| 4. snapshot ํ์ธ | ํ์ฌ ๊ถํ์ ๋ฐ๋ฅธ product snapshot receipt์ canonical readback | ์ ์ฅ ์๋ต ์ ์ค์ ๊ฐ์ ๊ณ ์ snapshot ์๋๋ฅผ ๋ณต๊ตฌํ๋ค. ์ ๋จ๊ณ ์ฑ๊ณต๋ง์ผ๋ก whole saved/copied๋ฅผ ํ์ํ์ง ์๋๋ค. |
๋ฌธ์ ์์ฑยท๊ฐ์ฒด ์ ์ฅยทnative ์ฐ๊ฒฐยทsnapshot์ ํ๋์ ์์ transaction์ด ์๋๋ค. ์ค์ ์คํจ, reload, response loss์ OS process restart๋ฅผ ๊ฐ ๊ฒฝ๊ณ์์ ๊ฒ์ฌํ๋ค. source ์๋ณธ, copy draft, ๊ณ ์ create/asset/snapshot ์์ฒญ๊ณผ ๋ถ๋ถ ๋ชฉ์ ์ง ์ฆ๊ฑฐ๋ฅผ ๋ณด์กดํ๋ค. ๋ค๋ฅธ ์ ๋ ฅ/๋ฌธ์/๊ถํ์ผ๋ก receipt๋ฅผ ์ฌ์ฌ์ฉํ์ง ์๋๋ค. duplicate ready assets๋ ์ฐ๋ฐ์ publication์ ๋ง๋ค์ง ์๋๋ค. ์ generic copy UI/store/protocol์ ์ถ๊ฐํ์ง ์๋๋ค.
๊ฐ ์ ํ์ ์ค์ ๋ณต์ฌ ์ธ์๋ distinct source/destination document์ ๋์ ์์ฐ ์ฐ๊ฒฐ, ํ์ฌ source-read/destination-create-write, ๋ค๋ฅธ currently authorized destination reader, ๋ ๋ฆฝ self-contained native export/reopen์ ํ์ธํ๋ค. Site๋ static export์ carried/page/dataset/nested content๋ ํ์ธํ๋ค. ๋์ผ ๋ฌธ์ ์์ ์ด๋์ ์ ์๋ฒ ๋ฌธ์ ๋ณต์ฌ ๊ฒ์ฌ์ ๊ตฌ๋ถํ๋ค. ๊ธฐ์กด nativeยทbyte limits์ ๋ชจ๋ ์๋ ์๋ฃ ๊ธฐ์ค์ ์ ์งํ๋ค.
์ด ๋ฌธ์ยท์ด์ ๊ณ์ฝ ์ค๋น๋ Execute Storage๊ฐ ๋งก๋๋ค. ์ค์ product source ๋ณ๊ฒฝ์ Editor/Workspace์ ์ ํํ ํ์ผ ๋ฒ์๋ฅผ ํฉ์ํ๊ณ accepted #412/#416 ์ ๋ ฅ์ด ์ค๋น๋ ๋ค ์งํํ๋ค. #416์ ๋ฒ์ ํ์ธ์ ๋ฐ๋ผ ๊ณผ๊ฑฐ single-Execute/unassigned ๋ฌธ์ฅ์ ์ฑ ์ ๊ฒฝ๋ก์ ํํด ๋์ฒดํ๋ค. ๊ณต์ ์ค์ /develop/API/privatePG/browser/private-object runtime์ ๊ณ์ Integration์ด ๋จ๋ ๊ด๋ฆฌํ๋ค.
๊ฐ ๋จ๊ณ๋ ์๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ค์ ๋ก ๋จ๊ธด๋ค. ์๋ ์ด์์ ๋ชจ๋ ์๋ฃ ๊ธฐ์ค๋ ํจ๊ป ํ์ธํ๋ค. ํ์ฌ ์ด๋ฆฐ ์ด์์ ๊ตฌ์ฒด ํ์ผ๊ณผ ์คํ ํ๊ฒฝ์ ์ฐฉ์ ์์ ์ ์ฝ๋์์ ํ์ ํ๊ณ ์ด ํ์ด์ง์ ์ด์์ ๊ธฐ๋กํ๋ค.
์ฌ์ฉ์๊ฐ ๋ฐ์ ๊ฒฐ๊ณผ: ๊ถํ ์๋ ์์ฑ์๋ ๊ธฐ์กด ๋ฌธ์์ ์ด๋ฏธ์ง์ ์ฒจ๋ถ๋ฅผ ์ฌ๋ฆฐ๋ค. ๊ถํ ์๋ ๋ทฐ์ด๋ ๊ฐ์ ๋ฌธ์์ ์ค๋น๋ ์์ฐ์ ์ฝ๋๋ค. ๊ฐ์ ์๋๋ฅผ ์ฌ์ ์กํ๋ฉด ๊ฐ์ ์์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ค.
๋จ๊ธธ ๊ฒฐ๊ณผ๋ฌผ:
- PostgreSQL ์์ฐ ๋ฉํ๋ฐ์ดํฐยท๋ฌธ์ ์ฐ๊ฒฐ migration๊ณผ tenant RLS. creator, attempt key, ๋ฐ์ดํธ ์, SHA256, ๊ฐ์ฒด ํค, pending/failed/ready ์ํ๋ฅผ ๋ณด์กดํ๋ค.
- ์ค์ ๋น๊ณต๊ฐ S3 ์ด๋ํฐ์ ์ ๋ก๋ยท์ฝ๊ธฐ API. package export, configuration, bootstrap, route ์ฐ๊ฒฐ๊น์ง ํฌํจํ ํตํฉ commit.
-
์์ฐ ๊ณ์ฝ ๋ฌธ์์
apps/office-service/DOCUMENT-ASSETS.md. ์ด๋ฏธ์ง 4 MiB, ์ฒจ๋ถ 8 MiB, MIMEยท๋ฐ์ดํธ ๊ฒ์ฌ์ ์ค๋ฅ ์ํ๋ฅผ ๋ช ์ํ๋ค. - ์คํ ๊ฐ๋ฅํ ๊ฒ์ฌ์ ์คํ ๊ธฐ๋ก. ์์ ์ฝ๋์ ๋จ์ ๊ฒ์ฌ์ ์ค์ DB/API/OIDC/S3 ๊ฒ์ฌ๋ฅผ ๊ตฌ๋ถํ๋ค. ์์ยท์ฌ์์ยท์ข ๋ฃ ๋ช ๋ น๊ณผ ์ ํํ ์คํ ๋ฒ์ ์ ๋จ๊ธด๋ค.
ํ์ธํ ์ ์ ํ๋ฆ: ๋ ํฉ์ฑ tenant์ ๋ ์ค์ ์ธ์ฆ ๊ณ์ ์ ์ฌ์ฉํ๋ค. ์์ฑ์๊ฐ ์ด๋ฏธ์งยท์ฒจ๋ถ๋ฅผ ์ฌ๋ฆฌ๊ณ , ์๋ณธยทDB ๋ฉํ๋ฐ์ดํฐยทํ์ํ ๊ฐ์ฒด์ ํฌ๊ธฐ์ SHA256์ ๋ ๋ฆฝ ๋น๊ตํ๋ค. ๋ค๋ฅธ ๋ทฐ์ด ๊ณ์ ์ผ๋ก ์ฝ๋๋ค. ๊ฐ์ ํคยท๊ฐ์ ๋ฐ์ดํธ ์ฌ์๋๊ฐ ๊ฐ์ asset ID์ ๋ฌธ์ ์ฐ๊ฒฐ์ ๋ฐํํ๋์ง ํ์ธํ๋ค.
ํ์ธํ ์คํจ ํ๋ฆ: ์๋ชป๋ ํ์ ยทํฌ๊ธฐยท๊ฒฝ๋ก, ๋ค๋ฅธ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ ํค ์ฌ์ฌ์ฉ, viewer ์ ๋ก๋, ๋ค๋ฅธ ๋ฌธ์ยทtenant ID, ๊ถํ ํ์ยท๋ง๋ฃ, operator๋ง ๊ฐ์ง ๊ณ์ , ์ต๋ช ๊ฐ์ฒด ์ ๊ทผ์ ๊ฑฐ๋ถํ๋ค. ๊ฐ์ฒด ์ฐ๊ธฐ ์คํจ, ๋ฉํ๋ฐ์ดํฐ commit ์คํจ, ์๋ต ์ ์ค ํ์๋ pending/failed ์ฆ๊ฑฐ๋ฅผ ์ ์งํ๋ค. ๊ฐ์ DB/๊ฐ์ฒด ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ API OS ํ๋ก์ธ์ค๋ฅผ ์ฌ์์ํ๊ณ ๋์ผ ์๋๋ฅผ ๋ณต๊ตฌํ๋ค. ๊ฐ์ฒด๊ฐ ์๊ฑฐ๋ ํด์๊ฐ ๋ค๋ฅด๋ฉด ready ์ฑ๊ณต์ ๋ฐํํ์ง ์๋๋ค.
๋ค์ ๋จ๊ณ๋ก ๋๊ธธ ์๋ฃ: ์ค์ ๋ก ๊ฒ์ฆ๋ APIยท์์ฐ ์ํยท๊ณ ์ ์๋ ๊ณ์ฝ, ํตํฉ commit, ์์ ์ด๋ฏธ์ง fixture์ ๋ ๋ฆฝ ํด์ ๋น๊ต. #416๊ณผ #414๊ฐ ์ด๋ฅผ ์ฌ์ฌ์ฉํ๋ค.
์ฌ์ฉ์๊ฐ ๋ฐ์ ๊ฒฐ๊ณผ: ์ค์ Site ํ๋ฉด์์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ณ ์ ์ฅํ ๋ค ์๋ก ์ด ์ ์๋ค. ๋ค๋ฅธ ๊ถํ ์๋ ๊ณ์ ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณธ๋ค. ๋ช ์์ native ๋ค์ด๋ก๋์ ์ ์ ๋ด๋ณด๋ด๊ธฐ๋ ํ์ํ ์๋ณธ ์ด๋ฏธ์ง ๋ฐ์ดํธ๋ฅผ ํฌํจํ๋ค.
๋จ๊ธธ ๊ฒฐ๊ณผ๋ฌผ:
- native resource/reference์ ์๋ฒ document/asset ID์ ํธํ ๋งคํ. native node/resource ID, ์ด๋ฆ, ํฌ๊ธฐ, ํ์ด์ง, dataset, ์ค์ฒฉ ๋ณธ๋ฌธ๊ณผ ์๋ณธ ๋ฐ์ดํธ์ ๋ณด์กด ๊ท์น.
- ๊ธฐ์กด ํธ์ง๊ธฐ์ ์ฝ๊ธฐ ๊ฒฝ๋ก์ ์ฐ๊ฒฐํ ์ ๋ก๋ยทํด์ ๋์. ์ฌ์ฉ์ ์๋, ์ ๋ก๋, ์ฐธ์กฐ ์ฐ๊ฒฐ, snapshot ์ ์ฅ์ ์์์ ๊ฐ ๋จ๊ณ์ ๋ฏธ์๋ฃ ์ํ.
- ํ์ฌ ๊ณ์ ยท๋ฌธ์ยทruntime ์๋ช ์ ์ฐ๊ฒฐํ ๋น๋๊ธฐ ์๋ต ์ฒ๋ฆฌ. ์ด์ ๋ฌธ์์ ๋ฆ์ ์๋ต์ ์ ๋ฌธ์์ ์ ์ฉํ์ง ์์ผ๋ฉฐ, ์์ ์์ ๋ ๋๋ง URL์ ์ข ๋ฃ ์ ํด์ ํ๋ค.
- ์ง์ ์ด์ด ๊ฒ์ฌํ ์ ์๋ native ํ์ผ๊ณผ ์ ์ export artifact. API credential, ์์/private URL, ๊ฐ์ฒด ์ ์ฅ์ credential์ ์ถ๋ ฅ์ ๋ฃ์ง ์๋๋ค.
- ์ค์ Site UIยท๋ ๊ณ์ ยท์ฌ์ด๊ธฐ ๊ฒ์ฌ์ codec/resolver/export ํ๊ท ๊ฒ์ฌ, ์ฌํ ๋ช ๋ น๊ณผ ์ง์ ์ ํ.
ํ์ธํ ์ ์ ํ๋ฆ: ์์ฑ์๊ฐ ์ค์ ํ๋ฉด์์ ํ์ด์ง์ dataset์ ํฉ์ฑ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๋๋ค. ์ ์ฅยท์๋ก๊ณ ์นจยท์ค์ฒฉ ๊ธ ์์ ํ ์ด๋ฏธ์ง์ native ์ฐธ์กฐ๊ฐ ์ ์ง๋๋์ง ๋น๊ตํ๋ค. ๋ณ๋ ๋ธ๋ผ์ฐ์ profile์ ๋ทฐ์ด๊ฐ ์๋ ๋ธ๋ผ์ฐ์ cache ์์ด ์ฐ๋ค. ๋ด๋ณด๋ธ ํ์ผ์ ์๋ฒ ์ฐ๊ฒฐ ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ด๊ณ ์๋ณธ ์ด๋ฏธ์ง ํด์๋ฅผ ๋น๊ตํ๋ค. ๋จ์ผ ํ์ด์ง์ ์์ฐ ํฌํจ๊ณผ export ์ด๋ฆ ์ถฉ๋๋ ํ์ธํ๋ค.
ํ์ธํ ์คํจ ํ๋ฆ: ์ ๋ก๋ ์คํจ, snapshot ์ถฉ๋, ์๋ต ์ ์ค, ready ๋ฐ์ดํธ ์ ์ค, API ์ฌ์์์์ ์ด์ยท์๋ณธยท๊ณ ์ ์๋๋ฅผ ๋ณด์กดํ๋ค. ์ฐธ์กฐ๋ง ์ ์ฅ๋๊ฑฐ๋ ์ด๋ฏธ์ง๊ฐ ๋น์๋ค๋ ์ด์ ๋ก ์ ์ฅ ์๋ฃ๋ฅผ ํ์ํ์ง ์๋๋ค. viewer ๋ณ๊ฒฝยท๋ค๋ฅธ ๋ฌธ์ ์์ฐยท๊ถํ ํ์ยท๊ณ์ ๊ต์ฒด ํ ๋ฆ์ ์๋ต์ ๊ฒ์ฌํ๋ค. ์๋ฒ๊ฐ ์ง์ํ์ง ์๋ local ํ์์ ์๋ณธ์ ๋ณด์กดํ๊ณ ์ ํ์ ํ์ํ๋ค. ํ์ํ ๋ฐ์ดํธ๋ฅผ ์ป์ง ๋ชปํ๋ฉด export๋ฅผ ๋ถ์์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
๋ค์ ๋จ๊ณ๋ก ๋๊ธธ ์๋ฃ: ์ค์ product snapshot๊ณผ ์ด๋ฏธ์ง ์ฐธ์กฐยท๋ฐ์ดํธ๊ฐ ํจ๊ป ์ ์ง๋๋ ์์ Site fixture, ๋ ๋ฆฝ ๋ด๋ณด๋ด๊ธฐ ๊ฒฐ๊ณผ, ํ์ฌ ๊ถํ๊ณผ ๋ฏธ์๋ฃ ์ํ ์ฒ๋ฆฌ ๊ณ์ฝ. #414๊ฐ ์ด fixture๋ฅผ ๋ณต๊ตฌ ๊ฒ์ฌ์ ์ฌ์ฉํ๋ค.
์ ์๋ฒ Site ๋ณต์ฌ: full source native revision/raw์ ์ด๋ฏธ์ง original bytes๋ฅผ ๊ณ ์ ํ๊ณ source-read/destination-create-write๋ฅผ ํ์ธํ๋ค. ์ ์์ฑ receiptโ๋์ ์์ฐ readyโnative ์ฐ๊ฒฐโsnapshot ํ์ธ ์์๋ก ์๋ฃํ๋ค. distinct destination์ ์์ฐ ์ฐ๊ฒฐ๊ณผ ์๋ณธ ๋ณด์กด์ DB/object/native ๊ธฐ์ค์ผ๋ก ๋น๊ตํ๋ค. ๋ค๋ฅธ ๊ถํ ์๋ reader๊ฐ ์๋ณธ browser cache ์์ด destination์ ์ฌ์ด๋ฉฐ, native/static export๋ฅผ ์๋น์ค ์์ด ๋ ๋ฆฝ ์ฌ์ด๊ธฐํ๋ค. ๋ถ๋ถ ์คํจยทsource/destination ๊ถํ ํ์ยท์๋ต ์ ์ค์์ ์๋ณธ/copy draft/๊ณ ์ ์๋๋ฅผ ์ ์งํ๊ณ false saved/copied๋ฅผ ๊ธ์งํ๋ค. carried/page/dataset/nested contentยทexport ์ด๋ฆ ์ถฉ๋ ๊ธฐ์ค์ ๊ทธ๋๋ก ์ ์งํ๋ค.
์ฌ์ฉ์๊ฐ ๋ฐ์ ๊ฒฐ๊ณผ: ์ด์์๊ฐ ๋ฌธ์ DB์ ์ฐ๊ฒฐ๋ ๋น๊ณต๊ฐ ๊ฐ์ฒด๋ฅผ ๋ณต๊ตฌ ๋ฌถ์์ผ๋ก ๋ณด์กดํ๊ณ , ์ ๋ชฉ์ ์ง์ ๋ณต์ํ ๋ค ์ค์ API๋ก ๊ฒ์ฆํ ์ ์๋ค.
๋จ๊ธธ ๊ฒฐ๊ณผ๋ฌผ:
- ๊ธฐ์กด owner/backup/app ์ญํ ์ ์ฌ์ฌ์ฉํ๋ private capture/restore ๋๊ตฌ์ ์คํ ๋ฌธ์.
- ๋ฒ์ ์ด ์๋ manifest. code/schema/migration ์๋ณ, ๋ณต๊ตฌ ์์ , ์ฐ๊ธฐ ์ค์ง ์ ์ฐจ, ๋ฌธ์ยท์์ฐ ์ฐ๊ฒฐ, ์ํ, ๊ฐ์ฒด๋ณ ๋ฐ์ดํธ ์ยทSHA256์ ํฌํจํ๋ค. secret์ ๋ณ๋ ๋ณดํธ ์ค์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
- capture๊ฐ ์ถฉ๋ถํ์ง ํ์ธํ๋ ๋น๊ต ๋จ๊ณ์ ์ DB/๊ฐ์ฒด namespace์ ๋ณต์ ๋จ๊ณ. ๊ฒ์ฆ์ด ๋๋ ๋ชฉ์ ์ง๋ง ์ฌ์ฉํ ์ ์๋๋ก ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ๋ถํ๋ค.
- ์ค์ captureยทrestore ๊ธฐ๋ก, ๊ฑธ๋ฆฐ ์๊ฐ, ๋ฐ์ดํฐ ๊ท๋ชจ์ ํด์ ๋น๊ต, ์ ์ยท์คํจ fixture์ ์ต์ข ๋ชฉ์ ์ง ์ํ.
ํ์ธํ ์ ์ ํ๋ฆ: ๋ tenant, native snapshot, membership, ready ์์ฐ๊ณผ ๋ฏธํด๊ฒฐ ์๋๋ฅผ ํจ๊ป ์บก์ฒํ๋ค. ์ ์ธํ ์ฐ๊ธฐ ์ค์ง ๊ฒฝ๊ณ์์ DB์ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ๋ค. ๋น test-owned DB์ ์ private namespace์ ๋ณต์ํ๋ค. snapshotยท๊ฐ์ฒด์ ํด์, migration ์ด๋ ฅ, ์ฐ๊ฒฐ, ์ํ๋ฅผ ๋น๊ตํ๊ณ ์ค์ OIDC/API๋ก ๋ ๊ณ์ ์ฝ๊ธฐ์ ๊ถํ ๊ฑฐ๋ถ๋ฅผ ํ์ธํ๋ค.
ํ์ธํ ์คํจ ํ๋ฆ: ready ๊ฐ์ฒด ์ ์คยท์์, manifestยทhashยทmigration ๋ถ์ผ์น, ์ฌ์ฉ ์ค์ธ ๋ชฉ์ ์ง, capture/restore ์ค๋จ์ ์คํจ ๋๋ ๋ฏธ๊ฒ์ฆ stage๋ก ๋จ๊ธด๋ค. ์๋ณธ DBยทbucketยท๋ฌถ์์ ๋ณด์กดํ๋ค. pending/failed๋ฅผ ready๋ก ๋ฐ๊พธ์ง ์๋๋ค. ๋ณต์ํ ๋ชฉ์ ์ง์์๋ viewer ์ ๋ก๋ยท๊ถํ ํ์ยท๋ค๋ฅธ ๋ฌธ์/tenantยทoperator ๊ณ ๊ฐ ๋ฌธ์ ์ ๊ทผ๊ณผ ์ต๋ช ๊ฐ์ฒด ์ ๊ทผ์ด ๊ฑฐ๋ถ๋์ด์ผ ํ๋ค.
๋ค์ ๋จ๊ณ๋ก ๋๊ธธ ์๋ฃ: ๊ฒ์ฆ๋ ๋ณต๊ตฌ ๋๊ตฌยทrunbookยท์์ ๋ณต๊ตฌ ๋ฌถ์์ ๊ฒ์ฌ ๊ฒฐ๊ณผ์ ๋ชฉ์ ์ง ๊ฒ์ฆ ๊ณ์ฝ. ์ด ๊ฒฐ๊ณผ๋ DB+์์ฐ ๋ณต๊ตฌ ๋ฒ์์ด๋ฉฐ ์ ์ฒด IdP/Yorkie/production ๋ณต๊ตฌ ์๋ฃ๋ก ํ๋ํ์ง ์๋๋ค.
์ฌ์ฉ์๊ฐ ๋ฐ์ ๊ฒฐ๊ณผ: ํ ์คํธ ๊ฐ๋ ํ๋ก๊ทธ๋จ ์์ด ์ผ๋ฐ ๋ช ๋ น์ผ๋ก Office UI/API๋ฅผ ์์ยท์ข ๋ฃํ๊ณ , ์ฌ์์ ํ ๊ฐ์ ์ ์ฅ ๋ฐ์ดํฐ๋ฅผ ์ด ์ ์๋ค.
๋จ๊ธธ ๊ฒฐ๊ณผ๋ฌผ:
- ์ ํํ source commit๊ณผ lockfile์ ์ฐ๊ฒฐํ UI/API artifact manifest ๋ฐ private ์ค์น descriptor.
- start/status/stop/restart runbook๊ณผ ๋ช ์์ ํฉ์ฑ ๊ณ์ ยทtenantยทowner provisioning ์ ์ฐจ. ์ผ๋ฐ start์์ ์จ์ fixture๋ฅผ ๋ง๋ค๊ฑฐ๋ ๊ถํ์ ๋์ด์ง ์๋๋ค.
- ์๋ก ๋ค๋ฅธ DB/object/IdP/config/port๋ฅผ ๊ฐ๋ ๋ test-owned ๋ชฉ์ ์ง์ ๊ฐ์ ๋น๋ artifact์ ๋น๊ต ๊ธฐ๋ก.
- ์ผ๋ฐ Office UI ๋ก๊ทธ์ธ, ๋ค ์ ํ snapshot, Site private ์ด๋ฏธ์ง, ์ฌ์์ยท๋ฐ์ดํฐ ์ ์ง์ ์ค์ ๊ฒฐ๊ณผ์ ์คํจ ๋ณต๊ตฌ ๊ธฐ๋ก.
ํ์ธํ ์ ์ ํ๋ฆ: ์ ๋ชฉ์ ์ง์์ ์ค์ ๋ก๊ทธ์ธํ๋ค. ์ ํ๋ app DB ์ญํ ๊ณผ RLS๋ฅผ ํ์ธํ๋ค. Note/Word/Slides/Site ๊ฐ๊ฐ ์์ ๋ฌธ์๋ฅผ ์ ์ฅยท์ฌ์ด๊ธฐํ๊ณ Site ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๋ค. ์ข ๋ฃยท์์ ํ process ID๊ฐ ๋ฐ๋์ด๋ DB/object/IdP ์๋ณ๊ณผ ์๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋๋์ง ํ์ธํ๋ค. ๊ฐ์ artifact๋ก ๋ ๋ฒ์งธ ๋ ๋ฆฝ ๋ชฉ์ ์ง๋ฅผ ๋ง๋ค๊ณ ๊ฐ์ ๊ฒ์ฌ๋ฅผ ์คํํ๋ค.
ํ์ธํ ์คํจ ํ๋ฆ: ์ด๋ฏธ ์ฌ์ฉํ๋ portยท๋๋ ํฐ๋ฆฌยทrealmยทvolume, ์ผ๋ถ configuration, migration ์คํจ๋ ๊ธฐ์กด ๋ชฉ์ ์ง๋ฅผ ๋ณด์กดํ๊ณ ๊ตฌ์ฒด์ ์คํจ๋ฅผ ๋ฐํํ๋ค. ๋ ์ค์น์ cookie/profile/์์ฐ/tenant ๋ฐ์ดํฐ๊ฐ ์์ด์ง ์๋์ง ํ์ธํ๋ค. ํ์ํ ์์กด์ฑ์ด ์์ผ๋ฉด ์คํํ์ง ๋ชปํ ์ํ๋ก ๊ธฐ๋กํ๋ค. health/readiness ์๋ฏธ๋ฅผ ์ค์ ์ค๋น ์ํ์ ๋ง์ถ๋ค.
์ฌ์ฉ์๊ฐ ๋ฐ์ ๊ฒฐ๊ณผ: ์ฌ์ฉ์๊ฐ ์ ์ฅ๋ ํน์ Site revision์ ๋ช ์์ ์ผ๋ก ์ ํํด ๋ก์ปฌ ๋ฐฉ๋ฌธ origin์ ๊ฒ์ํ๋ค. ์คํจํ ๊ต์ฒด๋ ์ด์ ๋ฒ์ ์ ์ ์งํ๊ณ , ๋ช ์์ rollback์ ๊ฒ์ฆ๋ ์ด์ ๋ฒ์ ์ ๋ณต์ํ๋ค.
๋จ๊ธธ ๊ฒฐ๊ณผ๋ฌผ:
- ๋ณ๋์ publication ๊ถํยทํ์ธ๊ณผ ํ์ฌ ๊ถํ ์ฌ๊ฒ์ฌ ๊ณ์ฝ. ์ ์ฅยทexport ์ฑ๊ณต๊ณผ ๊ฒ์ ํ์ฑํ ์ฑ๊ณต์ ๊ตฌ๋ถํ๋ค.
- release ID, ๊ณ ์ attempt, prepared/failed/current ์ํ์ ์ ํํ source revisionยท์ถ๋ ฅ manifestยทํ์ผ SHA256.
- bounded relative ๊ฒฝ๋ก๋ก private stagingํ ์์ ํ ํ์ผ ๋ฌถ์๊ณผ ์์ ํ์ฑํยทrollback ๊ฒฝ๋ก.
- ๋ณ๋ loopback ๋ฐฉ๋ฌธ origin์ ์ค์ ์๋ต, HTML/CSP/iframe/script/form/resource ์ ์ฑ , source/private URL/credential ๋์ถ ๊ฒ์ฌ.
- ์ค์ ํ๋ฉด ๋์๊ณผ runbook. ์ ์ ๊ฒ์, ์ค๋นยทํ์ฑํ ์คํจ, ์๋ต ์ ์ค, process ์ฌ์์, ๊ถํ ํ์, rollback ๊ฒฐ๊ณผ.
ํ์ธํ ์ ์ ํ๋ฆ: ๋ค์ค ํ์ด์งยท์ค์ฒฉ ๊ธยท์ด๋ฏธ์ง๊ฐ ์๋ ์ ์ฅ revision์ ์ค๋นํ๋ค. source revision๊ณผ ์์ฑ ํ์ผยท์ค์ served bytes์ ํด์๋ฅผ ๋น๊ตํ๋ค. ๋ณ๋ ์ต๋ช browser๋ก ํ์ด์ง์ ์ด๋ฏธ์ง๋ฅผ ์ฐ๋ค. ๋์ค ์ด์ ๋ณ๊ฒฝ์ด ํ์ฌ ๋ฐฉ๋ฌธ ๋ฒ์ ์ ๋ฐ๊พธ์ง ์๋์ง ํ์ธํ๋ค. ์ด์ release๋ก rollbackํ๊ณ ์ฌ์์ ํ์๋ ๊ฐ์ release๊ฐ ์ ๊ณต๋๋์ง ํ์ธํ๋ค.
ํ์ธํ ์คํจ ํ๋ฆ: ๋ฏธ์ ์ฅ ์ด์, ์์ฐ ๋ฏธํด๊ฒฐ, ๋ถ์ ๊ฒฝ๋กยทtarget, ์ง์ํ์ง ์๋ active content, viewer/operator๋ง ๊ฐ์ง ๊ณ์ , stale revision/attempt, ์ค๋น ํ ๊ถํ ํ์๋ฅผ ๊ฑฐ๋ถํ๋ค. ๋ถ๋ถ stage์ ๊ต์ฒด ์คํจ๊ฐ ์ด์ complete release๋ฅผ ์ ์งํด์ผ ํ๋ค. ๋ฐฉ๋ฌธ์๊ฐ private ๋ฌธ์ยท์์ฐ API์ ์ ๊ทผํ์ง ๋ชปํ๋ฉฐ ์ถ๋ ฅ๊ณผ ์์ฒญ์ ์ธ์ฆ ์ ๋ณด๊ฐ ์์ด์ผ ํ๋ค. ์ค์ ๊ณ ๊ฐ ๊ณต๊ฐ๋ ์ธ๋ถ hosting์ ์ด ๋จ๊ณ์ ํฌํจํ์ง ์๋๋ค.
์ฌ์ฉ์๊ฐ ๋ฐ์ ๊ฒฐ๊ณผ: ํ์ฌ ์ธ์ฆ๋ Word ๋ฌธ์์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ณ ์ ์ฅยท์ฌ์ด๊ธฐํ๋ค. ๋ค๋ฅธ ๊ถํ ์๋ ๊ณ์ ์ด ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ณ , ๋ช ์์ native ๋ค์ด๋ก๋๋ ์๋ณธ ์ด๋ฏธ์ง ๋ฐ์ดํธ๋ฅผ ํฌํจํ๋ค.
๊ณํ ๊ทผ๊ฑฐ: ๋ก์ปฌ develop d33f06c5bded496f87f0544d2076d1143c4d0c8e์ packages/office-word/src/authoring-dialog.tsx๋ FileReader data URL์ image src/alt๋ก ์ ๋ฌํ๋ฉฐ local ์
๋ ฅ ํ๋๋ 5 MiB๋ค. ๊ธฐ์กด Word native version-1 codec๊ณผ authenticated snapshot/pending ๊ฒฝ๋ก๋ฅผ ๋ณด์กดํด์ผ ํ๋ค. #416์ Site ์ ์ฉ์ด๋ค. ์ด๊ฒ์ ์ ์ ์์ค ํ์ธ์ด๋ฉฐ Word ์ ํ ์ธ์ ๊ฒฐ๊ณผ๊ฐ ์๋๋ค.
๋จ๊ธธ ๊ฒฐ๊ณผ๋ฌผ:
- Word ์ด๋ฏธ์ง์ stable native ์ฐธ์กฐ์ current document/asset ID ๋งคํ, original srcยท๋ฐ์ดํธยทaltยท์ง์ layout/crop/caption ๋ณด์กด ๊ท์น.
- #412๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋ช ์์ ์ ๋ก๋์ ํ์ฌ ๊ถํ์ ๋ฐ๋ฅธ ํด์, upload/reference/snapshot์ ์์ยท๋ถ๋ถ ์คํจยท๊ณ ์ ์๋ ๋ณต๊ตฌ.
- ๊ณ์ ยท๋ฌธ์ยทruntime ๊ต์ฒด ํ ๋ฆ์ ์๋ต์ ์ ์ฉํ์ง ์๋ ์ฒ๋ฆฌ์ owned temporary URL ์๋ช ๊ด๋ฆฌ.
- ์๋ณธ ์ด๋ฏธ์ง ํด์๊ฐ ๊ฐ์ ๋
๋ฆฝ
.word.jsonartifact, ์ค์ ๋ ๊ณ์ UI/API/DB/object ๊ฒฐ๊ณผ์ private runbook. - ์ ์๋ฒ Word ๋ฌธ์๋ก ๋ณต์ฌํ ๋์ ๋์ ์์ฐ ์ฐ๊ฒฐ๊ณผ ๊ณ ์ ์๋ยท๋ถ๋ถ ์คํจ ๋ณต๊ตฌ ๊ณ์ฝ. source ๋ฌธ์ยท์ด๋ฏธ์ง ๋ฐ์ดํธ์ ๋ณต์ฌ ์ด์์ ๋ณด์กดํ๋ค.
๊ฒ์ฌ: ์ค์ ์์ฑ์ ์ฝ์ ยท์ ์ฅยท์ฌ์ด๊ธฐ์ ์ฃผ๋ณ ๊ธ ์์ , ๋ณ๋ profile ๋ทฐ์ด ์ฝ๊ธฐ, viewer ์ ๋ก๋/๋ณ๊ฒฝยท๋ค๋ฅธ ๋ฌธ์/tenantยท๊ถํ ํ์ยทoperator-only ๊ฑฐ๋ถ๋ฅผ ํ์ธํ๋ค. ์๋ต ์ ์ค, upload/snapshot ์คํจ, missing/corrupt ๊ฐ์ฒด, ๊ฐ์ DB/object๋ฅผ ์ฐ๋ API OS ์ฌ์์์์ ์๋ณธยทdraftยท๊ณ ์ ์๋๋ฅผ ์ ์งํ๋ค. local 5 MiB์ ์๋ฒ admission ์ฐจ์ด๋ ๋ช ์์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ snapshot ํ๋๋ฅผ ๋์ด์ง ์๋๋ค. native artifact๋ฅผ ์๋น์ค ์ฐ๊ฒฐ ์์ด ๋ค์ ์ด๋ฉฐ private URLยทcredential ์ ์ถ์ ํ์ธํ๋ค. ์ Word ๊ตํ ๊ธฐ๋ฅ์ด๋ Yorkie media synchronization์ ์ด ์ด์์ ์ถ๊ฐํ์ง ์๋๋ค.
์ ๋ฌธ์ ๋ณต์ฌ ๊ฒ์ฌ: ์๋ณธ revision/native ๋ฐ์ดํธ์ ๋์ ๋ฌธ์ ์์ฑยท์ฐ๊ธฐ ๊ถํ์ ๊ณ ์ ํ๋ค. ๋ณต์ฌ ๋์์ ์ document ID์ ๊ทธ ๋์์ ์ฐ๊ฒฐ๋ ์์ฐ์ ์ฌ์ฉํ๋ค. ์ด์ source-document asset ID/URL์ ๊ทธ๋๋ก ๋ถ์ฌ ๋์ ์ ๊ทผ ๊ถํ์ผ๋ก ์ทจ๊ธํ์ง ์๋๋ค. ์ค์ ๋ณต์ฌ ํ ์๋ณธยท๋์ DB/object ์ฐ๊ฒฐ๊ณผ ๋ ๋ฆฝ ์ด๋ฏธ์ง ํด์๋ฅผ ๋น๊ตํ๋ค. ์๋ณธ ๋ธ๋ผ์ฐ์ cache ์์ด ๋ค๋ฅธ ํ์ฌ ๊ถํ ๊ณ์ ์์ ๋์ ๋ฌธ์๋ฅผ ์ฌ์ด๊ณ , ๋์์ self-contained native ํ์ผ์ exportํ์ฌ ์๋น์ค ์์ด ๋ค์ ์ฐ๋ค. ๋ณต์ฌ ์คํจยท์๋ต ์ ์คยท์๋ณธ/๋์ ๊ถํ ํ์์์ source์ copy draft/attempt๋ฅผ ์ ์งํ๊ณ ๋ฏธ์๋ฃ ์ํ๋ฅผ ํ์ํ๋ค. ๋์ผ ๋ฌธ์ ์์ ์ด๋ฏธ์ง ์ด๋๊ณผ ๊ธฐ์กด #405 snapshot ๋ณต์ฌ๋ ์ด ์ ๋ฌธ์์ private bytes ๋ณต์ฌ ๊ฒ์ฌ๋ฅผ ๋์ ํ์ง ์๋๋ค.
๊ณํ ๊ทผ๊ฑฐ: fixed local develop 58ba404f68eb80664541efb92afe43d69410bb08์ toolbar-actions.ts๋ picked media๋ฅผ data URL๋ก image src/altยทํฌ๊ธฐ์ ์ ๋ฌํ๋ค. paint-panel.tsx๋ ์ด๋ฏธ์ง ์ฑ์ฐ๊ธฐ์ paint.src์ data URL์ ์ด๋ค. deck-file.ts๋ native version-2์ document-owned connector identity๋ฅผ ๋ณด์กดํ๋ค. ์ด ๊ฒฝ๋ก์๋ #412 ์๋น์๊ฐ ์์ผ๋ฉฐ #406 snapshot๊ณผ #372 Yorkie๊ฐ ํด๋น ๋ฐ์ด๋๋ฆฌ ๋งคํ์ ์ฆ๋ช
ํ์ง ์๋๋ค.
๊ฒฐ๊ณผ๋ฌผ: #412๋ฅผ ์ฌ์ฌ์ฉํ๋ image/paint ์ฐธ์กฐ ๋งคํ, uploadโreferenceโsnapshot ๋ถ๋ถ ์ํ, account/document/runtime ์๋ช
์ฒ๋ฆฌ, ์ server deck์ ์ฐ๊ฒฐ๋ ์์ฐ์ ์ฌ์ฉํ๋ copy ๋ณต๊ตฌ, ์๋ณธ ๋ฐ์ดํธ๋ฅผ ํฌํจํ ๋
๋ฆฝ .slides.json, ์ค์ two-account UI/API/DB/object ๊ฒฐ๊ณผ์ runbook.
์ ์ ๊ฒ์ฌ: ์ค์ ํ๋ฉด์์ admitted image object์ image fill์ ์ฝ์ ํ๊ณ ์ ์ฅยท์ฌ์ด๊ธฐํ๋ค. supported component/layout ์์น๋ฅผ ๋ช ์ํด ๊ฒ์ฌํ๋ค. ์์นยท์ฃผ๋ณ ๊ธ ๋ณ๊ฒฝ ํ ์๋ณธ ํด์์ full native ์ฐธ์กฐยทpresenter notesยทconnector๋ฅผ ๋น๊ตํ๋ค. ๋ณ๋ ๊ถํ profile์์ view/playbackํ๊ณ , ์ server deck์ผ๋ก ๋ณต์ฌํ ๋์์ asset/document identity์ ๊ถํ์ ํ์ธํ๋ค. copy export๋ฅผ ์๋น์ค ์์ด ๋ ๋ฆฝ ์ฌ์ด๊ธฐํ๋ค.
์คํจ ๊ฒ์ฌ: viewer ์ ๋ก๋ยท๋ณ๊ฒฝ, ํ document/tenant, ๊ถํ ํ์, missing/corrupt ready bytes, deferred completion, upload/reference/snapshot/copy ์คํจยท์๋ต ์ ์คยทAPI OS ์ฌ์์์์ source/draft/attempt๋ฅผ ๋ณด์กดํ๋ค. ์๋ณธ ๋ฑ asset URL์ ๋์์ ๊ถํ์ผ๋ก ์ฌ์ฉํ์ง ์๋๋ค. ๊ฐ์ ์๋ ๋ณต๊ตฌ๋ ๊ณ ์ ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ณ duplicate ready ๋์ ์์ฐ์ด๋ false saved/copy ์ํ๋ฅผ ๋ง๋ค์ง ์๋๋ค.
๊ณํ ๊ทผ๊ฑฐ: ๊ฐ์ fixed commit์ block-model.ts๋ picture.src/alt์ FileReader data URL์ ์ฌ์ฉํ๋ค. note-view.tsx์ ๊ธฐ์กด onFile hook์ Promise์ด๋ฉฐ durable upload/reference/snapshot receipt๊ฐ ์๋๋ค. note-file-codec.ts์๋ legacy native1์ ๋ช
์์ full schemaBundle native2 ๊ฒฝ๋ก๊ฐ ์๋ค. ํ์ฌ host์ native2 readonly stage๋ฅผ ์ด๋ฏธ์ง read ๋ฐ์ดํฐ๋ก write ํ์ฑํํ์ง ์๋๋ค.
๊ฒฐ๊ณผ๋ฌผ: ๊ธฐ์กด picture/onFile์ #412๋ฅผ ์ฌ์ฉํ๋ supported-native ๋งคํ, original native/schema context ๋ณด์กด ๋ฌธ์, exact account/document/root/block ์๋ช
์ฒ๋ฆฌ, ์ Note๋ก ๋ณต์ฌํ ๋์ destination asset/attempt, ๋
๋ฆฝ .note.json๊ณผ ์ค์ two-account ๊ฒฐ๊ณผ/runbook.
์ ์ ๊ฒ์ฌ: ์ค์ writer์ picture ์ค์ ยท์ ์ฅยท์ฌ์ด๊ธฐยท์ค์ฒฉ ๊ธ ์์ , ๋ณ๋ ๊ถํ profile์ ์ด๋ฏธ์ง ์ฝ๊ธฐ, ์ server Note copy์ ๋์ ์์ฐ๊ณผ ๊ถํ, original image hash/native attrs๋ฅผ ๋น๊ตํ๋ค. native2๋ฅผ ์ง์ํ๋ฉด ์ ์ฒด envelope์ exact pins/definitions/digests๋ ๋น๊ตํ๋ค. ๋์ native export๋ฅผ asset service ์์ด ๋ ๋ฆฝ ์ฌ์ด๊ธฐํ๋ค.
์คํจ ๊ฒ์ฌ: block ์ญ์ ยท๊ต์ฒด, root/document/account ๊ต์ฒด, readonly/disposed host๋ก ๋ฆ์ ์๋ต์ ์ ์ฉํ์ง ์๋๋ค. upload/copy/reference/snapshot ์คํจยท์๋ต ์ ์คยทconflictยทmissing/corrupt bytesยทAPI OS ์ฌ์์์์ full original/draft/fixed attempt๋ฅผ ๋ณด์กดํ๋ค. schema/pin ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด ๊ธฐ์กด ๋ช ์์ adoption ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค. unsupported native mode๋ฅผ legacy๋ก ๋ฐ๊พธ๊ฑฐ๋ full registered ํ๋๋ฅผ ๋ฒ๋ฆฌ์ง ์๋๋ค. viewerยทํ scopeยทrevoked/operator-only/anonymous ์ ๊ทผ์ canonical effect์ ํจ๊ป ๊ฒ์ฌํ๋ค.
๊ฐ ์ด์์ ์๋ฃ ๊ธฐ๋ก์๋ ๋ค์ ํญ๋ชฉ์ ๋จ๊ธด๋ค.
| ํญ๋ชฉ | ํ์ํ ๊ธฐ๋ก |
|---|---|
| ๊ตฌํ ์๋ณ | baseยทcandidateยทintegration commit, ์์ ํ์ผ, ์ฌ์ฉํ ์์กด์ฑยทruntime ๋ฒ์ |
| ์ค์ ๊ฒฐ๊ณผ๋ฌผ | ์คํ ๋ช ๋ น, source/tool/runbook ์์น, ์์ฑ artifact์ ๋ ๋ฆฝ ๊ฒ์ฌ ๋ฐฉ๋ฒ |
| ์ ์ ๊ฒฐ๊ณผ | ์ค์ ์ฌ์ฉํ UI/API/DB/object ๊ฒฝ๊ณ, ํฉ์ฑ ๊ณ์ ยทtenant ์, ๋น๊ตํ ๋ฐ์ดํธ ์ยทSHA256 |
| ์คํจ ๊ฒฐ๊ณผ | ์ ๋ ฅยท๊ถํยท์์กด์ฑยท์๋ต ์ ์คยท์ค๋จ ์กฐ๊ฑด, HTTP/์ํ์ ์ต์ข canonical ๋ฐ์ดํฐ, ๋ณด์กดํ ๋ฏธํด๊ฒฐ ์ฆ๊ฑฐ |
| ํ์ ๊ฒ์ฌ | ๋ช ๋ นยทexit code, ์คํํ ๊ฒ์ฌ ์, ๋ฏธ์คํยท์คํจ์ ์์ธ, ์๋ ๊ธฐ์ค์ ๊ฐ ํญ๋ชฉ์ ๋์ํ ์ฆ๊ฑฐ |
| ๋จ์ ๋ฒ์ | ๋ค๋ฅธ ์ด์์ parent ๊ธฐ์ค, ์ง์ ์ ํ, ์์ง ๊ฒ์ฆํ์ง ์์ ์ ํยทํ๊ฒฝ |
| ๋ค์ ์์ | ๋ค์ ๊ธฐ์กด/์ ์ด์ ๋งํฌ, ์์ ์กฐ๊ฑด, ์ ํํ ์์ ๊ณต๊ฐยทbaseยทํ์ผ ์์ ๋ฒ์ |
์๋ ์๋ฃ ๊ธฐ์ค์ ์ฆ๊ฑฐ์ ๋์กฐํ ๋ค ์ด์๋ฅผ ๋ซ๋๋ค. Wiki ์ํ๋ฅผ ์๋ฃ๋ก ๋ฐ๊พธ๊ณ ๋ค์ ์ด์๋ฅผ ์ ์ ํ๋ค. ์์ฑํ ํ์ผ์ ์ง์ ์ด๊ฑฐ๋ readbackํ์ฌ ๊ฒ์ฆํ๋ค. ์๊ฒฉ ์ฆ๋ช ๊ณผ customer ๋ฐ์ดํฐ๋ ๊ณต๊ฐ ๊ธฐ๋ก์ ๋ฃ์ง ์๋๋ค. ์ฝ๋๊ฐ ๊ตฌํ๋๋ค๋ ์ด์ ๋ก ์ค์ ์ธ์๋ ์ถ์๋ฅผ ์๋ฃ๋ก ํ์ํ์ง ์๋๋ค.
- ๋ก์ปฌ ํ๋ณด:
1e6f4b9229cf8c871e52fbf8dff0a1bb2a83fb51. ๋ธ๋์น:codex/412-private-document-assets. ๊ธฐ์ค:a6151b1e6fbd55e0ebd743043495aab79415a8c6. - ์์ค ๋ณด์กด ์์น: ํ์ฌ Git branch
codex/412-private-document-assets๊ฐ ์ ํ๋ณด commit/treed8918c41e5cd911d0fdba45635737e929daca3c6๋ฅผ ๋ณด์กดํ๋ค. ์ด์ /Users/user/.codex/worktrees/412-private-assets-20261009/barocss-editor๋๋ ํฐ๋ฆฌ๋ ํ์ ํ์ธ ์ ์์๋ค. Codex attachment ๋ชฉ๋ก์๋ active๋ก ๋จ์ ์์ผ๋ฉฐ ์์ธ์ ํ์ธํ์ง ๋ชปํ๋ค. ํ์ฌ ์์ ๊ณต๊ฐ์ด clean์ด๋ผ๊ณ ์ฃผ์ฅํ์ง ์๋๋ค. ๋ค์ source ์์ ์ ์ ์ ํํ ํ๋ณด์์ managed checkout์ ๋ณต๊ตฌํ๋ค. - Node 22.22.0/pnpm 8.15.0 ์๋น์ค ๋น๋ยทํ์ ๊ฒ์ฌ์ ์ง์ค ์๋น์ค ํ ์คํธ 5๊ฐ ํต๊ณผ. ๋ค ํ์์ ์์ ์ด๋ฏธ์ง fixture์ ์๋ชป๋ ๋ฐ์ดํธ ๊ฑฐ๋ถ๋ฅผ ํฌํจํ๋ค.
- ์ ์ฒด
pnpm preflight๋office-apiํ์ ๊ฒ์ฌ์์ ์คํจํ๋ค.@barocss/office-service/document-asset-storepackage export๊ฐ ์ฐ๊ฒฐ๋์ง ์์๋ค. ํ ์คํธ ํ์ ๊ฒ์ฌ ๋จ๊ณ์๋ ๋๋ฌํ์ง ์์๋ค. - ์ค์ PG/OIDC/S3, ๋ ๊ณ์ , ์๋ต ์ ์ค, ์ฅ์ , ๊ฐ์ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ OS ํ๋ก์ธ์ค ์ฌ์์ ์ธ์๋ ์์ง ๋ฏธ๊ฒ์ฆ์ด๋ค. #412๋ฅผ ๋ซ์ง ์๋๋ค.
- ์์ฐ APIยท์ํ ๊ณ์ฝ์ ์ฌ์ฌ์ฉํ๋ค. Integration์ ์ด ์ ํํ ํ๋ณด์ ์์กด์ฑ ์์ ์ ์ ๋ฌํ๋ค.
- ํ์ static ํ์ธ: local develop
58ba404f68eb80664541efb92afe43d69410bb08์๋ document-asset/private-object source์ service asset export๊ฐ ์์ง ์๋ค. ์ด์ ์๋น์ค ๊ฒ์ฌ๋ฅผ ์ด๋ฒ ๊ณํ ๊ฐฑ์ ์์ ์ฌ์คํํ ๊ฒ์ผ๋ก ํ์ํ์ง ์๋๋ค.
2026-10-09: ์ฌ์ฉ์์ ์ง์ ์ง์์ ๋ฐ๋ผ ์ด ์คํ ๋ก๋๋งต๊ณผ ๋ค์ ์ด์ ์ ์ ยท์์ฑ ๊ท์น์ ๊ธฐ๋กํ๋ค. ๊ธฐ์กด #412/#416/#414/#419/#417์ ๋์กฐํ๋ค. ํ์ฌ ์ด์๋ #412์ด๋ฉฐ, ๋ค์ ์ฐ์ ํ๋ณด๋ #416์ด๋ค. ์ ์ฒด alpha #322์ ๋ณ๋ ์๋ฃ ๊ธฐ์ค์ ๊ณ์ ์ ์งํ๋ค.
2026-10-09 ์ถ๊ฐ: ์์กด์ฑ ๋๊ธฐ ์ค์๋ ๋ก๋๋งต์ ๋ณด๊ฐํ๊ณ ํ์ ์ด์๋ฅผ ์ฌ์ ์์ฑํ๋ผ๋ ์ง์๋ฅผ ๋ฐ์ํ๋ค. ์ ์ฒด 299๊ฐ ์ด์์ fixed Word source๋ฅผ ํ์ธํด #509๋ฅผ ๋ฑ๋กํ๋ค. ์ํ๋ WAIT_DEPENDENCY์ด๋ฉฐ ํ์ฌ #412์ ํตํฉ ๊ฒ์ฆ๊ณผ ๊ธฐ์กด Siteยท๋ณต๊ตฌยท์ค์น ์์๋ฅผ ์ ์งํ๋ค.
2026-10-09 #509 ๋ณด๊ฐ: ์ server Word ๋ฌธ์ ๋ณต์ฌ์ ๋์ ์์ฐ ์ฐ๊ฒฐยทํ์ฌ ๊ถํ, ์๋ณธ/๋ณต์ฌ ์ด์ ๋ณด์กด, ๋ ๋ฆฝ export/reopen์ ๊ธฐ์กด ์ด์ ๋ฒ์์ ์๋ฃ ๊ธฐ์ค์ ์ถ๊ฐํ๋ค. ์์กด์ฑ ๋๊ธฐ์ ์ค์ Word ํ์ผ ์์ ๋ฒ์ ํฉ์ ์กฐ๊ฑด์ ์ ์งํ๋ค.
2026-10-09 ํ์ ์ค๋น: ์ต์ 301๊ฐ ์ด์์ fixed local develop์ ๋์กฐํ์ฌ #510 Slides์ #511 Note ๋น๊ณต๊ฐ raster ์๋น์๋ฅผ ์ฌ์ ๋ฑ๋กํ๋ค. native/๋ณต์ฌ/์ถ๋ ฅยท์คํจ ๊ฒ์ฌ์ Note native2 ์ ๋ ฅ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ค. #412 working directory๊ฐ ์๋ ์ฌ์ค์ ๊ธฐ๋กํ๊ณ ๋ณด์กด๋ branch/commit์ ์ฌํ์ธํ๋ค. source/runtime ์ฐฉ์๋ ์ ์ธ์ ํต๊ณผ๋ฅผ ์ฃผ์ฅํ์ง ์๋๋ค.
2026-10-09 ๋ณต์ฌ ์์ ๋ณด๊ฐ: ๊ธฐ์กด ๋ค consumer ์ด์์ ๋ฒ์์ ์๋ฃ ๊ธฐ์ค์ destination document ์์ฑ receiptโasset readyโnative reference bindingโsnapshot confirmation์ ๋ช ์ํ๋ค. #416์ ์ ์๋ฒ ๋ฌธ์ ๋ณต์ฌ์ current source/destination ๊ถํยทfull source ๋ณด์กดยท๋ค๋ฅธ readerยทnative/static ๋ ๋ฆฝ ์ถ๋ ฅ ๊ธฐ์ค์ ์ถ๊ฐํ๋ค. ์ ์ด์ ์์ด ๊ณ์ฝยทmetadata๋ง ๋ณด๊ฐํ์ผ๋ฉฐ source checkout ๋ณต๊ตฌ๋ runtime ๋ณ๊ฒฝ์ ์ํํ์ง ์์๋ค.
2026-10-10 ๋
๋ฆฝ ์ค๋น: ํ์ฌ local develop c7d91d9f1a4a6999be55b4d8057193fdc26e2083์ existing #513 copy/host source๋ฅผ ํ์ธํ๋ค. #412 ๊ธฐ์กด PNG/JPEG/GIF/WebP seed ๋ค ๊ฐ์ ๋ฐ์ดํธ ์ยทSHA256์ Python์ผ๋ก ๋
๋ฆฝ ๊ณ์ฐํด ๊ณตํต fixture ๊ณ์ฝ์ ์ ์๋ค. ๋ค consumer์ ์ ์ยท๊ฑฐ๋ถยท๋ถ๋ถ ์คํจ ๊ธฐ๋๊ฐ๊ณผ owner interface ์ค๋น๋ฅผ ์ฐ๊ฒฐํ๋ค. ์ค์ ์ ํ/private runtime campaign์ ์คํํ์ง ์์์ผ๋ฉฐ ์ ์ด์ยทleaseยทroleยทschedule์ ๋ง๋ค์ง ์์๋ค.
2026-10-10 ๋ฒํธ checkpoint: #412 immutable seven-file delta์ manual์ ํ์ธํ์ฌ ๋ค๋ฅธ migration ID ์๊ตฌ๊ฐ ์์์ ํ์ธํ๋ค. Root์ 0018 dependency reservation์ ๊ณ์ฝยท์ด์์ ๊ธฐ๋กํ๋ค. Migration ๋ฑ๋กยทDB/S3 ์คํยทsource activation์ ์ํํ์ง ์์๋ค.
2026-10-10 Site ์ค๋น ์๋ฃ: source/native gate ์์ค A/B/C์ ๋ณ๋ unresolved ๋ณํ, exact native asset/rich references์ source/native bytes/hash, ๋
๋ฆฝ materialized-copy/native/static-export ๊ธฐ๋๊ฐ, current-authority/stage-failure ๊ธฐ๋๊ฐ์ owned artifact์ ์ค๋นํ๋ค. Manifest SHA256 473b14328d8c4f47e988bc8e07145bfb164bbae76368fe24f318ca1c0a1cbf3f. ๋ชจ๋ธ๊ณผ ์ฒซ fixture/setup ์คํจ๋ฅผ ๋ณด์กดํ์ผ๋ฉฐ ์ค์ consumer/๊ถํ/DB/object/export/browser/restart ์ธ์๋ ๋ฏธ์คํ์ด๋ค. #503 CLOSED ์ํ๋ก ํ์ฌ ๋ฌธ๊ตฌ๋ฅผ ์ ์ ํ๊ณ ์ ์ด๋ ฅ์ ๋จ๊ฒผ๋ค.
2026-10-10 FOUR helper handoff: exact54693โ51d33, four-only patch/source/checks/25-file receipt frozen. Direct Editor/Workspace ownership and reusable host/binary limits recorded. Original/rendition MIME hint and copied-byte getter remain DATA; unique B/casefold/original-rendition filenames are one future renderer+writer plan. No shared runtime/consumer/API/format activation. Original1e6f/0018 remain untouched; original412/416 acceptance stays open.
2026-10-10 load-metadata finding: actual consumer-second7PASS1FAIL๊ณผ original B failure๋ฅผ ํ์ธํ๋ค. Loader hash5550e662์ finding a25e1902๋ฅผ ๋ณด์กดํ๋ค. ์ ๋ ฅ ์๋ฌธ์ ์ ์ง๋๋ฉฐ helper ์๊ฒฉ๊ณผ operated-state export ๊ฒ์ฌ๋ ๊ฐ ๋ฒ์๋ก ์ ์งํ๋ค. ์ ์ฒด original native load-roundtrip/์ค์ private snapshot hash ๋ฌธ์ ๋ ๊ธฐ์กด416 ์์์ ๋ฏธํด๊ฒฐ์ด๋ฉฐ ์ ์ด์ยทsource takeover๋ ์๋ค.
2026-10-10 NUL repair: actual51d helper NUL path baseline, independent refusal oracle์ before-fix1FAIL6PASS๋ฅผ ๋ณด์กดํ๋ค. f421 immutable TWO๋ NUL ์ด๋ฆ์ source mutation ์์ด ๊ฑฐ๋ถํ๋ค. Affected41/final unchanged preflight0; Root/Editor์ narrow successor๋ง ์ง์ ์ ๋ฌํ๋ค. No newIssue/protocol/runtime; original51d/1e6/0018 preserved. EditorTEN๊ณผ sanctioned runtime metadata ๊ฒฝ๋ก๋ ๋ณ๋ ์ค์ baselineยท๊ธฐ์กด ๊ณ์ฝ ๋ฒ์๋ก ์ถ์ ํ๋ค.