Repository navigation
금융 카테고리 명칭·enum·입력 및 저장 계약을 확정한다 #491
Copy link
Copy link
Closed
Labels
Description
📜 Overview (Required)
재산 처리(ESTATE) 카테고리 입력 화면을 구현한다.
2026-07-18 갱신 — 에디터·상세 시안 도착 (류하늬, 07-18 저녁 버전들):
- 에디터 3171:19047 · 상세 3171:19330 신설. 기존 블로커였던 "화면 시안 미설계"는 해소.
- 명칭 전환 가능성: 에디터 종류 라벨이 "금융" (서비스명 "온라인 뱅킹"). 류하늬 회신 "비즈니스 / 금융 둘다 에디터 화면 추가"와 일치. 단 홈 카테고리 필터(640:19136)는 여전히 "재산 처리" — 시안 내부에서도 명칭이 갈려 있어 확정 필요 (BE enum 명칭에도 영향: ESTATE vs FINANCE).
- 폼 구조가 계정형과 다름: "금융 정보" 섹션 = 은행명(KB국민은행 — 드롭다운형) + 계좌 번호 + 보안 번호. 계정형(아이디/비밀번호)도, 문서형도 아닌 제3형.
- 하위 항목 카탈로그와 불일치: 카탈로그 프레임(34:3342)의 뱅킹(은행)·부동산·증권·유산 4종과 신시안의 은행명 드롭다운 구조가 안 맞음 — 서비스 선택(카탈로그) 레이어와 은행 선택 레이어의 관계 확정 필요.
- 정보 처리 방법 라디오 2택 신설: "상속 절차에 따른 처리" / "수신자에게 정보 전달" (+옵션별 설명). BE 계약엔 processMethod 필드가 없음(2026-05 폐지) — 라디오 존속 여부 PM의 제품 결정과 그에 따른 BE 계약 확인 선행.
- 시안 결함 (실측): 에디터의 "처리 방법 리스트" 예시가 비즈니스 문구("거래처 연락처와 진행 상황을 팀원에게 전달" 등)로 들어가 있고, 반대로 비즈니스 에디터(700:38735)엔 금융 문구("예금은 만기 후 해지, 잔액은 가족에게 전달" 등)가 들어가 있음 — 두 프레임 예시가 서로 뒤바뀐 상태. 확정이 필요한 상세 시안(3171:19330)의 금융 예시도 결정 자료로만 참고한다.
- 상세(3171:19330) 구성: 서비스 헤더(온라인 뱅킹·최종 작성일) + 처리 방법 배지("수신자에게 정보 전달") + ACCOUNT 태그 + 계좌 번호 노출 + 보안 번호 마스킹(••••••••)·"표시" 토글 + 처리방법 리스트 + 남기신 말씀(empty state).
현 코드 상태:
AfternoteEditorContent— ESTATE 는UnimplementedCategoryContent("준비 중") placeholder.EditorCategory.hasServiceSelection= false — 서비스명 UI 미노출 (KDoc 에 카탈로그 4종 출처·본 이슈 상호 참조).AfternoteEditorValidator— ESTATE 저장은 개별 필드 검증보다 앞서UNIMPLEMENTED_CATEGORY로 차단.AfternoteServiceCatalog—estateServices미정의.
현재 범위: 제품·서버 계약 결정
- 명칭, category enum, 카탈로그와 은행 선택의 관계, 처리 방법 라디오 존속 및 저장 계약의 확정 근거를 확인한다.
- 특정 금융 폼·FormMapper·Validator·상세 화면 구현 예약은 제거한다. 결론 뒤 당시 코드와 대조해 실제 필요한 범위를 정한다.
- 기존 시안 관찰은 결정 자료이며 구현 지시가 아니다. 모순된 예시 중 하나를 임의로 선택하지 않는다.
시안 — 금융 카테고리 작성·상세:
📍 Note (Optional)
착수 게이트 (2026-07-18 재정의 — 시안 게이트는 해소):
- BE category enum — ESTATE(또는 FINANCE) 미지원. BUSINESS 도 부재 실측 상태(2026-07-16 api-docs)라 함께 요청 중.
- 명칭·카탈로그 확정 — '재산 처리' vs '금융', 카탈로그 4종 vs 은행명 드롭다운 관계.
- 처리 방법 라디오 존속 결론 — PM 폐지 확정 vs 시안 신설 충돌의 PM 결정 회신. 명칭('재산 처리' vs '금융')과 함께 노션 Android-DE 확정 대기 목록에 올려 둔 항목이다.
브랜치는 착수 시점에 생성한다 (선행 대기 이슈 관례, #470 참조).
Reactions are currently unavailable
Activity
[-]feat(afternote): 재산 처리(ESTATE) 카테고리 입력 화면 구현 — 하위 항목 카탈로그 포함 (시안·BE 선행)[/-][+]feat(afternote): 재산 처리(ESTATE)→금융 카테고리 입력 화면 구현 (BE enum·명칭·라디오 결론 선행)[/+]OnlyReadOneBook commentedon Aug 16, 2026
금융 에디터 입력란 placeholder 시안 확정값 — 구현 시 기준값 (2026-08-15 시안 편집 실측)
2026-08-15 디자이너(류하늬)가 시안 전반의 placeholder 리터럴
Text Field를 실문구로 일괄 교체했다(#794 배경 참조). 금융 에디터 시안 기준 이 화면 몫:번호를 입력해 주세요.번호를 입력해 주세요.제목을 입력해 주세요.내용을 입력해 주세요.은행명 필드는 같은 시안에서 예시값("KB국민은행")이 채워진 상태로 그려져 있어 placeholder 문구가 정의돼 있지 않다 — 빈 상태 문구는 구현 시점에 시안을 재확인한다.
docs(afternote): 매퍼의 서버 계약 설명 주석 제거
test(afternote,receiver): 카테고리 해석 기대치를 코덱 계약에 도로 맞춘다
[-]feat(afternote): 재산 처리(ESTATE)→금융 카테고리 입력 화면 구현 (BE enum·명칭·라디오 결론 선행)[/-][+]재산 처리(ESTATE)→금융 카테고리 입력 화면 구현 (BE enum·명칭·라디오 결론 선행)[/+]OnlyReadOneBook commentedon Aug 30, 2026
게이트 재실측 (2026-08-31) — 3개 중 남은 것은 BE 하나입니다
착수 가능 여부를 다시 재려고 본문의 게이트 3개를 각각 실측했습니다. 여전히 막혀 있지만, 막고 있는 것은 BE 하나뿐입니다.
1. BE enum·필드 — 여전히 막힘 (실블로커)
Afternote-BEorigin/main(= 실서버 배포 브랜치) 실코드:ESTATE·FINANCE는 단어 경계로 grep 해 0건,bankName·accountNumber·securityNumber도 0건입니다. Afternote/Afternote-BE#225 는 열려 있고 코멘트·브랜치가 없습니다.2. 명칭·카탈로그 충돌 — 게이트 아님 (FE 재량)
정본 페이지에서 명칭이 여전히 갈려 있는 것은 맞습니다. 다만 Figma 스레드에 07-19·08-02 두 번 질의했고 디자이너 실질 회신이 없습니다. 이 팀 규칙상 미답변 디자인 질의는 블로커가 아니라 FE 재량입니다(단, 착수 시점에 시안을 재조회할 것).
3. 라디오 존속 — 폐지로 확정
같은 축을 다루던 #494 에서 비즈니스 에디터 정본 프레임
4327:70468의 TEXT 노드 30건을 전수로 훑었고, 라디오 3택 문구가 0건임을 확인했습니다. 근거는 PR #1643 에 정리했습니다. 이 항목은 #491 에서도 되살아나지 않습니다.정리
BE#225 가 enum 과 금융 필드를 내면 바로 착수 가능합니다. 남은 FE 범위는 금융 폼 필드 + 카테고리 카탈로그 등록 + 매퍼·검증·저장 + 상세 표시입니다.
[-]재산 처리(ESTATE)→금융 카테고리 입력 화면 구현 (BE enum·명칭·라디오 결론 선행)[/-][+]금융 카테고리 명칭·enum·입력 및 저장 계약을 확정한다[/+]OnlyReadOneBook commentedon Sep 13, 2026
실측 기록 (2026-09-13): 블로커는 무변동, BE 에 남은 몫은 ESTATE 하나입니다
이 이슈에서 지금 코드로 뗄 독립 범위가 없다고 판정했습니다. 본문의 완료 조건 4개를 항목별로 따졌더니, enum 은 Afternote/Afternote-BE#225 가 그대로 막고 있고, 카탈로그와 은행 선택의 관계나 폼 구조는 그 enum 과 금융 필드 계약이 나와야 정해지며, 처리 방법 라디오는 2026-08-31 코멘트에서 폐지로 끝난 항목입니다. 명칭만 FE 재량이지만 근거인 시안과 노션을 이 세션에서 열 수 없어 확정을 쓸 수 없습니다.
대신 다음 착수자가 같은 조사를 반복하지 않도록 오늘 잰 값을 남깁니다. 기준은 FE
origin/develop7d87aa3f4, BEorigin/main3593aa3(2026-09-09) 입니다.1. 블로커 재실측: 08-31 이후 움직인 것이 없습니다
ESTATE·FINANCE를 단어 경계로 grep 하면 3건이 나오는데 전부 주석 안의 예시입니다(.cursor/rules/schema-enum-varchar.mdc:11,15,src/main/resources/application.yml:10). enum·DTO·검증 어디에도 실제 값이 없습니다.bankName|accountNumber|securityNumber는 0건입니다.Afternote/Afternote-BE#225 는 OPEN, 코멘트 0건, 연결된 브랜치·PR 0건이고 마지막 갱신이 2026-08-23 입니다. 08-31 판정 이후 2주간 무변동입니다. 담당이 지정된 채 열려 있어 BE 쪽 잔여 범위는 그 이슈가 추적합니다.
2. FE 와 BE enum 대조: 어긋나는 값은 ESTATE 하나입니다
AfternoteType.kt:12-16의 5값 중 4값이AfternoteCategoryCodec.kt:13-16에서 서버 값으로 맞물립니다.AfternoteTypecategorySOCIAL_NETWORKSOCIALBUSINESSBUSINESSGALLERY_AND_FILESGALLERYMEMORIALPLAYLIST(수신 전용 레거시MUSIC포함, 같은 파일 20행)ESTATEESTATE 만 표에 없어
toServerCategory()가 null 이고,AfternoteRepositoryImpl.kt:45,48이 그 null 을 보고 요청 자체를 만들지 않습니다.AfternoteCategoryCodecTest.kt:39,72가 이 부재를 회귀로 잠가 놨습니다. 즉 FE 쪽 저장 계약은 이미 "보내지 않는다" 로 구현이 끝나 있고, BE#225 가 값을 내면 바뀌는 곳은 위 매핑표 한 줄입니다.3. 저장 차단은 임시저장 경로에서도 유지됩니다
AfternoteEditorValidator.kt:22-24가 개별 필드 검증보다 먼저AfternoteValidationError.UNIMPLEMENTED_TYPE로 끊습니다. 진행 중인 임시저장 PR #1768(#808)도 KDoc 표에 이 오류를 "막는다" 로 명시해asDraft경로에서도 통과시키지 않습니다. 오늘 ESTATE 를 서버로 보내는 경로는 draft 든 publish 든 없습니다.4. 명칭은 백지가 아니라 이미 "재산 처리" 로 배포 중입니다
도메인 상수는
ESTATE이고,strings.xml:33의afternote_category_estate와strings.xml:39의afternote_editor_category_estate가 둘 다 "재산 처리" 입니다. 에디터 카테고리 드롭다운은AfternoteEditorContent.kt:68에서options = AfternoteType.entries라 필터 없이 ESTATE 를 내줍니다. 사용자가 "재산 처리" 를 고르면AfternoteEditorContent.kt:335-337의UnimplementedTypeContent()가 뜨고 저장은 막힙니다.반면 홈 필터 탭은
AfternoteDisplayRes.kt:13-20의TYPE_FILTER_TABS에서 ESTATE 를 빼 놨습니다. 같은 미지원 카테고리를 한쪽은 감추고 한쪽은 내주는 비대칭이 지금 배포 상태입니다.명칭이 "금융/FINANCE" 로 확정될 경우의 전환 비용도 오늘 시점 값으로 못 박아 둡니다. 심볼
ESTATE는 단어 경계 기준 41파일 63곳입니다(main 소스 28파일 43곳, 테스트 12파일 19곳, testFixtures 1파일 1곳). 여기에 위 문자열 리소스 2건과 매핑표·KDoc 문안이 더 붙습니다.5. 본문이 develop 실태와 어긋나는 곳
본문은 고치지 않고 정정만 남깁니다.
78ee857로AfternoteCategoryType에 BUSINESS 를 넣었고, FE 도AfternoteCategoryCodec.kt:14에서 이미 BUSINESS 를 보냅니다(fix(afternote): 사업자 애프터노트가 만든 뒤 어디서도 제대로 안 보인다 — BE 가 추가한 BUSINESS 를 FE 매핑표가 안 덮어 소셜로 둔갑 #1048 사고 수정분). BE#225 에 남은 몫은 ESTATE 하나입니다.UnimplementedCategoryContent는 develop 에 0건입니다. 실제 이름은UnimplementedTypeContent, 파일은editor/UnimplementedTypeContent.kt, 호출은AfternoteEditorContent.kt:336입니다.EditorCategory라는 타입도 develop 에 0건입니다. 도메인 enum 이름은AfternoteType이고 프로퍼티는AfternoteType.hasServiceSelection(AfternoteTypeEditScreenLabel.kt:30) 입니다. 값이 false 라 서비스명 UI 가 안 나온다는 동작 자체는 사실입니다.UNIMPLEMENTED_CATEGORY도 0건입니다. 상수명은AfternoteValidationError.UNIMPLEMENTED_TYPE(AfternoteSaveState.kt:19) 이고, 옛 이름은 문자열 리소스 키afternote_validation_unimplemented_category(strings.xml:44) 에만 남아 있습니다.본문의
AfternoteServiceCatalog에estateServices가 없다는 서술은 그대로 맞습니다(develop 0건).6. 곁가지: 코드 주석의 잘못된 상호 참조
AfternoteDisplayRes.kt:11의 KDoc 이 ESTATE 필터 제외 근거를 "Afternote-BE#491" 로 적었는데, Afternote-BE 에 491 번 이슈도 PR 도 없습니다(조회 404). 가리켜야 할 것은 Afternote/Afternote-BE#225 입니다. FE 이슈 번호를 BE 네임스페이스로 옮겨 적은 오타로 보입니다.이 오타는 블로커와 무관하고 이 이슈의 완료 조건도 아닙니다. 기록해 두는 이유는 다음 착수자가 저 주석을 근거로 BE 이슈를 찾다가 헛짚지 않게 하기 위해서입니다.
7. 중복 착수 방지용 확인
열린 PR 62건의 제목·브랜치·본문을 전수로 훑어 491 언급이 0건임을 확인했습니다. 491 이 들어간 원격 브랜치도 없습니다. 애프터노트 영역을 건드리는 열린 PR 은 17건인데,
AfternoteCategoryCodec·AfternoteServiceCatalog·AfternoteDisplayRes·AfternoteType을 건드리는 것은 하나도 없습니다. 유일한 접점인 #1768 은 ESTATE 차단을 임시저장에도 그대로 유지합니다.확인하지 못한 것
명칭 확정 여부는 이 단계에서 결론내지 않았습니다. 노션 Android-DE 확정 대기 페이지가 이 세션의 커넥터로 404 라(다른 워크스페이스) 읽을 수 없고, Figma 도 미인증이라 시안 재조회가 안 됩니다. 착수 시점에 둘 다 다시 열어야 합니다.
OnlyReadOneBook commentedon Sep 19, 2026
2026-09-19 정리로 닫는다. 이 이슈의 완료 조건은 PM의 결정에 달려 있어 결정 전에는 FE 가 무엇을 만들지 쓸 수 없다. 그런 이슈는 FE 저장소에 열어 두지 않고 결정이 나면 그때 새 이슈로 다시 연다.
기다리는 결정: 금융 카테고리 명칭·처리 방법(BE category enum 포함).
PM 질문은 창구가 정해지는 대로 보낸다(일혁이 목록 보관).