From 724248e9548e8bdba7b8c35ff703aad5549c15c4 Mon Sep 17 00:00:00 2001 From: ksj09406 Date: Thu, 17 Sep 2026 13:30:34 +0900 Subject: [PATCH] =?UTF-8?q?10=EC=B0=A8=20=EC=A7=80=EC=8B=9C=EC=84=9C=20?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=EA=B8=B0=20=C2=B7=209=EC=B0=A8=20=EB=A7=88?= =?UTF-8?q?=EB=AC=B4=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 9차 전부 끝. D-1 에서 새로 걸린 N1 과 9차에서 적어 둔 셋을 10차로 넘긴다(코드 변경 없음). - A-1 네 칸에서 고르기 한 번이 남지 않아 "남은 충돌 1개" 로 멈춤 (원인부터: 자동 조작인지 제품인지) - B-1 Git 탭에서 고른 커밋을 파일 비교 탭이 새로고침 전까지 안 따라옴 (먼저 정함) - C-1 머지 주석 무시를 끈 채 다시 정렬하면 반영 색이 옆 줄로 - D-1 그날 첫 큰 폴더 비교 9.2초 (재고 정함) - E-1 다섯 길 + pull 다시 끝까지 · E-2 웹 문서 Co-Authored-By: Claude Opus 5 --- doc/history/changelog.md | 1 + doc/작업지시/10차.md | 147 +++++++++++++++++++++++++++++++++++++++ doc/진행상황.md | 36 ++++++++++ 3 files changed, 184 insertions(+) create mode 100644 doc/작업지시/10차.md diff --git a/doc/history/changelog.md b/doc/history/changelog.md index 2a2012e..51bb473 100644 --- a/doc/history/changelog.md +++ b/doc/history/changelog.md @@ -8,6 +8,7 @@ | 날짜 | 항목 | 커밋 | |---|---|---| +| 2026-09-17 | **10차 지시서** — 9차 전부 끝. D-1 에서 새로 걸린 N1(A-1 네 칸에서 고르기 한 번이 남지 않아 멈춤 — 자동 조작인지 제품인지 원인부터)과 9차에서 적어 둔 셋(B-1 Git 탭에서 고른 커밋을 파일 비교 탭이 안 따라옴 — 먼저 정함 · C-1 머지 주석 무시를 끈 채 다시 정렬하면 반영 색이 옆 줄로 · D-1 첫 폴더 비교 9.2초 — 재고 정함) · E-1 다섯 길 + pull · E-2 웹 문서. 코드 변경 없음 | 아래 | | 2026-09-17 | **9차 D-1** — 병합 · rebase · cherry-pick · revert 를 새 저장소에서 파일 비교 탭을 미리 열지 않고 끝까지(코드 변경 없음). cherry-pick · revert 는 [모든 브랜치] 를 켜고 마지막 파일을 네 칸으로. 네 길 모두 마지막 Save 뒤 제목 · 요약 · 기준(HEAD) 같음 · 요약 N줄 = git diff · 커밋 뒤 기준 새 HEAD · 줄끝 · BOM 바뀐 파일 0 · class 검사 0. 새로 걸린 것: N1 cherry-pick 첫 회차에서 고르기 한 번이 안 남아 "남은 충돌 1개" 로 멈춤(다시 하니 끝까지) → 10차. **9차 전부 끝**. 웹 문서 "9차 끝" (아티팩트 버전 10) | 아래 | | 2026-09-17 | **9차 C-1** — 웹 문서가 8차 D-1(E-1 · F-1 전)에서, "지금까지 만든 것" 은 6차에서 멈춰 있었다. 개요 숫자(22벌 1,122건 · 커밋 104), 매뉴얼에 병합 커밋 본문 해결 내역 · 해결 기록이 남는 곳 · 마지막 저장 뒤 기준 HEAD · 한계 넷, 남은 일에 8차 끝 · 9차 표, 지금까지 만든 것 7~9차. 화면 문구 grep 대조 · 태그 짝 맞음. 아티팩트 버전 9. 제품 코드 변경 없음 | 아래 | | 2026-09-17 | **9차 B-2** — 5차에 "폴더 비교 뒤 트리를 세우는 데 1초 남짓" 으로 적어 둔 것을 앱 안 임시 측정(잰 뒤 되돌림)으로 단계별로 쟀다. 4,500개 묶음에서 트리 만들기 5~17ms · 첫 화면까지 0.13초(필터 전체 0.24초), 비교는 데운 뒤 0.7초. 5차 값은 자동 조작 대기가 섞였다. 줄일 자리가 없어 고치지 않음(코드 변경 없음). 그날 첫 비교 9.2초는 적어 둠 | 아래 | diff --git a/doc/작업지시/10차.md b/doc/작업지시/10차.md new file mode 100644 index 0000000..098dadc --- /dev/null +++ b/doc/작업지시/10차.md @@ -0,0 +1,147 @@ +# 작업 지시 — MergeHub 10차 (두 탭이 같은 커밋을 보게 · 남은 표시 어긋남 · 누름을 놓치는지) + +대상: `D:\Sorce\MergeTool\MergeHub` (플러그인) · `D:\Sorce\MergeTool\UbisamPlatform` (셸) +전제: 1~9차 지시서는 모두 끝났다([../진행상황.md](../진행상황.md)). + +**이번 지시서가 나온 곳** — 9차 D-1 에서 병합 · rebase · cherry-pick · revert 를 새 저장소에서 MergeHub 만으로 끝까지 했다. +네 길 모두 마지막 Save 뒤 제목 · 요약 · 기준(HEAD)이 같았고, 줄끝 · BOM 바뀐 파일 · 충돌 표식 · class 이름 다른 파일이 0 이었다. +**새로 걸린 것은 하나(N1)** 이고, 9차 A-1 · B-1 · B-2 를 하면서 **고치지 않고 적어 둔 것이 셋**이다. 근거와 수치는 [../history/2026-09-17-9차.md](../history/2026-09-17-9차.md) 에 있다. +파일을 망가뜨리는 것은 없다. 모두 **화면이 어긋나 보이거나, 한 번 누른 것이 남지 않는** 종류다. + +| 9차 D-1 에서 잰 것 | 병합 | rebase | cherry-pick | revert | +|---|---|---|---|---| +| 마지막 Save 뒤 제목 · 요약 · 기준 | 같음 | 같음 | 같음 | 같음 | +| 요약 N줄 = git diff | 3 = 3 | 3 = 3 | 3 = 3 | 6 = 6 | +| 커밋 뒤 기준 | 새 HEAD | 새 HEAD | 새 HEAD | 새 HEAD | +| 줄끝 · BOM 바뀐 파일 | 0 / 33 | 0 / 31 | 0 / 33 | 0 / 36 | +| 줄 고른 로그 | 18줄 | 18줄 | **10줄(첫 회차) → 18줄(다시)** | 6줄 | + +--- + +## 공통 규칙 + +- **A → B → C → D → E 순서로 진행한다.** A 는 한 번 누른 것이 사라질 수 있다는 것이라 먼저다. +- **항목 하나를 끝낼 때마다** 빌드하고 실제로 실행해 화면을 확인한 뒤 보고한다. +- **항목 하나가 끝나면 기록을 세 군데에 남기고 로컬 커밋한다**(4차 D-2 규칙). + 1. **상세**는 `doc/history/YYYY-MM-DD-10차.md` — 원인 · 판단 · 확인한 결과 + 2. [../진행상황.md](../진행상황.md) 은 **대기 → 완료로 상태만** + 3. [../history/changelog.md](../history/changelog.md) 에 한 줄 — 날짜 · 무엇을 왜 · 커밋 +- **푸쉬하지 않는다.** +- **실제 소스를 열지 않는다**(2026-09-11 결정). 시험 재료는 `C1Repo`(병합 저장소) · `FolderPerf/Corpus.cs`(폴더 묶음)로 만든다. + 고치기 전에 문제가 **다시 나는 것부터 보이고**, 고친 뒤 안 나는 것을 보인다. 다시 나지 않으면 **짐작으로 고치지 않고** 되풀이한 횟수와 짚은 곳을 적어 보고한다. +- 기존 검사 하네스(22벌 1,122건)는 계속 통과해야 한다. 로직을 건드리면 **테스트를 먼저 늘린다.** +- 빌드 경고 0 · 오류 0 을 유지한다. 앱이 실행 중이면 `UbisamBase.Shell` 을 먼저 종료한다. +- 사용자 설정 파일(`D:\UbisamConfig\Settings\MergeHubSettings.json`)은 시험 전에 백업하고, 끝나면 **바이트 그대로** 되돌린다. + 창 기억(`ShellWindowPlacement.json`)은 시험 뒤 "기억 없음" 으로 둔다. +- **자동 조작으로 확인할 때는 사람이 갈 수 있는 길만 쓴다.** 이름 창은 [저장], 접힌 영역은 [펴기], 파일 비교 탭은 미리 열지 않는다(`D7_NO_PREOPEN=1`). +- **문서 글을 PowerShell 로 넣을 때는 작은따옴표 문자열만 쓴다**(8차). **PowerShell 변수 이름은 대소문자를 가리지 않는다** — 매개변수와 겹치는 이름을 쓰지 않는다(9차 A-2). +- **앱 안에 임시 측정 코드를 넣었다면** 커밋하지 않고 잰 뒤 되돌리고 다시 빌드한다(9차 B-2). +- 결과 확인은 줄끝 · 충돌 표식 · `UnitN.cs` 의 class 이름까지 본다. +- 플랫폼을 고치면 다른 소비 프로그램에 미치는 영향을 함께 적고 `UbisamPlatform/doc/history/changelog.md` 에 남긴다. **배포는 사용자 확인 뒤.** + +--- + +## A. 한 번 누른 것이 남지 않는다 + +### A-1. 네 칸에서 충돌을 차례로 고르는데 한 번이 남지 않아 "남은 충돌 1개" 로 멈췄다 (9차 D-1 N1) — 원인부터 + +- **그때 순서**: cherry-pick([모든 브랜치] 켬) → 같은 줄 충돌 15개 파일 단위 Accept Theirs → NewPanel Accept Both [아니오] → [3분할로 열기] 뒤 저절로 열리는 파일마다 + **[다음 충돌] → Take Theirs / Take Mine 번갈아**(누름 사이 0.4초 · 0.7초) → [Save]. +- `Motion/Unit0.cs` 충돌 6개를 여섯 번 고른 뒤 요약이 **"남은 충돌 1개"**, [Save] 꺼짐. 그 회차 줄 고른 로그는 **10줄**(병합 · rebase 는 같은 순서로 18줄) — Unit0 에서 **한 번이 로그에 없다.** + 새 저장소로 같은 순서를 다시 하니 18줄 · 끝까지 갔다. +- 비슷한 모양이 전에도 있었다: 7차 C-2 · 8차 C-1 에서 충돌 탭 목록 여러 개 고르기가 앱에 닿지 않아 파일 단위 Accept 가 일부만 풀렸다(그때는 스크립트를 되풀이하게 바꿔 넘겼다). +- **가릴 것** — 둘 중 어느 쪽인가. + 1. 자동 조작의 누름(UI 자동화 Invoke)이 앱에 닿지 않았다 → 시험 도구 문제. + 2. 앱이 누름을 받았는데 **처리하지 않았다** — 예: [다음 충돌] 이동이 끝나기 전에 Take 가 눌려 선택 줄이 아직 이전 충돌(이미 정한 줄)이었거나, 단추가 잠깐 꺼져 있었다 → **사람이 빠르게 눌러도 날 수 있는 제품 문제.** +- 방향: + 1. 앱에 임시 로그를 넣어(되돌릴 것) [다음 충돌] · Take 가 **불렸는지 · 어느 줄에 · 무엇을 했는지 · 그때 단추가 켜져 있었는지**를 남긴다. + 2. 같은 순서(네 칸 여섯 충돌 번갈아 고르기)를 **스무 번 이상** 되풀이한다. 누름 간격을 9차와 같게 한 번, 더 짧게(0.1초) 한 번. + 3. 다시 나면 로그로 1 · 2 를 가른다. 2 면 고친다 — 누른 것이 **처리되거나, 처리되지 않았으면 알린다**(조용히 사라지지 않는다). + 4. 다시 나지 않으면 되풀이 횟수 · 간격 · 짚은 곳을 적고 사용자에게 보고한 뒤 닫는다. +- **판정 기준**: 원인이 1 · 2 중 무엇인지 로그 근거로 적는다. 2 였다면 짧은 간격으로 스무 번 되풀이해 줄 고른 로그가 매번 누른 수와 같다. 하네스로 "이동 중에 들어온 Take" 를 만든다. + +--- + +## B. 두 탭이 같은 커밋을 보게 + +### B-1. Git 탭 이력에서 커밋을 고르면 파일 비교 탭은 새로고침 전까지 따라오지 않는다 (9차 A-1 에서 적어 둠) — **먼저 정한다** + +- 두 탭은 같은 "고른 커밋"(`_workspace.SelectedCommit`)을 쓴다. 그런데 Git 탭은 값만 바꾸고, 파일 비교 탭은 **새로고침 알림**(`Refreshed`)으로만 다시 읽는다. + 그래서 Git 탭에서 `상대 쪽 작업` 을 골라도 파일 비교 탭 위 줄 "Selected Commit" · 왼쪽 이력 선택 · 두 칸 기준은 **옛 커밋 그대로**다(9차 A-1 · 곁 확인에서 봄). [새로고침] 을 누르면 따라온다. +- 파일 비교 탭 쪽 이력에서 고르면 바로 바뀌고, 저장 안 한 편집이 있으면 "다른 커밋을 봅니다" 를 먼저 묻는다(5차 A-2). +- **고치기 전에 사용자에게 보이고 정한다.** + 1. **바로 따라온다** — Git 탭에서 고르면 파일 비교 탭도 그 커밋으로. 파일 비교 탭에 저장 안 한 편집이 있으면 **Git 탭에서 고르는 순간 묻는다**(또는 편집이 있으면 따라가지 않고 알린다 — 둘 중 무엇인지도 정한다). + 2. **따로 둔다** — 두 탭의 고른 커밋을 나눈다. Git 탭 선택은 Git 탭 일(Revert · Cherry-pick · Reset · Blame 기준)에만 쓰고, 파일 비교 탭은 자기 이력으로만 바뀐다. +- **판정 기준**: 정한 대로 두 탭의 "고른 커밋" 표시가 서로 다른 말을 하는 때가 없다(또는 따로라는 것이 화면에 드러난다). 저장 안 한 편집이 말없이 사라지지 않는다(5차 A-2 · 4차 A 회귀 없음). + 9차 A-1 · A-2 의 규칙(작업 중 충돌이 막 0 이 되면 HEAD · 새로고침 뒤 해시로 · HEAD 를 보다 커밋하면 새 HEAD)은 그대로. + +--- + +## C. 남은 표시 어긋남 + +### C-1. "머지 주석 무시" 를 끈 채 다시 정렬하면 반영 색이 옆 줄로 옮겨 간다 (9차 B-1 에서 적어 둠) + +- **다시 내는 순서**(9차 `d9-b1-extra.ps1`): 설정 `IgnoreMergeNotes` 끔 → 병합 → `Weld/Unit1.cs` 를 [3분할로 열기] → 첫 충돌 Take Theirs → 비교 규칙 [Aa] 두 번(다시 정렬). + Take 직후 범례 "머지 반영함 1 · 추가 1" → 다시 정렬 뒤 **"머지 반영함 1 · 직접 수정 1"**. 화면에서 초록(반영함)이 **주석 줄**에, 보라(직접 수정)가 **반영한 코드 줄**(`Power100 => 0.9`)에 붙는다. +- 짚이는 곳: 다시 정렬하면 주석 줄이 BASE 의 코드 줄(`Power93`)과 한 행으로 짝지어진다(규칙이 꺼져 있어 `NoteRows` 로 떼지 않는다). 반영 표시는 **BASE 줄 번호**(`_appliedBaseNumbers`)로 붙들어 두어, 그 번호를 가진 행(= 주석 행)에 붙는다. +- 기본값(켬)에서는 나지 않는다. 범례 수 · 저장 내용은 같다. +- 방향: 반영 표시가 **반영한 코드 줄**에 남게 한다. 우리가 넣은 주석 줄은 규칙과 상관없이 코드 줄과 한 행으로 짝짓지 않게 하는 것이 한 길이다 — 비교 결과(차이 수)가 바뀌는지 먼저 잰다. +- **판정 기준**: 규칙을 끈 채 다시 정렬해도 반영 색이 반영한 코드 줄에 있다(스크린샷 · 범례). 규칙 켬 · 끔 모두 차이 수 · 남은 충돌 · MERGED 번호 · 저장 내용이 고치기 전과 같다. 9차 B-1(규칙 켬: 처음부터 무시 색)은 그대로. + +--- + +## D. 처음 한 번이 느리다 + +### D-1. 그날 첫 큰 폴더 비교가 9.2초 (9차 B-2 에서 적어 둠) — 재고 정한다 + +- 4,500개 묶음에서 데운 뒤 비교는 0.7초인데 그날 첫 비교는 **9.2초**였다(한 번 잰 값). 트리 · 그리기는 0.14초로 상관없다. 파일을 디스크에서 처음 읽는 값으로 보이지만(디스크 캐시 · 백신 검사) 가려 보지 않았다. +- 사람이 아침에 처음 비교할 때 겪는 시간은 이쪽이다. +- 방향: + 1. **다시 낸다** — 캐시를 비운 상태를 만든다(재부팅 없이: 묶음을 새 이름으로 다시 만들어 복사 직후가 아닌 상태, 또는 대기 메모리 비우기 도구를 쓰지 않는 방법으로). 세 번 잰다. + 2. **나눠 잰다** — 훑기(폴더 목록) · 가리기(파일 읽기) · 세기. 빠른 비교(크기 · 수정일)도 같이 잰다 — 파일을 안 읽으니 차이가 줄면 읽기 값이다. + 3. 백신 검사 몫은 바꿀 수 없으므로 **잰 값만 적는다**(백신 설정은 건드리지 않는다 — 보안 설정). + 4. 줄일 길(예: 크기가 다르면 읽지 않고 "다름", 진행 표시 · 몇 개 남았는지 알림)이 있으면 효과와 위험을 적어 **사용자에게 보이고 정한다.** 결과가 바뀌는 길(빠른 비교를 기본으로 등)은 하지 않는다. +- **판정 기준**: 차가운 첫 비교가 다시 나는지와 단계별 값을 적는다. 고쳤다면 같은 조건으로 전후를 견주고 결과 요약이 글자 하나까지 같다(5차 B-2 기준). 안 고치기로 하면 까닭을 적고 매뉴얼 "알아 둘 한계" 를 잰 값으로 고친다. + +--- + +## E. 확인 · 문서 + +### E-1. 다섯 길(+ pull)을 다시 끝까지, 누름 간격은 사람 손 빠르기로 + +- A ~ D 를 고친 뒤 저장소를 새로 만들어 **병합 · pull · rebase · cherry-pick · revert** 를 끝까지 한다(9차 D-1 은 pull 을 돌리지 않았다). +- 파일 비교 탭은 미리 열지 않는다. cherry-pick · revert 는 [모든 브랜치] 켬 · 마지막 파일 네 칸. **B-1 에서 정한 대로** Git 탭에서 커밋을 고른 뒤 파일 비교 탭이 무엇을 보이는지도 적는다. +- 9차 D-1 과 **같은 표**(기준 대조 · 커밋 뒤 기준 포함)로 적는다. 줄 고른 로그 수가 누른 수와 같은지 길마다 적는다. 새로 걸린 것은 고치지 말고 적는다 — 그 목록이 11차가 된다. +- **판정 기준**: 다섯 길 모두 MergeHub 만으로 끝까지. 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 다른 Unit 파일 0. 마지막 Save 뒤 제목 · 요약 · 기준이 같다. 줄 고른 로그 = 누른 수. + 8차 A-1 · B-1 · B-2 · F-1 과 9차 A-1 · A-2 · B-1 이 다시 나지 않는다. + +### E-2. 웹 문서를 10차에 맞게 + +- 고친 것 · 정한 것을 매뉴얼("알아 둘 한계" 의 9차에 더한 넷 중 고친 것은 빼고) · 남은 일 · 지금까지 만든 것에 반영하고 같은 주소로 발행한다. +- **판정 기준**: 문서의 단추 이름 · 흐름이 지금 화면과 같다(grep 대조). "알아 둘 한계" 가 10차 끝 기준. 태그 짝 맞음. 발행본을 먼저 읽고 합쳐 올린다. + +--- + +## 이번 지시서에서 하지 않는 것 + +- **실제 소스로 병합해 보기** — 실제 소스는 열지 않는다(2026-09-11 결정). +- **빈 cherry-pick 을 커밋으로 남기는 길** — 두지 않기로 했다(2026-09-16 사용자 결정). +- **비교할 때만 C# 스타일을 맞추는 선택지** — 만들지 않기로 했다(2026-09-17 사용자 결정). +- **MergeHub 밖에서 푼 충돌을 병합 본문에 적기** — 알 길이 없다(8차 F-1). +- 셸 창 반쪽 스냅 · 1px 테두리 · 화면 잠금 확인 창 자동 재기 — 8차 C-3 결정 그대로. +- **백신 · 디스크 설정 바꾸기** — 보안 설정이라 건드리지 않는다(D-1 은 재기만). +- 빠른 비교가 내용만 바뀐 파일을 놓치는 것 — 알려진 한계로 둔다. +- 같은 줄 접기(4차 B-2) · 외부 편집기(4차 B-4) · 로그인·권한 · Gitea PR 코멘트 · 멀티 레포 · Roslyn · 변경분 ZIP — 미룬 그대로 둔다. +- **사내 베타 배포 · 푸시** — 기획 4단계(09.29 ~ 10.02)와 사내 Gitea 저장소가 정해지면 따로 지시한다. + +--- + +## 보고 형식 + +항목마다 이렇게 적는다. + +- 고치기 전에 문제가 **다시 나는 것**을 어떻게 보였는지 (만든 저장소 · 묶음의 어느 파일로, 몇 번 되풀이해서) +- 무엇이 원인이었는지 한두 줄 (로그 근거) +- 어떤 파일을 어떻게 고쳤는지 +- 실제로 실행해 확인한 결과 (줄 수 · 해시 · 줄끝 · 충돌 수 · 로그 줄 수 · ms 처럼 **눈이 아닌 값**으로) +- 커밋 해시 diff --git a/doc/진행상황.md b/doc/진행상황.md index cba6483..8e78849 100644 --- a/doc/진행상황.md +++ b/doc/진행상황.md @@ -276,6 +276,42 @@ - N1 cherry-pick 첫 회차에서 `Motion/Unit0.cs` 충돌 6개를 고른 뒤 "남은 충돌 1개" 로 남아 [Save] 가 꺼짐. 고르기 한 번이 로그에 안 남음(10줄 · 다른 길 18줄). 새 저장소로 다시 하니 끝까지 — 자동 조작 쪽으로 보이나 원인 미확인 +--- +## 10차 — 두 탭이 같은 커밋을 보게 · 남은 표시 어긋남 · 누름을 놓치는지 (2026-09-17 ~) + +지시서: [작업지시/10차.md](작업지시/10차.md). 9차 D-1 에서 새로 걸린 N1 과 9차에서 적어 둔 셋(두 탭 고른 커밋 · 규칙 끈 채 반영 색 · 첫 폴더 비교 9.2초) · 다섯 길(+ pull) · 웹 문서. + +### A. 한 번 누른 것이 남지 않는다 + +| 상태 | 항목 | +|---|---| +| 대기 | A-1 네 칸에서 충돌을 차례로 고르는데 한 번이 남지 않아 "남은 충돌 1개" 로 멈췄다 (원인부터 — 자동 조작인지 제품인지) | + +### B. 두 탭이 같은 커밋을 보게 + +| 상태 | 항목 | +|---|---| +| 대기 | B-1 Git 탭 이력에서 고른 커밋을 파일 비교 탭이 새로고침 전까지 따라오지 않는다 (먼저 사용자와 정함) | + +### C. 남은 표시 어긋남 + +| 상태 | 항목 | +|---|---| +| 대기 | C-1 "머지 주석 무시" 를 끈 채 다시 정렬하면 반영 색이 옆 줄로 옮겨 간다 | + +### D. 처음 한 번이 느리다 + +| 상태 | 항목 | +|---|---| +| 대기 | D-1 그날 첫 큰 폴더 비교가 9.2초 (재고 정함) | + +### E. 확인 · 문서 + +| 상태 | 항목 | +|---|---| +| 대기 | E-1 다섯 길(+ pull)을 다시 끝까지 — 줄 고른 로그 = 누른 수 | +| 대기 | E-2 웹 문서를 10차에 맞게 | + --- ## 3~4주차로 미룬 것