# v0.1.527 — S0048/S0012 매핑 에디터 객체지향 모듈 분리 (문제 코드 격리 설계)

- 버전: v0.1.527
- 날짜: 2026-06-03
- 다운로드: [factory00-windows-x64-v0.1.527.zip](../../downloads/factory00-windows-x64-v0.1.527.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.527/](../../qa-screenshots/v0.1.527/)

---

## 핵심 변경 (거동 0 변경 — 순수 리팩토링)
- 425라인 단일 패널 → 4 모듈로 책임 분리 (사용자 지시: 문제 발생 코드만 격리되도록)
  - `PlcTabClassifier`(61) — device↔탭↔포트타입 매핑 SSOT (분류 버그 격리)
  - `PlcAddressAssigner`(88) — 할당 SSOT write(Set+Apply 역기록+발행), 충돌/빈주소 (영속 버그 격리, UI 무참조)
  - `PortDragController`(82) — 드래그 5-핸들러+capture 가드+panel.Pick (드래그 버그 격리)
  - `PlcAddressMappingPanel`(274) — 렌더링+입력 wiring(뷰)만
- 드래그=AssignAuto / 수동=AssignManual 둘 다 Assigner 단일 경로 → 영속 로직 1곳
## 격리 설계 효과
- UI 버그(드래그/렌더) ↔ 로직 버그(할당/충돌/영속) 상호 격리 → 회귀 시 모듈 단위 추적·revert
- 의존방향: Panel→Assigner→Classifier+Migration / DragController→콜백 (순환 없음)
## 영향 파일
- 신규: `Assets/Scripts/Plc/{PlcTabClassifier,PlcAddressAssigner,PortDragController}.cs`
- 재작성: `Assets/Scripts/Plc/PlcAddressMappingPanel.cs` (425→274, 뷰만)
## 체크포인트
- 빌드 zip archive 보존(518~526 롤백 가능). 본 빌드 = C6 에디터 모듈화 마일스톤
- 거동 보존 리팩토링 → 컴파일 + critic(SoC/거동) 검증. 드래그·수동 UI = Stage 2 사용자 PC
