8차 C-3 기록: 창 크기 조절에서 안 본 것 (플랫폼)

MergeHub 코드 변경 없음. 플랫폼 셸 창을 고치고 배포했다(플랫폼 커밋 9baf4b2).

사용자 결정(2026-09-16): 첫 Win+↓ 를 두 번 누르기 복원과 같게 · 덮는 창을 창 가운데로 · 1px 테두리는 그대로.

- 첫 Win+↓ 2400×1350@(266,266)(화면 밖 16px) → 2048×1222@(256,153) = 작업 영역 80% · 가운데
- 이름 창 어긋남: 최대화 창 세로 36px → 0 (보통 크기 창은 그대로 0)
- 스냅은 최소 크기(1280×720 DIP) 때문에 화면 반쪽이 될 수 없다 - 고치지 않고 적어 둠
- 화면 잠금은 재지 않았다(잠그면 사람이 직접 풀어야 해 확인이 멈춘다)
- PlacementTest 37건 통과 · 배포본으로 다시 재서 같은 값

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
김승준 2026-09-16 15:44:25 +09:00
parent 4eed6fa8f8
commit 66652fda08
3 changed files with 52 additions and 1 deletions

View File

@ -266,3 +266,53 @@ revert 가 충돌을 내려면 되돌릴 줄을 **뒤이어 또 고친 커밋**
- 자동 조작 쪽: git 으로 revert 를 견줄 때 **MergeHub 가 이미 revert 한 뒤의 저장소를 복제해** git 이 되돌릴 것이 없었다. - 자동 조작 쪽: git 으로 revert 를 견줄 때 **MergeHub 가 이미 revert 한 뒤의 저장소를 복제해** git 이 되돌릴 것이 없었다.
저장소를 새로 만들어 git 쪽만 다시 쟀다(위 표의 값). 저장소를 새로 만들어 git 쪽만 다시 쟀다(위 표의 값).
## C-3. 창 크기 조절에서 안 본 것 (2026-09-16, 완료 · 플랫폼)
7차 E-4 에서 "스냅 · 첫 Win+↓ · 덮는 창 가운데 · 1px 테두리" 네 가지를 남겨 뒀다. 실제 픽셀로 재고, 정할 것은 사용자와 정했다.
**정한 것 (2026-09-16, 사용자)**
- 첫 Win+↓ 는 두 번 누르기 복원과 **같은 크기 · 자리**로.
- 최대화일 때 덮는 창(이름 · 확인 · 잠금 확인)도 **창 가운데**로.
- 보통 크기 창의 1px 테두리 선은 **그대로 둔다**(Windows 가 그리는 선 - 창 경계가 보여 끌기 쉽다).
### 고치기 전에 쟀다 (2560×1600@150% · 1920×1080@100% 두 모니터)
| 확인 | 값 |
|---|---|
| 첫 Win+↓ (기억 없음) | **2400×1350px @(266,266)** — 1600×900 DIP(XAML 기본). 아래로 **16px 화면 밖**, 작업 표시줄도 가림 |
| 이름 창 (최대화 창 2560×1600) | 가운데에서 **세로 36px 위** — 작업 표시줄 높이(72px)의 절반 |
| 이름 창 (보통 크기 창) | 어긋남 0 (이때는 맞았다) |
| Win+← 주 모니터(150%) | 1920×1528px = 1280×1018.7 DIP — 화면 반(1280px)이 아니라 **75%**. 최소 폭 1280 DIP 때문 |
| Win+← 옆 모니터(100%) | 1280×1032px — 반(960px)보다 큼. 같은 까닭 |
| Win+↑ (왼쪽 스냅 상태에서) | 1280×720px — Windows 11 의 네 분할 자리인데 최소 크기라 그만큼 커진다 |
### 고친 것 (플랫폼)
| 파일 | 무엇 |
|---|---|
| `Shell/ShellWindow.xaml.cs` | 최대화로 **들어갈 때** 기억 여부를 잡아 둔다(`normalBeforeMaximize`) — 복원할 때 보면 늦다. 크기 알림이 상태 알림보다 먼저 와서 방금 내려온 기본 크기가 "사용자가 고른 보통 크기" 로 기억돼 버린다. 기억이 없던 복원은 `RestoreTarget(work, useRemembered: false)` 로 **작업 영역 80% · 가운데**. 기억이 있어도 화면 밖으로 걸치면 `KeepInside` 로 끌어들인다 |
| `Shell/OwnerCentering.cs` (새 파일) | 덮는 창을 본 창의 **실제 사각형** 가운데에 놓는다. WPF 의 `CenterOwner` 는 최대화 창의 "복원 자리" 를 기준 삼아 어긋난다. 맞출 창이 없으면(켤 때 이름 창이 셸보다 먼저 뜬다) **모니터 전체** 가운데 — 셸의 최대화가 작업 표시줄까지 덮으므로 그 가운데와 같다 |
| `Settings/UserNameDialog.xaml.cs` · `Messaging/MessageDialog.xaml.cs` · `Locking/LockConfirmDialog.xaml.cs` | 다 그려진 뒤(`ContentRendered`) 위 도우미를 부른다. `Loaded` 때는 높이가 아직 없어(SizeToContent) 그냥 돌아갔다 |
### 확인한 것 (실제 픽셀 · 배포본으로 다시)
| 확인 | 고치기 전 | 고친 뒤 |
|---|---|---|
| 첫 Win+↓ (기억 없음) | 2400×1350 @(266,266) · 화면 밖 16px | **2048×1222 @(256,153)** = 작업 영역 80% · 가운데 · 화면 밖 0 |
| 두 번 누르기 복원 | 작업 영역 80% | 같음 (둘이 같아졌다) |
| 이름 창 · 최대화 창 | 세로 36px 위 | **어긋남 가로 0 · 세로 0** |
| 이름 창 · 보통 크기 창 | 0 | **0** (그대로) |
| 보통 크기로 [종료] → 다시 켜기 | - | 기억 `{256,153,2048,1222,최대화 false}` 대로 뜬다 |
| 화면 이동 | DIP 크기 지킴 | 같음(1280×1019 DIP) |
PlacementTest 37건 통과. 플랫폼 빌드 경고 0 · 오류 0. **배포는 사용자 확인 뒤 `publish-platform.ps1`** 로 했고,
MergeHub 를 다시 빌드해 배포본으로 같은 값을 다시 쟀다(앱 폴더 Core = 배포본 확인).
### 남긴 것 (고치지 않음)
- **스냅은 화면 반쪽이 될 수 없다.** 최소 크기(1280×720 DIP)가 반쪽보다 크기 때문이다 — 주 모니터에서 75%, 옆 모니터에서 67%.
최소 크기를 줄이지 않는 한 그대로다. Windows 11 의 네 분할도 같은 까닭으로 1280×720 이 된다.
- 왼쪽 스냅 상태에서 Win+→ 는 스냅을 풀지 않고 그대로 있었다(잰 두 번 중 한 번은 복원됐다). Windows 쪽 동작이라 두고 본다.
- 1px 테두리 선은 사용자 결정대로 그대로 둔다.
- **화면 잠금은 재지 않았다.** 잠그면 사람이 직접 풀어야 해서 확인이 멈춘다. 잠금 확인 창은 이름 창과 같은 길(`OwnerCentering`)을 쓰므로 함께 맞는다.

