docs(verification): 화면 검증 기본을 ORCA 내장 브라우저로 바꾸며 공용 브라우저 상세 보관

- 지침 4장은 ORCA 기본 · 공용은 사용자가 지시할 때만으로 줄임
- 되돌릴 때 필요한 시동·명령파일·캐시 비우기·재시작 절차를 원문 그대로 이 문서에 옮김
- ORCA 쪽 캐시 비우기는 전용 명령이 없어 미확인으로 남김 (첫 B07 검증 때 확정할 것)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
This commit is contained in:
2026-09-12 10:14:01 +09:00
co-authored by Claude Opus 5
parent 3c37c4ed92
commit 746d6fe0d6
@@ -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 <main.py 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` 도 비므로 상태를 다시 세워야 함).