# 2026-06-29 B2·B4·FE 작업 세션 핸드오프 **sid**: 20260629-175705 (resumed from 20260629-174807) **완료 상태**: 3트랙 모두 완료·검증 **브랜치**: feat/v2 **최종 테스트**: `mvn test` 361 PASS ## 완료된 트랙 ### B2 — 프로토타입 dead code 제거 - abstracts/ 패키지 4파일 삭제. - fragments/header.jspf 삭제. - game/GameCatalog.java 삭제. - GameController.gameDetail() fallback 제거 → 없는 게임 ID = HTTP 404. - ApiExceptionControllerAdvice에 ResponseStatusException 핸들러 추가(404 status 보존). - GameLikeControllerTest.gameDetailThrowsNotFoundWhenGameMissing 추가. - 런타임 스모크: /game/99999=404, /game/3=200. ### B4 — 의존성/세션/운영 하드닝 - Spring Boot 3.5.14-SNAPSHOT → 3.5.16 GA. - pom에서 spring-snapshots repository·pluginRepository 제거. - OWASP dependency-check-maven 12.2.2 비bind 추가. - application.properties: ibatis TRACE→WARN, HttpOnly·SameSite=Lax 추가. - application-dev.properties 신규(ibatis TRACE). - application-live.properties 신규(cookie.secure=true). - 런타임 Set-Cookie 확인 완료. ### FE — 프론트엔드 디자인 개선 - index 검색 `
` 접이식(prefill 시 open). - 다크모드 input 테두리 대비 강화(login·signup·index·game-detail). - 체크박스 터치타깃 1.15rem(login·signup). - 브라우저 스모크 확인. ## 주요 결정 | ID | 결정 | | --- | --- | | D-B2-404 | 없는 게임 ID = HTTP 404 (ResponseStatusException(NOT_FOUND)). 사용자 확정. | | D-B4-cve | CVE 스캔 = OWASP Dependency-Check 비bind. autoUpdate=false, CVSS>=7 실패. 사용자 확정. | | D-B4-multipart | multipart 1GB 유지. 리스크 문서화: docs/security/multipart-size-risk.md. 사용자 확정. | | D-B4-cfgloc | application-{profile}.properties 신규. db.properties 공존. | | D-test-mockfix | BibimbapApplicationTests GameLikesMapper @MockBean 누락(B3 사전결함) 1줄 보강. | ## 이월 없음 이번 세션의 open_items(dev override online prefetch 함정)는 development/local-dev-setup.md에 노트 추가 완료. ## 참조 - 구현 이력: [changes/2026-06-29-b2-b4-fe-hardening.md](../changes/2026-06-29-b2-b4-fe-hardening.md) - 보안 체크리스트: [security/security-remediation-checklist.md](../security/security-remediation-checklist.md) - OWASP DC: [security/owasp-dependency-check-guide.md](../security/owasp-dependency-check-guide.md) - Multipart 리스크: [security/multipart-size-risk.md](../security/multipart-size-risk.md)