Skip to content

muni v0.25.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 00:42
· 39 commits to main since this release

머리글 행을 옅은 색으로 칠하는 것 — 한국어 보고서가 표의 제목과 본문을 나누는 가장 흔한 방법입니다. .hwpx.docx 리더는 예전부터 칸 음영과 세로 정렬을 지켰는데 .hwp 리더만 그것을 통째로 버려서, 같은 표라도 옛 한글 파일로 들어오면 모든 칸이 흰 바탕에 위 정렬이 되었습니다.

추가

.hwp — 칸 음영

칸의 색은 칸에 없습니다. 셀은 DocInfo 의 BORDER_FILL 을 1부터 세는 번호 로 가리키기만 하고, 그 기록이 테두리 넷과 대각선 하나(각각 종류·굵기·COLORREF) 뒤에 채우기 정보를 답니다. 테두리 다섯을 건너뛰는 자리를 틀리면 채우기가 아닌 곳에서 색을 읽습니다.

채우기는 단색일 때만 배경색으로 씁니다. 그림과 그러데이션은 muni 가 들 수 없고, 그 첫 색을 평면 음영으로 읽으면 문서에 없던 색이 생깁니다.

.hwp — 칸의 세로 정렬

세로 정렬은 칸 주소가 아니라, 모든 문단 리스트가 여는 속성 낱말의 5·6번 비트 에 있습니다. 위·가운데·아래가 그 두 비트에 담깁니다.

흰색은 음영이 아닙니다

흰색은 음영이 없는 칸이 칠해지는 색이고, 두 형식 모두 "채우기 없음"을 흰색으로 적습니다. 그 판단은 hangul.CellShade 한 곳에 두어 .hwpx 리더도 같이 씁니다. 그 김에 .hwpx 만 검은 음영을 버리던 것이 .docx 리더와 같아졌습니다.

확인

형식 문서가 말하는 자리에 바이트를 깐 새 픽스처들입니다 — 셀 픽스처를 형식이 적은 전체 길이(주소·크기·높이·여백·테두리 번호)로 늘렸습니다.

  • 음영이 있는 칸과 흰 칸이 각각 어떻게 들어오는지
  • 그러데이션 채우기를 색으로 지어내지 않는지
  • 세로 정렬 셋(위·가운데·아래)이 그대로 들어오는지
  • 없는 BORDER_FILL 번호를 가리키는 칸이 표를 무너뜨리지 않는지

gofmt -l, go vet ./..., go test ./... 전체가 통과합니다.

업그레이드

마이그레이션과 설정 변경은 필요하지 않습니다.

gzip -dc muni-v0.25.0.tar.gz | docker load
docker compose -f compose.example.yaml --env-file .env up -d

머리글 행에 색이 든 표를 옛 한글 파일(.hwp)로 가져오셨다면 다시 가져와 보세요. 칸 음영과 세로 정렬은 이번에 처음 들어옵니다. 이미 가져와 둔 문서는 그대로 남습니다.

오프라인 설치

릴리스 asset 에는 muni:v0.25.0 Docker 이미지가 포함되어 있습니다.

gzip -dc muni-v0.25.0.tar.gz | docker load
docker image inspect muni:v0.25.0

cp .env.example .env
# .env의 네 값을 운영 환경에 맞게 변경합니다.
docker compose -f compose.example.yaml --env-file .env up -d

애플리케이션이 반드시 필요로 하는 런타임 환경변수는 다음 네 개입니다.

환경변수 설명
POSTGRES_DSN PostgreSQL 접속 문자열
BOOTSTRAP_ADMIN 최초 관리자 아이디 또는 이메일
BOOTSTRAP_ADMIN_PASSWORD 최초 관리자 비밀번호(12자 이상)
ENCRYPTION_KEY base64로 인코딩한 32-byte master key

PDF 변환 동작만 조정하는 선택 환경변수가 두 개 있습니다.

환경변수 기본값 설명
MUNI_CHROMIUM_PATH 자동 탐색 PDF Export에 사용할 headless 브라우저 경로
MUNI_PDF_CONCURRENCY 2 동시에 실행할 Chromium 프로세스 수(1~32)

운영 정보

  • 서비스 포트: 8080
  • Liveness: /healthz
  • Readiness: /readyz
  • REST API: /api/v1
  • 공개 링크: /s/{token} — 인증 없이 열리는 유일한 화면입니다
  • OpenAPI: /api/openapi.yaml — 실제 라우트와 일치하며, 테스트가 그것을 지킵니다
  • Prometheus: /metrics — 관리자 인증 필요
  • MCP: /mcp
  • 지원 DB: PostgreSQL 15 이상
  • 이미지에는 PDF Export용 Chromium과 Noto CJK 글꼴이 포함되어 있습니다.

릴리스 파일 검증

  • 파일: muni-v0.25.0.tar.gz
  • 크기: (릴리스 후 기록)
  • SHA-256: (릴리스 후 기록)
  • 내부 이미지 태그: muni:v0.25.0
sha256sum muni-v0.25.0.tar.gz

GitHub Actions가 이미지 빌드, archive 생성, 내부 이미지 태그 검증을 완료한 뒤 이 asset을 게시했습니다.

문서