@ihabdevteam/core 0.220.0 → 0.221.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,89 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.221.1
11
+
12
+ ### 고침 — `CORE_VERSION` 이 0.220.0 에 머물러 있었다
13
+
14
+ 0.221.0 은 `package.json` 만 올리고 `src/version.ts` 를 안 올린 채 나갔다. 소비자가
15
+ "지금 새 판을 보고 있나" 를 물으면 **0.220.0 이라고 대답한다** — 이 상수가 있는 이유
16
+ 자체를 무너뜨리는 값이다(묶개를 지나온 증거여야 하는데 거짓을 말한다).
17
+
18
+ `test/coreVersion.test.ts` 와 `test/versionOnEverySubpath.test.ts` 가 바로 이것을 잡으라고
19
+ 있는 시험인데, **판을 올린 뒤 시험을 다시 안 돌렸다.** 발행 일감은 시험을 돌리지 않는다
20
+ (smoke test 만 돈다) — 자동 CI 는 2026-09-04 에 사용자 요청으로 껐고, 손으로 돌리는
21
+ `CI` 일감에만 들어 있다. 발행 절차에서 **판올림 다음에** 시험을 돌리는 것으로 메운다.
22
+
23
+ ### 고침 — `TZ=UTC` 에서만, 그것도 하루 중 아홉 시간만 울던 시험 다섯
24
+
25
+ `Calendar` 는 보는 달을 **KST 로** 정한다(core 는 '오늘' 을 늘 KST 로 본다 —
26
+ `test/dateKstBasis.test.ts` 가 정본이다). 그런데 `calendarDayClick` · `pressableDivs` 두
27
+ 시험은 '오늘' 을 **기계 시계**(`new Date().getMonth()`)로 잡고 있었다. 한국이 자정을 넘고
28
+ UTC 는 아직 어제인 **9시간** 동안, `TZ=UTC` 로 도는 관문에서만 어긋난다 — 2026-10-01
29
+ 00:22 KST 실측: `2026-10-09` 가 와야 할 자리에 `2026-09-09` 가 왔고, 방문 배지는 옆 달로
30
+ 밀려 아예 안 그려졌다. 한국 아침 9시가 지나면 저절로 안 난다.
31
+
32
+ **컴포넌트는 옳았다** — 시험만 KST 로 맞췄다(`getTodayKst()`). 고치지 않으면 다음 사람도
33
+ "어제는 됐는데" 를 똑같이 겪는다. 말귀 쪽에서 같은 자리를 먼저 겪고 알려 주었다.
34
+
35
+ ### 고침 — 달이 바뀌는 며칠에만 울던 차트 시험 스물둘
36
+
37
+ 같은 것을 찾다가 더 큰 무리가 나왔다. `BarChart` 는 기본으로 '주' 보기를 열고, 오늘이 그
38
+ 달 **첫 월요일 앞**이면 오늘 주는 앞 달의 마지막 주다(`todayWeekValue` — 의도한 규칙이다).
39
+ 그런데 차트 시험 열다섯이 자료를 놓을 달 이름을 `new Date().getMonth()` 로 지었다. 대부분의
40
+ 날에는 두 셈이 같아 초록이었고, **10월 1~4일**(첫 월요일 10/5)에는 자료가 차트가 여는 달
41
+ 밖에 놓여 막대가 하나도 안 그려졌다 — 2026-10-01 00:22 KST 에 여덟 파일 스물둘이 한꺼번에
42
+ 울었다. `TZ=UTC` 관문은 한국 자정~아침 9시에 같은 자리에서 걸린다.
43
+
44
+ **여기도 컴포넌트는 옳았다.** 시험이 **차트에게 어느 달을 여는지 묻도록** 바꿨다
45
+ (`todayWeekValue().monthKey`). 아직 안 울던 일곱 파일 여덟 줄도 같은 꼴이라 같이 고쳤다.
46
+
47
+ 그때그때 고치면 다음 사람이 같은 줄을 다시 쓴다 — `test/dateKstBasis.test.ts` 가 이제
48
+ `test/` 전체를 훑어 기계 시계로 달 이름을 짓는 줄이 있으면 운다.
49
+
50
+ 이 셋을 고친 뒤 **KST · UTC 양쪽에서 3,786 개가 모두 초록**이다(2026-10-01, 달이 바뀌는
51
+ 바로 그날에 쟀다).
52
+
53
+ ## 0.221.0
54
+
55
+ ### 인쇄 문서가 **그 종이 칸**에 맞춰 글씨를 다시 센다
56
+
57
+ 화면에서 칸 하나의 글씨 크기는 `ResizeObserver` 가 칸을 재서 `Math.min(w/기준폭, h/기준높이)`
58
+ 로 셈하고, 그 값을 칸 안쪽에 인라인 `transform: scale(n)` 으로 **박아 둔다**. 인쇄 문서는
59
+ 그 칸을 통째로 복사해 만든다 — 그래서 배율도 함께 굳어 따라왔다.
60
+
61
+ 그런데 거기 칸은 화면 칸이 아니다. 종이(`.paper-wrap`)는 제 치수를 갖고, 인쇄가 걸리면
62
+ `100% × 100vh` 로 다시 바뀌며, 사람이 인쇄 대화상자에서 A4 아닌 종이를 고르면 그 `100vh`
63
+ 가 또 달라진다. 굳은 배율을 그대로 쓰면 **화면에서 칸을 꽉 채우던 글씨가 종이에서 작아진다**
64
+ (사용자 신고: "화면에 보이는 칸 안에 텍스트가 pdf에서는 더 작게 보여").
65
+
66
+ A4 로 뽑으면 화면과 종이의 칸이 거의 같아 차이가 눈에 안 띄었다 — 이번에 재 보니 0.41582
67
+ 대 0.416667, 0.2% 다. **다른 종이에서 벌어진다**: 같은 표를 Letter 가로로 두고 재니
68
+ 0.416667 이어야 할 자리에 0.3875 가 필요했다(-7.0%).
69
+
70
+ 고침은 둘로 나뉜다.
71
+
72
+ - **칸이 기준값을 새겨 둔다** — `.word-table-cell` 에 `data-ref-w` · `data-ref-h` 가 붙는다.
73
+ 화면 배율을 만든 그 두 수다.
74
+ - **인쇄 문서가 같은 셈을 다시 한다** — 문서 안 `refit()` 이 칸마다 실제 배치 크기를 읽어
75
+ `Math.min(w/refW, h/refH)` 를 새로 쓴다. 처음 열 때 · 창 크기가 바뀔 때 · `beforeprint` ·
76
+ `print` 매체 질의가 켜질 때(파이어폭스는 이쪽이 먼저다) · 자동 인쇄가 그림과 글꼴을 다
77
+ 기다린 직후, 이렇게 다섯 번 부른다. 인쇄 · 새 창 · 내려받은 HTML 이 한 길을 쓰므로
78
+ 셋 다 함께 고쳐진다.
79
+
80
+ **1 을 넘겨도 천장을 안 씌운다** — 화면과 똑같은 셈이다(2026-09-22 결정). 화면이 안 씌우는데
81
+ 종이만 씌우면 글자만 있는 칸의 글씨가 종이에서만 작아진다.
82
+
83
+ `clientWidth` 로 읽는다 — 배치 좌표라 종이에 걸린 미리보기 `transform: scale()` 에 안 흔들린다.
84
+
85
+ ### 놀이터 — 인쇄 미리보기에서 머리글 한 줄을 걷었다
86
+
87
+ `useWordTablePrint` 의 `header` 는 종이 맨 위에 한 줄(`.paper-head`)을 찍는다. 띠가 생기기
88
+ 전에는 그것이 종이의 유일한 식별자였는데, 이제 위 띠가 표 이름 · 기관 · 표 번호를 싣는다 —
89
+ 둘 다 주면 같은 것이 종이에 두 번 찍힌다. 놀이터 견본에서 걷었고(`최소대립쌍표 · 견본`),
90
+ `header` 프롭 설명에 겹침을 적었다. **프롭은 그대로다** — 띠를 안 쓰는 종이(채점지 등)에는
91
+ 여전히 이 줄이 유일한 식별자다.
92
+
10
93
  ## 0.220.0
11
94
 
12
95
  ### 되돌림 — 띠가 표와 **함께** 줄어든다 (`--wt-unscale` 을 걷는다)