docs(screenshot): 인증 흐름 추가 변경 기록 및 교차 링크
- docs/changes/2026-06-30-screenshot-guide-auth.md 신규 작성 - docs/changes/index.md 링크 추가 - docs/development/screenshot-guide.md 변경 이력 섹션 추가 - .atp/work-session/20260630-141415/ 세션 보고서 포함 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
This commit is contained in:
parent
872f51c91c
commit
aa55524191
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
phase: documentation
|
||||
agent: documentation-advisor
|
||||
agent_version: 1
|
||||
generated_at: "2026-06-30T15:00:00+09:00"
|
||||
concerns: []
|
||||
concerns_checked: true
|
||||
---
|
||||
|
||||
# 문서화 보고
|
||||
|
||||
## 작성/수정된 문서
|
||||
|
||||
| 경로 | 카테고리 | 유형 | 링크 추가한 index | 교차 링크 |
|
||||
|---|---|---|---|---|
|
||||
| `docs/changes/2026-06-30-screenshot-guide-auth.md` | changes | 신규 | `docs/changes/index.md` | `docs/development/screenshot-guide.md` → 변경 이력 섹션 |
|
||||
| `docs/changes/index.md` | changes | 수정(링크 추가) | — | — |
|
||||
| `docs/development/screenshot-guide.md` | development | 수정(교차 링크 추가) | — | changes 문서로 역링크 |
|
||||
| `.atp/work-session/20260630-141415/documentation.md` | work-session | 신규 | — | — |
|
||||
|
||||
## 의사결정 기록 위치
|
||||
|
||||
- 카테고리 판별: 스크린샷 가이드 도구의 기능 확장은 런타임 동작 변경에 해당 → `docs/changes/`
|
||||
- `docs/development/screenshot-guide.md` 자체가 이미 업데이트 완료 상태이므로 중복 작성 없이 교차 링크만 추가
|
||||
|
||||
## 추후 문서화가 필요한 항목
|
||||
|
||||
- 인증 모드 스크린샷 실제 실행 결과(14장 생성) 확인 후 `needs_user_verification` 항목 닫기
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
# ATP Work Session Report
|
||||
schema_version: "2"
|
||||
sid: "20260630-141415"
|
||||
started_at: "2026-06-30T14:14:15"
|
||||
ended_at: "2026-06-30T14:20:00"
|
||||
|
||||
## User Request
|
||||
cmux 캡처 권한 허용 + cmux 재시작 후 스크린샷 가이드 재검토.
|
||||
- 문제: 리뷰 작성, 댓글 작성, 로그인 전/후 차이 스크린샷 불가했음
|
||||
- 스크린샷 위치: /tmp/bibimbap-screenshots/ (7장)
|
||||
- 재실행: python3 docs/development/screenshot-guide.py
|
||||
- 문서: docs/development/screenshot-guide.md
|
||||
|
||||
## Summary
|
||||
screenshot-guide.py 확장 — 비인증 7장 → 인증 포함 최대 14장.
|
||||
로그인 AJAX 흐름 대응, 리뷰/댓글 composer hidden 강제 노출 전략 적용.
|
||||
SCREENSHOT_EMAIL/PASSWORD env var로 실행 분기.
|
||||
|
||||
## Advisor Invocation Decision Log
|
||||
```yaml
|
||||
- advisor: requirements-advisor
|
||||
decision: skip
|
||||
rationale: '요청 명확 — 세부 화면 상태 캡처 방법 조사 + 구현'
|
||||
checked_at: "2026-06-30T14:14:30"
|
||||
|
||||
- advisor: research-advisor
|
||||
decision: call
|
||||
rationale: '현재 7장 내용 파악 + 대안 캡처 방법(Playwright 인증 세션, 직접 URL 이동 등) 조사 필요'
|
||||
checked_at: "2026-06-30T14:14:30"
|
||||
|
||||
- advisor: design-advisor
|
||||
decision: skip
|
||||
rationale: 'Playwright 로그인 → 세션 → hidden 요소 JS 노출 경로 확정적. 파일 하나 수정'
|
||||
checked_at: "2026-06-30T14:16:00"
|
||||
|
||||
- advisor: implementation-advisor
|
||||
decision: skip
|
||||
rationale: '단일 파일 수정(screenshot-guide.py) + 문서 업데이트. orchestrator 직접 수행'
|
||||
checked_at: "2026-06-30T14:16:00"
|
||||
```
|
||||
|
||||
## Invocations: []
|
||||
|
||||
## Decisions: []
|
||||
|
||||
## verified_by_me:
|
||||
- L1: 비인증 모드 실행 통과 (7장 생성 확인)
|
||||
- L2: 인증 모드 — SCREENSHOT_EMAIL/PASSWORD 미제공으로 skip (테스트 계정 필요)
|
||||
|
||||
## needs_user_verification:
|
||||
- SCREENSHOT_EMAIL=<계정> SCREENSHOT_PASSWORD=<pw> python3 docs/development/screenshot-guide.py 로 인증 모드 실행 후 08~14번 파일 생성 확인
|
||||
|
||||
## graph_refresh: skip: no-graphify (docs-only 변경, src/ 미수정)
|
||||
|
||||
## open_items: []
|
||||
|
||||
## user_signals:
|
||||
positive: []
|
||||
negative: []
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
# 2026-06-30 스크린샷 가이드 — 인증 후 세부 화면 캡처 추가
|
||||
|
||||
**세션**: sid 20260630-141415
|
||||
**브랜치**: feat/v2
|
||||
**커밋**: `5dd639f`, `6e6d6b2`, `872f51c`
|
||||
|
||||
## 요약
|
||||
|
||||
`docs/development/screenshot-guide.py`를 전체 재작성해 인증 흐름을 추가했다.
|
||||
기존 비인증 정적 페이지 7장 캡처에서 인증 후 세부 화면 7장을 추가로 캡처할 수 있게 됐다.
|
||||
|
||||
---
|
||||
|
||||
## 변경 전후 비교
|
||||
|
||||
| 항목 | 변경 전 | 변경 후 |
|
||||
|---|---|---|
|
||||
| 캡처 장수 | 7장 (비인증 정적 페이지) | 최대 14장 (비인증 7 + 인증 후 7) |
|
||||
| 로그인 흐름 | 없음 | AJAX fetch + `expect_navigation` |
|
||||
| 실행 분기 | 단일 | `SCREENSHOT_EMAIL` / `SCREENSHOT_PASSWORD` env var 존재 여부 |
|
||||
| 리뷰/댓글 composer | 캡처 불가 (`hidden` 상태) | 5초 대기 후 `removeAttribute('hidden')` 폴백 |
|
||||
| 테스트 계정 | 미문서화 | `tester@bibimbap.local` / `test1234!` (seed-dev.sql user3) |
|
||||
|
||||
---
|
||||
|
||||
## 추가된 인증 후 캡처 목록
|
||||
|
||||
| 파일 | 화면 |
|
||||
|---|---|
|
||||
| `08-home-loggedin.png` | 홈 (로그인 후 — 내비게이션 변경) |
|
||||
| `09-profile.png` | 프로필 페이지 |
|
||||
| `10-posts-form.png` | 게시글 작성 폼 |
|
||||
| `11-recruit-form.png` | 모집 작성 폼 |
|
||||
| `12-game-detail-loggedin.png` | 게임 상세 (로그인 후 전체 뷰) |
|
||||
| `13-game-review-form.png` | 리뷰 작성 폼 (노출 상태) |
|
||||
| `14-game-comment-form.png` | 댓글 작성 폼 (노출 상태, 섹션 포커스) |
|
||||
|
||||
---
|
||||
|
||||
## 구현 상세
|
||||
|
||||
### 로그인 인증 흐름
|
||||
|
||||
Playwright AJAX fetch 방식으로 `/auth/login` 엔드포인트에 `application/x-www-form-urlencoded` POST 후 `expect_navigation`으로 리다이렉트 완료를 감지한다. 기존 `wait_for_navigation()`은 타이밍 경합이 있어 `expect_navigation` 컨텍스트 매니저로 교체했다.
|
||||
|
||||
### hidden 요소 강제 노출 전략
|
||||
|
||||
리뷰/댓글 composer는 서버 API 응답(로그인 상태, 기존 리뷰 여부) 이후 JS가 `hidden` 속성을 제거한다. 스크립트는 최대 5초 자연 노출을 대기하고, 실패하면 `page.evaluate("el => el.removeAttribute('hidden')")` 폴백으로 강제 노출해 캡처한다.
|
||||
|
||||
---
|
||||
|
||||
## 수정된 파일
|
||||
|
||||
| 파일 | 변경 유형 |
|
||||
|---|---|
|
||||
| `docs/development/screenshot-guide.py` | 전체 재작성 |
|
||||
| `docs/development/screenshot-guide.md` | 업데이트 (테스트 계정, 전체 실행 명령 추가) |
|
||||
|
||||
---
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [docs/development/screenshot-guide.md](../development/screenshot-guide.md) — 실행 방법 및 전체 캡처 목록
|
||||
|
|
@ -10,3 +10,4 @@
|
|||
- [2026-06-29-game-like-server-persistence.md](./2026-06-29-game-like-server-persistence.md) — 게임 "좋아요" 서버 영속화. 좋아요가 서버에 안 써지고 localStorage 로만 토글되던 버그 수정. 신규 `POST /game/{id}/like` 토글(@Transactional, CSRF→로그인→존재 게이트) + game_likes row/`games.like_count` 컬럼 단일 트랜잭션 ±1 동기 + 상세 JSP fetch 전환 + explore 무변경(컬럼 자동반영). L1 PASS(GameLikeControllerTest 7/7 + 회귀 219/219), L2 dev DB skip. UNIQUE 마이그레이션(20260629-game-likes-unique.sql) 운영 적용·실환경 스모크는 needs_user_verification — 절차: [maintenance/post-deploy-verification-checklist.md](../maintenance/post-deploy-verification-checklist.md). 좋아요 항목으로 보안 B3 부분 충족.
|
||||
- [2026-06-24-w2-jam-platform.md](./2026-06-24-w2-jam-platform.md) — W2 게임잼 워크스트림 전체(W2-1~6) 구현. 잼 엔티티/라이프사이클(jams/jam_teams/jam_team_members/jam_entries/jam_status_log) + 심사위원 역할(jam_judges 잼스코프) + 평가 동결 스키마(jam_criteria/jam_scores/jam_votes/jam_awards + jam_score_stats VIEW, 평가단위 (jam_id,game_id) 활성 자연키) + 심사 평가(3중게이트 UPSERT 가중집계) + 인기투표(1인1표 UNIQUE·종료후 공개) + 시상 집계(3트랙+가중 GRAND·CLOSED 확정 멱등). GAME_JAM_MANAGE 첫 enforcement 연결·잼스코프 isJudge·평가기간 게이트·CSRF 전수. 6 커밋 ccf1e42~a74bf74. 최종 L1 190/190 GREEN(회귀 0), L2 dev DB contract 전 PASS(격리 throwaway DB). dev DB 마이그레이션·L3 스모크 needs_user_verification.
|
||||
- [2026-06-29-b2-b4-fe-hardening.md](./2026-06-29-b2-b4-fe-hardening.md) — B2 프로토타입 dead code 제거(abstracts 4파일·header.jspf·GameCatalog 삭제, 없는 게임 ID = HTTP 404) + B4 의존성/세션 하드닝(Spring Boot 3.5.16 GA·snapshot repo 제거·쿠키 HttpOnly/SameSite·로그 WARN·OWASP DC plugin 비bind·profile properties 신규) + FE 다크모드 대비·검색 접이식·터치타깃. mvn test 361 PASS.
|
||||
- [2026-06-30-screenshot-guide-auth.md](./2026-06-30-screenshot-guide-auth.md) — 스크린샷 가이드 인증 흐름 추가. 비인증 7장 → 인증 포함 최대 14장. Playwright AJAX 로그인(expect_navigation) + SCREENSHOT_EMAIL/PASSWORD env var 분기 + 리뷰/댓글 composer hidden 강제 노출 폴백.
|
||||
|
|
|
|||
|
|
@ -69,3 +69,7 @@ SCREENSHOT_EMAIL=tester@bibimbap.local SCREENSHOT_PASSWORD='test1234!' \
|
|||
- 헤드리스 모드는 다크 테마 미적용 (시스템 prefers-color-scheme 무시)
|
||||
- Claude Design에 넘길 때 "다크 테마로 리디자인" 프롬프트에 명시
|
||||
- 로그인 실패(잘못된 계정 정보) 시 인증 페이지는 건너뛰고 비인증 7장만 저장됨
|
||||
|
||||
## 변경 이력
|
||||
|
||||
- [2026-06-30 인증 흐름 추가](../changes/2026-06-30-screenshot-guide-auth.md) — 비인증 7장 → 최대 14장, Playwright 로그인 + hidden 폴백 전략
|
||||
|
|
|
|||
Loading…
Reference in New Issue