-
hanyul released this
2026-10-22 08:28:40 +09:00 5.19.0 주요 변경사항
화면(web)
- 뷰어 모드 아이콘을 페이지=세로 네모, 두 페이지=펼친 책, 웹툰=가로 줄로 바꾸고 설정의 기본 뷰어 모드에도 같은 아이콘을 보입니다.
- 대시보드 읽기 기록의 페이지 이동이 홈과 같은 번호 pager(« ‹ 1 2 3 … › »)로 바뀌고 페이지를 바꾸면 목록 맨 위로 이동합니다.
- 북마크 갤러리 탭과 모아보기 탭의 끝에 홈과 같은
총 N개 · 끝표시를 둡니다(새로고침 오류 중에는 숨김).
런타임·의존성
- backend·crawler·web 이미지가 Node 26(26.12.1, Alpine 3.24)으로 올라갑니다. 10월 21일 Node 보안 수정(Brotli 디코더 RCE, TLS 호스트명 검증 우회, keep-alive desync 등)을 포함합니다.
- next 16.4.2(critical RCE 2건·DoS 1건 수정), react 19.3.1, NestJS 12.2.0, express 5.3.0, lucide-react 1.61, eslint 10.13, @aws-sdk/client-s3 3.1155 등 patch·minor 갱신. TypeScript 7·ioredis 6·npm 12는 보류.
- MinIO(Silo) 이미지가
RELEASE.2026-10-18T00-00-00Z로 올라가고 태그만 고정합니다(digest 없음). nginx는mainline-alpine-slim(1.31.7) 태그만 고정하며 게시 때 upstream digest를 지문에 넣어 바뀐 경우에만 다시 빌드합니다.
새 기능과 런타임 교체가 섞였고 API·schema·환경 키 변경은 없어 minor 5.19.0으로 게시합니다.
이미지 게시 범위
- 새로 빌드(5.19.0·latest): backend·crawler·web(Node 26.12.1 base, 라이브러리 갱신), nginx(
mainline-alpine-slim1.31.7, 게시 때 지문에 넣은 upstream digest로 바인딩), byedpi(지문 규칙 변경으로 1회 재빌드, 내용 변화 없음). 다섯 서비스 모두 새 digest입니다. -ChangedOnly게시였지만 지문 계산 규칙 자체가 바뀌어 이번에는 다섯 서비스가 모두 "변경"으로 판정됐습니다. 다음 릴리스부터는 입력이 바뀐 서비스만 다시 빌드됩니다.- 다섯 이미지 모두
5.19.0태그가 있으므로IMAGE_TAG=5.19.0으로 일괄 고정할 수 있습니다.
NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- schema 변경 없음, Compose 변경 있음:
compose.yml의minio이미지가 Silo 2026-10-18로 바뀝니다. 반영 SQL은 없습니다. - Silo 업그레이드: MinIO 이미지 절차대로 수집·GC·색인·썸네일을 멈춘 뒤
data/minio를 보존하고minio를 재생성합니다. Silo는 역방향 교체를 지원하지 않으므로 되돌릴 때는 보존본을 복원합니다. 2026-10-18 릴리스는 Object Lock·IAM 권한 검사가 엄격해졌고503 SlowDownWrite를 재시도 대상으로 돌려줍니다(앱의 S3 SDK가 재시도). - backend·crawler·web(+log-reader)·nginx·byedpi 다섯 이미지가 모두 교체됩니다(Node 26 base와 지문 규칙 변경).
- 배포 전 레지스트리에 다섯 서비스의
latest가 모두 있는지 확인합니다. - rollback: 다섯 서비스 모두
5.19.0태그가 있으므로 앱 이미지는IMAGE_TAG=5.19.0으로 고정할 수 있고, 이전 상태는IMAGE_TAG=5.18.0(web·backend)과5.17.2(crawler·nginx·byedpi) 조합입니다. minio는 보존본 복원이 필요합니다.
검증
- 릴리스 commit
9c2597c6(앱 코드는 mainc549f80b와 같은 tree): 개발 stack 전체 재빌드 뒤(backend·crawler·web Node v26.12.1, nginx 1.31.7 slim, Silo 2026-10-18 healthy)run-unit.ps1 -Workspace all통과(backend 88·crawler 72·web 155 suites),run-integration.ps1통과(api·browser),run-passkey.ps1통과(등록·인증·재사용 거절·backend 재시작 복원). - 업그레이드 브랜치(같은 Dockerfile·ops·lockfile)에서
run-operations.ps1 -DeploymentOnly(실제 slim nginx, 모의 게시의 nginx-base-moved·mid-publish 시나리오 포함)·run-compose-compat.ps1·ops/update-base-images.ps1·npm ls단일 버전 확인·npm audit0건(root prod/all, integration api·browser, passkey) 통과. - web 변경 3건은 각각 Sol(gpt-6.1-sol) 독립 리뷰(P2 2건 반영: 북마크 새로고침 오류 중 끝 표시 숨김, nginx 지문-빌드 digest 바인딩). 문서 링크·anchor 검사 0건, Compose config(dev·prod)·
git diff --check통과. - NOT RUN:
run-schema.ps1(schema 변경 없음), crawler-recovery·network runner, 실기기 수동 확인.
게시 확인
- 릴리스 소스:
9c2597c6(annotated Git 태그5.19.0대상). - backend
5.19.0·latest(Node 26,APP_VERSION=5.19.0):sha256:b4eb4c0e6f8a3e0896dea2eac994dc5682ddc6b43da75d5b79e71b741b308e02 - crawler
5.19.0·latest(Node 26):sha256:7258b2561247f44e1ef0d1e5b2749259e906537f3f9eae25caeac71b86766c49 - web
5.19.0·latest(Node 26, next 16.4.2):sha256:40cf54016aeedea4cd087c3d2eb402038c63bcb95df4a295b20c9e45367e96d8 - nginx
5.19.0·latest(mainline-alpine-slim 1.31.7):sha256:a5b16f88ea2444cf1c7bfcdc9c2c2fe11f7452cef255ce10f55bf9b2565d1fc7 - byedpi
5.19.0·latest(재빌드, 내용 동일):sha256:3346e1a4ad585965ea3cc68984a8f8e37f707a7cdceb036c6e299e4dea15e1cd ops/publish-images.ps1 -Version 5.19.0 -Publish -ChangedOnly첫 실행은 버전 태그 push 중 프록시 연결 종료(use of closed network connection)로 byedpi만 올라간 채 실패했습니다. 로컬에 빌드된 backend·crawler·web·nginx5.19.0을docker push로 올린 뒤-PromoteOnly -ChangedOnly -ServiceNames byedpi,nginx,backend,crawler,web로latest를 승격했고(Registry tags verified for 5.19.0.),docker manifest inspect로 다섯latest·5.19.0을 다시 확인했습니다.
Downloads 2
-
Source code (zip)
0
2026-10-22 08:28:40 +09:00 -
Source code (tar.gz)
0
2026-10-22 08:28:40 +09:00