GRID.OS 전 에디션(그리다·엔터프라이즈·퍼스널) 커스텀·업데이트 기획 — 원우님용 요약 보고
원우님이 보실 것
앱 본체를 직접 고쳐 쓰는 방식은 그리다(팀 내부)에서만 규칙을 두고 허용하고, 파는 상품(퍼스널·기업)은 "정해진 부품"으로만 커스텀하게 해서 업데이트를 안전하게 만듭니다.
⓪ 시트 커버·내비 설정(데이터·설정)은 새 차로 옮기면 됩니다. ① 정품 규격 부품(위젯·스킬·지침·자동화)은 규격이 유지되면 새 차에도 그대로 답니다. ② 엔진을 직접 깎은 개조(본체 수정)는 새 차가 나올 때마다 다시 깎아야 하고, 정비소가 보증하지 못합니다. 지금은 팀원 모두 ②를 하는데 새 차가 매주 나옵니다.
옵시디언이 안전한 이유는 "플러그인만 허용해서"가 아니라 "정품 규격이 대부분의 필요를 채워서"입니다. 규격이 모자란 곳에서는 사람들이 몰래 내부를 건드려 옵시디언도 업데이트 때 깨집니다. 그래서 GRID.OS의 진짜 과제는 "정품 부품 규격을 넓히는 것"입니다.
| 에디션 | 허용 범위 | 업데이트 방식 |
|---|---|---|
| 그리다(팀) | ⓪①② 허용. ②는 이름 붙여 기록하고 30일마다 재검토(제품에 넣기·부품으로 바꾸기·유지·폐기) | 매주 최신 + 앱 안 AI가 합치기 |
| 퍼스널 | ⓪ + 검증된 부품만 | 자동 업데이트(검증 범위 밖 부품은 자동으로 꺼지고 알림) |
| 기업 | ⓪① — 본체 수정이 필요하면 우리가 만들어 배포 | 월 1회 안정판 + 유지보수 계약이 호환 책임 |
결정 5개에 답하기(권고대로면 "권고대로" 한마디), 그리고 "지금 해"(원우님 앱 새 버전 적용 → 키체인 "항상 허용").
아래는 위 결론의 근거입니다. 필요한 항목만 펼쳐 보시면 됩니다. 파일 경로·커밋 번호처럼 세부 근거는 각 항목의 "근거 보기"에 접어 뒀습니다.
배경 — 왜 이 기획이 시작됐나
문제는 무엇인가 — 에디션별로 다르게 나타납니다
| 에디션 | 무슨 일이 있었나 | 지금 문제 |
|---|---|---|
| 그리다 (팀 4명) | 원우·김승일·송한영님이 앱 코드를 직접 수정 | 새 버전마다 사람이 다시 얹어야 함. 앱 안 자동 업데이트도 고장 |
| 엔터프라이즈 (오름·위타민) | 우리가 미팅 후 대신 커스텀 | 아직 충돌은 없지만, 약속한 범위와 실제 만드는 방식이 어긋날 위험 |
| 퍼스널 (저가·대량) | AI가 온보딩 대화로 데이터만 맞춤 설정(코드 수정 없음) | 자동 업데이트 자체가 아직 완성 전(맥은 서명 절차 남음, 윈도우는 보류) |
방치하면 — 그리다는 팀이 늘수록 원우님 시간이 기하급수로 듭니다. 엔터프라이즈는 고객이 직접 고치기 시작하면 같은 문제가 고객 쪽에서 재현됩니다. 퍼스널은 사용자가 늘면 "업데이트 후 깨짐"을 사람이 감당하지 못합니다.
왜 이렇게 됐는가 — 확인된 사실
팀원들이 하는 "커스텀"은 앱을 통째로 복사해서 따로 고치는 방식입니다(전문용어로 포크). 앱은 원본 대신 이 복사본을 계속 씁니다.
두 판을 자동으로 맞춰주는 도구(3-way 병합)가 1,000줄 넘는 파일은 아예 비교를 포기하고 "전체가 겹쳤다"고 처리해 버립니다. 팀원들이 자주 고치는 핵심 파일이 전부 이 크기를 넘습니다.
이 상한선만 손보면 효과가 실측으로 확인됐습니다 — 세 판을 줄 단위로 맞춰 겹치는 곳만 남기는 표준 방법(diff3)으로 다시 합쳐 보니, 송한영님 파일 7개가 원래는 통째 충돌이었는데 각각 1~7줄짜리 충돌로 줄었습니다.
공식적으로 코드를 앱에 붙이는 통로는 대시보드에 위젯 파일 하나 끼워 넣는 것뿐이고, 나머지는 전부 비공식 직접 수정입니다. 그 위젯조차 앱 화면과 같은 공간에서 돌아가 완전히 격리돼 있지는 않습니다.
절반만 맞음 안전한 진짜 이유는 "플러그인만 허용해서"가 아니라 "공식 규격이 대부분의 요청을 이미 받아주고 있어서"입니다. 규격이 부족한 자리에서는 옵시디언 개발자들도 몰래 속을 건드리다 업데이트 때 깨집니다(실제 사례 다수 확인).
server/dev-source-merge.js:58(기준줄×변경줄 > 1,000,000 시 비교 포기) → :74(large-text-conflict). 원우 라이브 dev-source 규모: server/index.js 37,921줄 · public/app.js 17,976줄. 위젯 실행: public/user-widgets.js:30(같은 window에서 new Function 실행). 코덱스가 mergeBytes() 직접 호출로 10줄 성공·1,001줄 충돌을 재현해 원인을 재확정.
검증 과정 — 다른 AI에게 반박을 시켰습니다
기획을 쓴 AI(헤드)가 초안을 만든 뒤, 별도의 AI(코덱스 아스트라)에게 "이 기획의 약점·빠진 선택지·틀린 사실을 전부 찾아내라"고 독립적으로 시켰습니다. 코덱스는 코드와 문서를 직접 읽고 8분 동안 검토했습니다.
결과: 조건부 인정 — 지적 30건 중 26건을 그대로 받아들였고 3건은 일부만 반영했습니다. 완전히 틀렸다고 반박된 지적은 0건입니다.
02_코덱스_교차.md. 실행: codex exec -m gpt-6-astra -c model_reasoning_effort="xhigh" -s read-only, 2026-09-27 00:41~00:48, 파일 무수정(읽기 전용). 판정표 30건은 그 문서 §1에 있습니다.
선택지 비교 — 4가지 안 중 무엇을 골랐나
안 A — 옵시디언식비권고
전 에디션에서 부품(위젯·스킬·지침)만 허용, 본체 수정 전면 금지. 안전하지만 지금 팀원이 실제로 하는 큰 수정(1,600줄 넘는 "바꾸기")을 담을 곳이 없습니다.
안 B — 지금 방식 강화비권고
직접 수정을 계속 허용하고 도구만 개선. 자유롭지만 판이 나올 때마다 사람이 다시 맞추는 비용이 계속 쌓입니다. 퍼스널·엔터프라이즈에는 애초에 못 씁니다.
안 C — 조립 도구에 전부 맡기기비권고
아직 짓고 있는 새 시스템(카탈로그·변경 묶음)으로 해결. 이미 설계는 있지만 완성까지 수 주가 더 걸리고, 그동안 사고가 계속될 위험이 있습니다.
안 D — 에디션별 혼합 등급제권고
퍼스널·엔터프라이즈는 안 A처럼(부품만), 그리다는 본체 수정을 "기한부로 관리하며" 허용. 안 C의 조립 도구는 이 규칙을 나중에 구현하는 수단으로 씁니다.
권고 이유 — 선례들이 전부 "공식 방법 먼저, 직접 수정은 예외, 사람 승인은 마지막 안전판" 구조였고, D안이 이걸 에디션별로 나눈 것뿐입니다. 퍼스널·엔터프라이즈는 이미 "본체 수정 금지"가 확정돼 있어 새 결정이 아니라 기존 결정의 재확인입니다. 그리다에서만 "허용하되 주기적으로 다시 점검"하는 방식이 "AI가 내 앱을 고쳐준다"는 장점과 "업데이트 안전"을 동시에 지킵니다.
권고안 — 커스텀을 3등급으로 나눕니다
| 등급 | 무엇인가 |
|---|---|
| ⓪ | 데이터·설정 — 내 노트, 내 화면 설정. 파일 자체는 항상 보존됩니다. |
| ① | 확장 부품 — 위젯·자동화·지침. "이름표 붙은 부품"이라 통째로 켜지거나 꺼집니다. |
| ② | 본체 수정 — 앱 핵심 코드를 직접 고치는 것. 지금 팀원들이 실제로 하는 방식입니다. |
| 에디션 | 허용 | 만드는 사람 |
|---|---|---|
| 그리다 | ⓪①② — ②는 위험도·복구 가능성 기준으로 허용 | 팀원 각자의 AI |
| 엔터프라이즈 | ⓪① — ②가 필요하면 우리가 대신 만듦 | 우리 + 고객 AI 일부 |
| 퍼스널 | ⓪ + 검증된 ①만 | 사용자의 AI |
위타민 대표님이 직접 고치고 싶어하시는 부분은 화면 항목·정렬·문구·지침까지만 가능합니다. 새 화면이나 새 데이터 연결은 저희가 만들어 드립니다.
editions/enterprise.json(devMode:false·sourceServing:false). 위젯 격리 한계: public/user-widgets.js:30.업데이트 원칙 7가지
운영 — 누가 언제 무엇을 점검하나
이번 주는 아직 전용 도구가 없어서 "접수·분류·보류"까지만 합니다. 팀원 유형은 이름이 아니라 실제 수정 규모로 판단합니다 — 송한영님을 "제보형"으로 분류했던 예전 판단이 틀렸다는 게 이번에 드러났기 때문입니다.
원우님 dev-source에 쌓인 약 220줄(업무 로직·새 기능·UI 수리 3묶음)도 같은 규칙을 적용합니다. 목표는 "행선지 없는 수정 0건"입니다.
실패하면 — 백업을 복원해 원래 상태(.60)를 유지합니다. 원인을 고친 뒤 다시 시도합니다. 급하지 않다면 조건이 갖춰질 때까지 .60을 그대로 써도 손해가 없습니다.
판매·계약에 미치는 영향
| 상품 | 약속할 수 있는 것 | 약속하면 안 되는 것 |
|---|---|---|
| 퍼스널 | 온보딩 맞춤 시작, 업데이트해도 노트·설정 유지, 검증 안 된 부품은 자동으로 꺼지고 알림 | "앱을 마음대로 고칠 수 있다", "어떤 부품이든 항상 그대로 유지" |
| 엔터프라이즈 | 미팅 기반 맞춤 구축, 안정판 채널, 업데이트 전 호환 점검 리포트 | 무제한 무료 커스텀, 고객이 소스 직접 수정 |
| 그리다 (비매) | 내부에서 검증된 것만 제품에 반영 | "내부에서 써봤다"를 "판매판에서도 검증됐다"로 착각 |
엔터프라이즈 견적 틀 — 기존 "A/B/C"(납품 범위)에 "D 유지보수"를 더해 팀입니다. 요율·SLA 숫자는 아직 자리표시일 뿐 원가 산정 뒤 확정합니다. 위타민 요구사항부터 첫 적용합니다.
로드맵 — 언제 무엇을 하나
6번(도구 수리)은 유력한 즉시 개선이라 5번(송한영님 적용)보다 먼저 하는 것을 권고합니다.
부품 1종을 "설치→업데이트→복구"까지 전체 검증(3~4일), 패치 묶음 기록 체계 완성(2~3일), 합치기 도구 완성(2~3일). 이 구간 합계가 평일 15일에 여유가 크지 않아, 굵은 항목만 필수로 두고 나머지는 다음 구간으로 미룰 수 있습니다.
판매 시작 조건을 날짜보다 먼저 고정합니다 — 퍼스널은 부품 검증 1종 + 자동 업데이트(서명 절차) + 복구 실증, 엔터프라이즈는 견적 틀 + 안정 채널 규칙 확정입니다.
결정 현황 — 원우님이 답하실 5개
결정 1 권고: 채택
커스텀 3등급제 채택 — 본체 수정(②)은 그리다에서만, 허용 기준은 "변경 위험·담당·복구 가능성". 퍼스널·엔터프라이즈 고객은 ⓪①만, ①도 "검증한 범위 안에서만 안전".
대안 — 전 에디션 ①만 허용(안 A). 팀원 커스텀 대부분을 담을 그릇이 없어 비권고.
결정 2 권고: 조건부
송한영님 .62 — 덮어 설치 → 앱 안 AI 공식 합치기 순서로 진행. 조건은 "기기별 실측·백업·이전·복구 검증 통과". 실패하면 백업 복원 후 원상태 유지, 미확인이면 .60 보존.
대안 — .60 유지. 조건이 안 갖춰졌을 때는 정당한 보류이지만, 조건이 갖춰진 뒤에는 미룰 이유가 없습니다.
결정 3 권고: 채택
본체 수정(②)은 "기한부 재검토"(만든 날+30일)와 "분류 안 된 수정 0·행선지 없는 수정 0" 목표로 관리 — 원우님 본인 포함. 팀원 커스텀 원문을 언제 누가 읽을 수 있는지(열람 정책)도 함께 정합니다.
대안 — 재검토 없이 기록만. 패치가 계속 쌓여 "그냥 직접 수정 다 허용" 상태로 되돌아갈 위험이 있어 비권고.
결정 4 권고: 채택
업데이트 채널 2개(그리다 주간 최신 / 엔터프라이즈·퍼스널 안정판 월간) + 업데이트 프로그램은 실제 앱으로 끝까지 검증된 것만 배포.
대안 — 채널 하나로 통일. 고객이 매주 업데이트의 회귀를 그대로 맞게 돼 비권고.
결정 5 권고: 채택
엔터프라이즈 견적 틀 "A/B/C + D(유지보수)" 채택. 고객 자체 커스텀은 ⓪①까지만. 요율·SLA 숫자는 원가 산정 후 확정. 위타민 요구사항부터 첫 적용.
대안 — 유지보수 없이 건별 견적. 업데이트마다 협의가 필요해 운영 부담이 저희 쪽에 계속 남게 돼 비권고.
리스크 — 놓치면 안 되는 것들
근거·출처