View File

@ -8,6 +8,7 @@
| 날짜 | 항목 | 커밋 | | 날짜 | 항목 | 커밋 |
|---|---|---| |---|---|---|
| 2026-09-16 | **8차 C-3** — 7차 E-4 에서 남긴 넷을 실제 픽셀로 쟀다. 기억 없이 처음 Win+↓ 로 내리면 1600×900 DIP 가 화면 아래로 16px 넘치고 작업 표시줄을 가렸고, 최대화 창에서 이름 창이 세로 36px 위에 떴다. 사용자 결정대로 첫 복원을 두 번 누르기 복원과 같게(작업 영역 80% · 가운데), 덮는 창을 본 창 실제 사각형 가운데로 고침(플랫폼 ShellWindow · 새 OwnerCentering). 스냅은 최소 크기(1280×720 DIP) 때문에 화면 반쪽이 될 수 없음을 적어 둠, 1px 테두리는 그대로. 플랫폼 수정 · 배포 | 아래 |
| 2026-09-16 | **8차 C-2** — 7차에서 코드로만 봤던 "cherry-pick 은 원래 작성자를 남긴다" 를 화면으로 확인(제품 코드 변경 없음). 생성기에서 상대 쪽 작업 만 작성자를 박지훈으로 두고, MergeHub 와 git 이 각각 cherry-pick · revert 를 하게 해 견줌 — cherry-pick 은 둘 다 작성자 박지훈 · 커밋한 사람 시험, revert 는 둘 다 시험. 이력 목록에도 박지훈으로 보인다 | 아래 | | 2026-09-16 | **8차 C-2** — 7차에서 코드로만 봤던 "cherry-pick 은 원래 작성자를 남긴다" 를 화면으로 확인(제품 코드 변경 없음). 생성기에서 상대 쪽 작업 만 작성자를 박지훈으로 두고, MergeHub 와 git 이 각각 cherry-pick · revert 를 하게 해 견줌 — cherry-pick 은 둘 다 작성자 박지훈 · 커밋한 사람 시험, revert 는 둘 다 시험. 이력 목록에도 박지훈으로 보인다 | 아래 |
| 2026-09-16 | **8차 C-1** — 7차 C-2 에서 만든 길로 revert 도 되는지 화면으로 끝까지 봤다(제품 코드 변경 없음). 시험 저장소 생성기에 eature/revert(뒤이은 수정) 갈래를 더해 revert 충돌 16개를 만들고, [Revert] → 머리 "revert 진행 중" → 네 칸 REMOTE "되돌리는 커밋 …" → 로그 "101행 Theirs(커밋 …) 반영" → 진행 줄 "[커밋] 으로 revert 를 끝냅니다" → 원래 메시지로 커밋까지. 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0 | 아래 | | 2026-09-16 | **8차 C-1** — 7차 C-2 에서 만든 길로 revert 도 되는지 화면으로 끝까지 봤다(제품 코드 변경 없음). 시험 저장소 생성기에 eature/revert(뒤이은 수정) 갈래를 더해 revert 충돌 16개를 만들고, [Revert] → 머리 "revert 진행 중" → 네 칸 REMOTE "되돌리는 커밋 …" → 로그 "101행 Theirs(커밋 …) 반영" → 진행 줄 "[커밋] 으로 revert 를 끝냅니다" → 원래 메시지로 커밋까지. 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0 | 아래 |
| 2026-09-16 | **8차 B-3** — 네 칸 MERGED 칸 줄 번호가 정렬할 때 정해진 채 굳어, 고른 줄 · 머지 주석으로 결과가 늘어도 그대로였다(끝 번호 3363 · 상태바 총 3369줄). 사용자가 "결과 파일 번호로" 를 골라, 결과에 들어가는 줄만 1부터 다시 매긴다(MergedNumbering). 줄을 만들 때와 요약을 그릴 때마다 다시 매겨 고르기 · 편집 · 되돌리기 뒤에도 맞는다. 저장된 파일 줄 수(3369)와 화면 번호가 같아짐 | 아래 | | 2026-09-16 | **8차 B-3** — 네 칸 MERGED 칸 줄 번호가 정렬할 때 정해진 채 굳어, 고른 줄 · 머지 주석으로 결과가 늘어도 그대로였다(끝 번호 3363 · 상태바 총 3369줄). 사용자가 "결과 파일 번호로" 를 골라, 결과에 들어가는 줄만 1부터 다시 매긴다(MergedNumbering). 줄을 만들 때와 요약을 그릴 때마다 다시 매겨 고르기 · 편집 · 되돌리기 뒤에도 맞는다. 저장된 파일 줄 수(3369)와 화면 번호가 같아짐 | 아래 |

