v1.12.31 불필요 파일 정리 및 업로드·배포 안정성 보강

This commit is contained in:
2026-10-21 19:10:01 +09:00
parent 7b6fc45bf3
commit 0cd888a427
17 changed files with 170 additions and 59 deletions

View File

@@ -1,3 +1,7 @@
## 2026-10-21 v1.12.31 — 사용하지 않는 파일과 빌드에 섞인 운영 데이터를 정리한다
Nuxt의 화면·컴포넌트·서버·공용 로직 분리는 유지한다. 테스트 소스는 회귀 검증에 사용하고 실행 결과만 삭제한다. Compose 3개는 NAS 앱 실행·CLI 소스 빌드·격리 테스트 DB의 역할이 달라 유지한다. 렌더러·동적 컴포넌트 참조가 없는 버튼·상품 카드 초기 컴포넌트 2개만 제거한다. 실제 업로드는 사용자 데이터이므로 삭제하지 않고 Docker 빌드 입력과 Nitro 정적 복사에서 제외한다. 업로드 내부 경로 차단은 정규화 뒤 검사해 인코딩 구분자와 상위 경로 조합으로 우회하지 못하게 한다. 운영 SQL과 적용 이력은 파일별 같은 트랜잭션에서 처리해 실패 시 부분 적용을 남기지 않는다. 보안 의존성 갱신과 큰 파일 분할은 영향 범위가 다른 후속 작업으로 기록한다.
## 2026-10-21 v1.12.30 — 긴 접속 시간과 방문 평균을 구분한다
현재 접속자 시간은 30분 이후도 표시하되 슬립으로 오래 멈춘 구간을 포함하지 않도록 페이지 진입부터의 단순 경과 대신 heartbeat 실행 간격을 누적한다. 운영체제 슬립을 직접 판정할 수 없으므로 접속 TTL과 같은 90초 이상 중단 구간을 제외한다. 짧은 중단마다 초기화하지 않도록 30분 미만이면 기존 방문을 유지하고, 30분 이상이면 새 콘텐츠 세션과 페이지뷰로 시작해 이전 접속 시간·읽음 판정을 이어받지 않는다. 별도 폴링 없이 기존 20초 주기를 유지하고 탭 복귀·페이지 복원 때 즉시 갱신한다. 실시간 값만 기존 정수 컬럼 범위로 확장하고 평균 체류의 콘텐츠별 30분 상한은 유지해 오래 열린 탭 때문에 기간 통계가 크게 바뀌지 않게 한다. 개별 접속 시간과 기간 평균은 대상이 다르므로 접속자 목록에는 개별 시간 하나만, 통계에는 기존 평균을 표시한다.