From 746d6fe0d61d8ad581a8270eff457498ea5854e2 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 12 Sep 2026 10:14:01 +0900 Subject: [PATCH] =?UTF-8?q?docs(verification):=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EA=B8=B0=EB=B3=B8=EC=9D=84=20ORCA=20?= =?UTF-8?q?=EB=82=B4=EC=9E=A5=20=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80?= =?UTF-8?q?=EB=A1=9C=20=EB=B0=94=EA=BE=B8=EB=A9=B0=20=EA=B3=B5=EC=9A=A9=20?= =?UTF-8?q?=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80=20=EC=83=81=EC=84=B8=20?= =?UTF-8?q?=EB=B3=B4=EA=B4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 지침 4장은 ORCA 기본 · 공용은 사용자가 지시할 때만으로 줄임 - 되돌릴 때 필요한 시동·명령파일·캐시 비우기·재시작 절차를 원문 그대로 이 문서에 옮김 - ORCA 쪽 캐시 비우기는 전용 명령이 없어 미확인으로 남김 (첫 B07 검증 때 확정할 것) Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX --- .../2026-09-12_공용_브라우저_운용.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/raw/verification/2026-09-12_공용_브라우저_운용.md diff --git a/docs/raw/verification/2026-09-12_공용_브라우저_운용.md b/docs/raw/verification/2026-09-12_공용_브라우저_운용.md new file mode 100644 index 00000000..2f8a7185 --- /dev/null +++ b/docs/raw/verification/2026-09-12_공용_브라우저_운용.md @@ -0,0 +1,73 @@ +# 공용 브라우저 운용 — 상세 보관 (2026-09-12) + +## 왜 남기나 + +2026-09-12 **ORCA IDE 내장 브라우저를 화면 검증 기본**으로 바꿈(사용자 확정). +기본이 바뀐 까닭은 내장 브라우저가 **Claude 가 직접 제어하기 쉽고 사용자와 화면을 같이 보기 쉬움** — +공용 브라우저 방식(파이썬 명령 파일을 만들어 드라이버가 이름순 실행)은 한 번 조작할 때마다 +파일을 쓰고 로그를 읽어야 해 왕복이 길었음. + +공용 방식도 나쁘지 않았고 **개발환경이 다시 바뀔 때 되돌릴 수 있어야** 하므로, +`CLAUDE.md` 4장에서 요약으로 줄이는 대신 **상세를 이 문서에 옮겨 둠**. +지침의 규칙은 「ORCA 가 기본 · 사용자가 「공용 브라우저로」 라고 지시할 때만 공용」 임. + +## 되돌리는 법 — 한 줄 + +`./venv/Scripts/python.exe .claude/dev_up.py` 를 **옵션 없이** 부르면 예전대로 서버+창이 뜸. +(ORCA 기본 경로는 `--no-browser` 를 붙여 **서버만** 띄움 — 2026-09-12 추가한 스위치.) + +⚠ **공용 창과 ORCA 탭을 같이 띄우지 말 것** — 서로 부딪혀 ORCA 쪽 `snapshot`·`screenshot` 이 죽음. + +## 시동·재사용 + +- **시동은 한 번만**: `./venv/Scripts/python.exe .claude/dev_up.py`. + 서버(메인 폴더 8000·5173 / 보조 워크트리 8001·5174)와 `tmp/browser/driver.lock` 의 PID 가 + 살아 있으면 **재사용** — 다시 띄우지 않음. +- 포트는 폴더가 정함. 주인은 `OWNERS.md` 환경 점유표. +- 새로 띄우는 프로세스는 **분리 실행(detached)** — 대화 세션이 끝나도 살아남아 다음 세션이 이어 씀. +- 로그: 서버 `tmp/server.log` · 드라이버 `tmp/browser/driver.log`. + +## 조작 — 명령 파일 + +- `tmp/browser/cmd/NN_이름.py` 를 만들면 드라이버가 **이름순으로 실행**함. +- 파일 안에서 바로 쓰는 전역: `page`(Playwright 페이지) · `log` · `shot` · `time`. +- 결과는 `tmp/browser/driver.log` (RUN/OK/ERROR/SHOT 줄) · 스크린샷은 `tmp/browser/shots/`. +- ⚠ `tmp/` 는 창끼리 안 건너감 — 남길 시험 코드는 `resources/tester` 에 둘 것. + +## 캐시·재시작 + +- ⚠ **브라우저 창 재시작 금지** — 사용자 화면·세션이 날아감. 창 종료도 사용자가 지시할 때만. +- 캐시가 문제면 창을 죽이지 말고 **명령 파일 안에서** 비울 것: + + ```python + page.context.new_cdp_session(page).send("Network.clearBrowserCache") + page.reload() + ``` + +- **재시작 대상은 서버뿐** — `taskkill /PID /T /F` → `dev_up.py`. + 그것도 아래 표에서 재시작이 유일한 수단일 때만. + +## 코드 수정이 화면에 닿는 조건 (공용 브라우저 표현) + +| 무엇을 고쳤나 | 해야 할 것 | +| ------------------------------------------------------------------ | ------------------------------ | +| 페이지·공용 코드 (`B0x_*/*.ts`, `ui_template/`) | `page.reload()` 한 번 | +| CAD 앱 (`B07_DesignDetail/openwebcad/src/**`) | `npm run build` + 캐시 비우기 | +| 백엔드 엔진·템플릿 (`*.py`, `resources/template_2dDrawing/*.json`) | 백엔드 재시작 | + +ORCA 기본 경로에서는 같은 표가 `orca reload` 로 바뀜 — 지침 4장 참조. + +## 브라우저와 무관하게 그대로인 규칙 + +- **검증 완결 책임 = Claude** — 「사용자가 확인」으로 넘기지 말 것. + 직접 조작하고 **수치로 판정**(sessionStorage · SVG 실좌표 · 툴팁 · 스크린샷) 뒤 결과만 보고. +- **조작으로 바꾼 값은 사용자가 쓰던 값으로 되돌려 놓을 것.** +- `sessionStorage` 는 **포트별로 갈림** — 검증 전에 그 포트에서 상태를 다시 세울 것. + +## 미확인 — ORCA 쪽 캐시 비우기 + +`orca` 명령에는 캐시를 비우는 전용 명령이 없음(2026-09-12 `orca --help` 확인). +CAD 앱을 `npm run build` 한 뒤 옛 화면이 남는지 **첫 B07 검증 때 시험하고 결과를 이 문서에 적을 것.** +후보 셋: ① `orca reload` 만으로 충분(빌드 산출물 이름에 해시가 붙으면 그럴 것) · +② `orca tab close` 후 `orca tab create` · ③ `orca tab profile create` 로 새 프로필 탭 +(프로필을 바꾸면 `sessionStorage` 도 비므로 상태를 다시 세워야 함).