6.1 KiB
6.1 KiB
2026-04-17 코어프레임워크 대화로그
[PM 소급 작성] Tier 1 잔여 9종 구현 — Attribute 3 + Util 6 (프로젝트 자산 관점)
- 요지: PD님 2026-04-17 "재량껏 진행 가능한 나머지 일괄 승인, 마무리" 지시에 따라 개발팀장이 코어프레임워크(
코어코드/NerdNavis.Framework/)에 Tier 1 기반 모듈 9종 신규 구현. 기존 Tier 1 기반 Core 4종(Log·CoroutineRunner·MonoSingleton·ServiceLocator)에 이어 총 13/16종 달성 - 이유: 헌법 제1원칙 목표 2 원칙 A — 차기 프로젝트부터 코어 프레임워크를 조직 자산으로 적극 활용. 범용성 높은 모듈을 PD님 승인 일괄 작업으로 선반영
- 구현 모듈:
- Attribute 3종:
ReadOnlyAttribute·ShowIfAttribute·ArrayTitleAttribute(인스펙터 UX 공통 패턴) - Util 6종:
EnumToInt(박싱 회피Unsafe.As<,>) ·EnumEx·FormatEx·MathEx·KeyMaker(구분자:표준) ·ValidationEx - 테스트 7 파일: 각 Util 단위 테스트 + Attribute 통합 테스트 (기존 28건 체계 확장)
- Attribute 3종:
- 산출물 경로:
코어코드/NerdNavis.Framework/Runtime/Core/Attribute/(3 파일)코어코드/NerdNavis.Framework/Runtime/Core/Util/(6 파일)코어코드/NerdNavis.Framework/Tests/Runtime/Core/(7 파일)코어코드/NerdNavis.Framework/CHANGELOG.mdUnreleased 섹션 갱신
- 상태: 완료 (라운드 승인분)
- 기각안:
Convert.ChangeType캐시 방식 —Unsafe.As<,>대비 박싱 발생, 핫패스 성능 저하로 기각- KeyMaker 구분자
_사용 — 수상한잡화점_/:혼재 조회 실패 경험 기반,:단일 표준으로 기각 - UnityEngine 의존 허용 — 서버·배치 재사용 불가, C11(범용성) 위반으로 순수 BCL 의존만 허용
- Tier 1 16종 완전 구현 단일 라운드 완결 — Data·Event·Container 3종은 상호작용 설계 재검증 필요, 무리 구현 시 아키텍처 부채 우려. 별도 PD 지시 #36으로 분리
[PM 소급 작성] Tier 1 잔여 3종(Data·Event·Container) 신규 지시 #36 분리
- 요지: Tier 1 16종 중 13종 완료 상태에서 잔여 3종(Data·Event·Container)을 #1 우산 지시에서 분리하여 개발팀 PD 지시 로그 #36으로 신규 등재. 상태: 대기. 재개 트리거: 상호작용 설계 재검증 완료
- 이유: 장기 우산 지시의 라운드 완결 아카이브 원칙(
memory/feedback_log_round_completion.md) 적용 — 마무리된 라운드는 완료 아카이브, 잔여는 별도 신규 지시. 세션 전환 시 "완료된 업무가 진행중으로 보이는" 왜곡 구조적 차단 - 산출물:
공유/PD_지시_트래킹/개발팀_PD_지시_로그.md#36 신규 등재, #1 완료 아카이브 이동 - 상태: 완료 (로그 정리까지)
- 기각안: 없음 (로그 정리 원칙 적용)
[개발팀장] Tier 1 잔여 3종(Data·Event·Container) 설계 + 구현 + 테스트 완료
- 요지: PD님 "즉시 수행" 지시(#36) 수령 → 설계 문서 선행 작성 → Event/Container/Data 3개 모듈 구현 → NUnit 단위 테스트 5종 + CHANGELOG 갱신. 외부 레포(
코어코드/NerdNavis.Framework/) git 최신 상태 점검 후 작업(C30 준수, origin 대비 로컬 2 커밋 앞 · behind 없음). - 이유: 헌법 제1원칙 목표 2 원칙 A — 코어 프레임워크는 차기 프로젝트 조직 자산. Tier 1 16종 중 13종 완료 상태에서 잔여 3종을 상호 의존성 명확화한 설계 기반으로 마무리. 수상한잡화점 자산은 전혀 건드리지 않음(원칙 A "현 프로젝트 미사용" 준수).
- 산출물:
- 설계:
프로젝트/코어프레임워크/04_Tier1_3종_상호작용_설계_v1.md(P18 의무 이행) - 코드:
코어코드/NerdNavis.Framework/Runtime/Core/Event/EventBus.cs·Event/Raw/RawEventBus.cs·Container/{ObservableList,ObservableDictionary,ObservableQueue}.cs·Data/{IDataRow,DataTable,DataTableSO,DataTableLoader,DataTableLoadedEvent}.cs - 테스트:
Tests/Runtime/Core/Event/EventBusTests.cs·Container/{ObservableList,ObservableDictionary,ObservableQueue}Tests.cs·Data/DataTableTests.cs - CHANGELOG: Unreleased 섹션 Event·Container·Data 3블록 추가
- 설계:
- 상태: 완료 (외부 레포 커밋·조직 레포 커밋은 PD님 "세션 공유" 지시 시점에 일괄 push — C20-1-A 준수)
- 기각안 (설계 §6 영구 기록):
- Event 인스턴스 버스 vs 정적: 정적 채택. 기각 — IoC는 Tier 3 Network 도입 시 재검토, 현 시점 토큰·호출 비용·관례상 정적 우위
- Event 약한 참조(WeakReference) vs 강한 참조: 강한 참조 채택. 기각 — 람다 캡처 수명 예측 난해, 명시 Unsubscribe 의무가 예측 가능·단순
- Container 단일
Changed이벤트 vs 세분화(Added/Removed/Updated/Reset): 세분화 채택. 기각 — 불필요 dispatch 감소·시그니처 가독성·ChangeArgs 박싱 회피 - Data
DataTable<TRow>int 키 고정 vs 제네릭<TKey,TRow>: 제네릭 채택. 기각 — 기존MasterTableBaseint 고정이 확장성 부족, 문자열·enum 키 수요 잦음 - CSV 파서
CsvHelper외부 라이브러리 vs 최소 자체 구현: 최소 자체 채택. 기각 — Tier 1 외부 의존성 최소 원칙, 기획팀 통제 CSV라 RFC 4180 핵심(쉼표·따옴표·escape)만으로 충분 - JSON
Newtonsoft.Jsonvs UnityJsonUtility: JsonUtility 채택(래퍼 기반). 기각 — PC 독립 설치 보장 어려움, 한계(Dictionary·polymorphism) 명시 후 고급 케이스는 호출자 자체 파싱 경로 안내 - 3개 모듈 asmdef 분리 vs 단일 유지: 단일 유지. 기각 — 현 파일 수 규모에서 단일 참조 소비자 경험 우위, DAG 명확하여 순환 위험 낮음. Tier 2 확장 시 재검토