View File

@ -215,7 +215,7 @@
|---|---| |---|---|
| **완료** | C-1 revert 충돌을 화면으로 끝까지 — 생성기에 `feature/revert` 갈래를 더해 충돌 16개를 만들고, MergeHub 만으로 [Revert] → 네 칸("되돌리는 커밋 …") → [커밋] 까지. 원래 메시지 `Revert "내 쪽 작업"`, 줄끝 · BOM 바뀐 파일 0, 제품 코드 변경 없음 | | **완료** | C-1 revert 충돌을 화면으로 끝까지 — 생성기에 `feature/revert` 갈래를 더해 충돌 16개를 만들고, MergeHub 만으로 [Revert] → 네 칸("되돌리는 커밋 …") → [커밋] 까지. 원래 메시지 `Revert "내 쪽 작업"`, 줄끝 · BOM 바뀐 파일 0, 제품 코드 변경 없음 |
| **완료** | C-2 cherry-pick 이 원래 작성자를 남기는지 눈으로 — 생성기에서 상대 쪽 커밋만 작성자를 박지훈으로 두고 확인. MergeHub cherry-pick 은 작성자 박지훈 · 커밋한 사람 시험, revert 는 둘 다 시험 — git 과 같음. 제품 코드 변경 없음 | | **완료** | C-2 cherry-pick 이 원래 작성자를 남기는지 눈으로 — 생성기에서 상대 쪽 커밋만 작성자를 박지훈으로 두고 확인. MergeHub cherry-pick 은 작성자 박지훈 · 커밋한 사람 시험, revert 는 둘 다 시험 — git 과 같음. 제품 코드 변경 없음 |
| 대기 | C-3 창 크기 조절에서 안 본 것 — 스냅 · 첫 Win+↓ 크기 · 덮는 창 가운데 · 1px 테두리 (플랫폼) | | **완료** | C-3 창 크기 조절에서 안 본 것 — 실제 픽셀로 재고 사용자와 정함. 첫 Win+↓ 를 두 번 누르기 복원과 같게(작업 영역 80% · 가운데, 화면 밖 16px 없어짐), 덮는 창을 창 가운데로(최대화에서 36px 어긋남 → 0). 스냅은 최소 크기 때문에 반쪽이 안 됨(적어 둠), 1px 테두리는 그대로. 플랫폼, 배포함 |
### D. 문서 ### D. 문서