3.9 KiB
3.9 KiB
2026-06-29 B2·B4·FE 하드닝
세션: sid 20260629-175705 (resumed from 20260629-174807)
브랜치: feat/v2
최종 테스트: mvn test 361 PASS
요약
3트랙 병렬 작업: B2 프로토타입 dead code 제거, B4 의존성/세션/운영 하드닝, FE 프론트엔드 디자인 개선.
B2. 프로토타입 dead code 제거
삭제된 파일
| 파일 | 이유 |
|---|---|
src/main/java/com/pandoli365/bibimbap/abstracts/Service.java |
참조 0, 세션키 "id" 불일치(활성코드는 "userId") — 인증 우회 함정 |
src/main/java/com/pandoli365/bibimbap/abstracts/Request.java |
참조 0, dead |
src/main/java/com/pandoli365/bibimbap/abstracts/Result.java |
참조 0, dead |
src/main/java/com/pandoli365/bibimbap/abstracts/ErrorResult.java |
참조 0, dead |
src/main/webapp/WEB-INF/jsp/fragments/header.jspf |
include 참조 0, Spring Security 의존성 없는 환경에서의 orphan |
src/main/java/com/pandoli365/bibimbap/game/GameCatalog.java |
빈 배열 stub, 영구 도달불가 분기 |
동작 변경
- 없는 게임 ID 접근: 기존
GameCatalogfallback(redirect:/ 또는 정적뷰) → HTTP 404 (ResponseStatusException(NOT_FOUND)). 사용자 확정(D-B2-404). ApiExceptionControllerAdvice에ResponseStatusException핸들러 추가 — 기존Exceptioncatch-all 이 404를 500으로 덮던 결함 수정.
테스트
GameLikeControllerTest.gameDetailThrowsNotFoundWhenGameMissing회귀 가드 추가.- 런타임 스모크:
GET /game/99999= 404,GET /game/3= 200.
B4. 의존성/세션/운영 하드닝
pom.xml
| 변경 | 이전 | 이후 |
|---|---|---|
| Spring Boot 버전 | 3.5.14-SNAPSHOT |
3.5.16 (GA) |
| spring-snapshots repository | 있음 | 제거 |
| spring-snapshots pluginRepository | 있음 | 제거 |
| OWASP Dependency-Check plugin | 없음 | 12.2.2 추가(빌드 비bind, 수동 실행) |
application.properties (공통 base)
| 변경 | 이전 | 이후 |
|---|---|---|
| ibatis/mybatis 로그 | TRACE |
WARN |
| 세션 쿠키 HttpOnly | 미설정 | true |
| 세션 쿠키 SameSite | 미설정 | lax |
신규 파일
src/main/resources/application-dev.properties— ibatisTRACE로그 복원(로컬 개발 전용).src/main/resources/application-live.properties—server.servlet.session.cookie.secure=true(운영 전용).
런타임 확인
Set-Cookie: JSESSIONID=...; Path=/; HttpOnly; SameSite=Lax 확인.
결정 기록
- D-B4-cfgloc: 설정 위치 = Spring 표준
application-{profile}.properties. 기존db.properties(DB 전용) 공존. - D-B4-multipart: 1GB 유지, 리스크 문서화 → security/multipart-size-risk.md.
- D-B4-cve: OWASP Dependency-Check 오프라인 비bind → security/owasp-dependency-check-guide.md.
FE. 프론트엔드 디자인 개선
변경 내용
| 항목 | 변경 |
|---|---|
| F1 — index 검색 위계 | .advanced-search 를 <details> 접이식으로 래핑. prefill(쿼리 파라미터) 시 open 속성 자동 부여 |
| F2 — 다크모드 input 대비 | 입력 테두리 border-color: rgba(255,255,255,0.26) 강화. 적용 뷰: login·signup·index·game-detail |
| F5 — 터치타깃 | 체크박스 font-size 1.15rem. 적용 뷰: login·signup |
확인
브라우저 스모크: 다크모드 토글 후 input 대비 개선, 검색 접이식 동작, 터치타깃 확대 확인.
참조
- 보안 체크리스트: security/security-remediation-checklist.md
- OWASP DC 가이드: security/owasp-dependency-check-guide.md
- Multipart 리스크: security/multipart-size-risk.md
- Local dev 함정: development/local-dev-setup.md