Files
SheetMe/docs/CTX-INTEGRATION-PLAN.md
T
MsystechandClaude Opus 5 41e6961b0e CTX 통합 계획 — 순증 48종, 고칠 것 6건. 그리고 내 문서가 하나 틀렸다
검증 통과 태그를 SheetMe 현행 구현과 대조했다(에이전트 6, 73만 토큰).

  new 48 / already 13 / conflict 6 / skip 1

통합하면 26종 → 74종이 되고, 그와 별개로 6건을 고쳐야 한다.
대조를 안 했으면 already 13종을 두 곳에서 처리하게 됐을 것이다.

## 지난 커밋의 내 주장이 틀렸다

WORKFLOW-CTX-ROUND1.md 에 ETC_로그인_사용자명 이 NVL(UidNam,' ') 때문에
레거시와 갈린다고 적었다. 틀렸다 — UserContextStore.cs:80 의 .Trim() 이
그 공백을 도로 걷어내서 NULL 케이스는 양쪽 다 "" 다.
검증이 코드를 직접 읽고 반박했다. 남는 실차이는 다른 것이다(SheetMe 만 Trim).

## 네 번째 차이를 찾았다

ETC_현재년도 — 레거시는 "2026년"(접미 "년"), SheetMe 는 "2026".
앞선 문서의 "차이 3건"에 없던 것이다.
고칠 때 TagPreviewCatalogTests.cs:108 이 "2026" 을 단정하므로
그 판정도 함께 바뀌어야 한다 — 검증이 짚어 줬다.

## conflict 6건

사용자ID_사용자명(결합 조건) · 사용자ID(기준일·Trim) · 사용자명(Trim) ·
사용자연락처(유효기간 없이 첫 행) · 원내연락처(같은 조회 공유) · 현재년도(접미사).

문서만 변경. 게이트는 앞 커밋 상태 그대로다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 14:25:34 +09:00

4.8 KiB

CTX 통합 계획 — 실제 순증은 48종이다

검증 통과 태그를 SheetMe 현행 구현과 대조한 결과(에이전트 6, 73만 토큰).

상태
new 48 순증 — 값 생성 코드가 없다
already 13 현행이 같은 값을 낸다 — 건드리지 않는다
conflict 6 처리하지만 값 규칙이 다르다 — 고쳐야 한다
skip 1 죽은 코드

즉 통합하면 26종 → 74종이 되고, 그와 별개로 6건을 고쳐야 한다.

내가 지난 커밋에 적은 것 하나가 틀렸다

WORKFLOW-CTX-ROUND1.mdETC_로그인_사용자명NVL(UidNam,' ') 때문에 레거시와 갈린다고 적었다. 틀렸다. UserContextStore.cs:80.Trim() 이 그 공백을 도로 걷어내서 NULL 케이스는 양쪽 다 "" 다. 검증이 코드를 직접 읽고 반박했다.

남는 실차이는 다른 것이다 — SheetMe 만 Trim 한다(레거시 16713 은 안 한다).

conflict 6건 — 고칠 것

태그 어떻게 다른가
ETC_로그인_사용자ID_사용자명 레거시는 항상 ID.이름 결합. SheetMe(TagPreviewCatalog.cs:197)는 둘 다 비어 있지 않을 때만
ETC_로그인_사용자ID 유효기간 기준일 — 레거시 GetAdpDtm 앞 8자, SheetMe SYSDATE. 그리고 SheetMe 만 Trim
ETC_로그인_사용자명 SheetMe 만 Trim / 기준일 차이
ETC_로그인_사용자연락처 레거시는 유효기간으로 고른 행, SheetMe(TagPreviewStore.cs:83)는 WHERE UIDCOD 만으로 첫 행
ETC_로그인_원내연락처 같은 조회를 공유하므로 같은 결함
ETC_현재년도 레거시는 "2026년"(접미 "년"), SheetMe 는 "2026"

ETC_현재년도 는 앞선 문서에 없던 네 번째 차이다. 고칠 때 tests/SheetMe.Core.Tests/TagPreviewCatalogTests.cs:108 이 "2026" 을 단정하고 있어 그 판정도 함께 바뀌어야 한다 — 검증이 짚어 줬다.

통합 순서

  1. conflict 6건 수정 + 관련 테스트 갱신
  2. new 48종을 배치로 통합(배치마다 --edit-smoke 이름 검사 · --db-patient · md5)
  3. already 13종은 건드리지 않는다

태그별 판정

상태 태그
already ETC_로그인_사용자연락처
already ETC_로그인_원내연락처
already ETC_현재시간
already ETC_현재일시_1_년
already ETC_현재일시_2_월
already ETC_현재일시_3_일
already ETC_현재일시_4_몇시
already ETC_현재일시_5_몇분
already ETC_현재일시_MaskBox
already ETC_현재일시
already ETC_현재일자_영문
already ETC_현재일자
already OCM_수술일자_Refer
conflict ETC_로그인_사용자ID_사용자명
conflict ETC_로그인_사용자ID
conflict ETC_로그인_사용자명
conflict ETC_로그인_사용자연락처
conflict ETC_로그인_원내연락처
conflict ETC_현재년도
new ETC_로그인사용자_서명
new OCM_OPNAME
new OCM_STFDTR
new OCM_User진료과_Refer
new OCM_User진료과_한글명칭
new OCM_User진료과
new OCM_User진료의사명_Refer
new OCM_User진료의사명
new OCM_내원유형
new OCM_담당의사_Refer
new OCM_담당의사_영문_Refer
new OCM_담당의사_영문
new OCM_담당의사면허번호_Refer
new OCM_담당의사면허번호
new OCM_담당의사싸인_Refer
new OCM_담당의사싸인
new OCM_담당의사전문의번호_Refer
new OCM_담당의사전문의번호
new OCM_로그인_사용자싸인
new OCM_병동_Refer
new OCM_병동_병실_베드
new OCM_병동_병실
new OCM_병동
new OCM_병실베드
new OCM_부상병POA_Refer
new OCM_부상병POA
new OCM_부상병명_Refer
new OCM_부상병코드_Refer
new OCM_부상병코드
new OCM_상병명_가로_Refer
new OCM_상병명_가로
new OCM_상병명_영어_가로_Refer
new OCM_상병명_영어_가로
new OCM_상병명_영어_세로_Refer
new OCM_상병명_영어_세로
new OCM_상병코드_가로_Refer
new OCM_상병코드_가로
new OCM_상병코드_세로_Refer
new OCM_상병코드_세로
new OCM_수술_OprPatETC
new OCM_수술부위
new OCM_수술상병
new OCM_수술주상병
new OCM_심사_부상병명
new OCM_심사_부상병코드
new OCM_심사_주상병명
new OCM_심사_주상병코드
new OCM_외래내원일시_Refer
skip ETC_건강보험증번호_Refer