다크모드
Console 목록 조회 — 백엔드 인계
2026-09-06 KST
변경 경계
이번 채택은 프런트엔드 목록 구성과 조회 상태를 정리합니다. DB 스키마, RPC, 인증, 권한, 발급·승인·급여 계산식, 서버 페이지네이션 API를 새로 정의하거나 변경하지 않습니다. Prototype fixture를 운영 데이터로 확대하지 않습니다.
열 순서 정리의 API 경계
2026-09-14 KST — 이름/주 식별자와 대표 단일 분류를 앞에 두는 프런트엔드 정책입니다. 저장 필드·ID·조회 인자·정렬·CSV 스키마는 바꾸지 않습니다.
- 거래처
legalType은 단일 값,roles는 복수 값입니다. 표에서만 별도 열로 분리합니다. - 기존
individual조건은 개인·개인사업자를 포함하므로 표시 라벨만 명확히 합니다. 새 enum 값이나 서버 predicate를 추가하지 않습니다. - 필터의 single/multiple UI와 레코드 cardinality를 혼동하지 않습니다. 대표 분류가 없는 엔티티에 분류 필드를 새로 만들지 않습니다.
- 원장·결제 이력의 고객 링크는 해당 행의 보조 링크입니다. 날짜 중심 구조와 기존 행 ID를 유지합니다.
조회 상태
| 상태 | 의미 |
|---|---|
| 검색 초안 | 사용자가 입력 중인 문자열. API 조회나 표시 필터에 아직 사용하지 않음 |
| 적용된 검색 | Enter/검색 버튼으로 확정한 문자열 |
| 조건 초안 | 상세 조건 Sheet 안의 편집 상태. 취소 시 폐기 |
| 적용된 조건 | 즉시 선택 또는 Sheet 적용으로 확정한 값 |
| page / pageSize | 목록별 표시 상태. 기본 20, 지원 20/50/100 |
상세 조건 적용은 미제출 검색 초안을 제출하지 않습니다. 적용된 조회가 바뀌면 페이지를 1로 되돌립니다. 텍스트·기간 입력이 같은 검색 실행에 속한 화면은 하나의 inline 제출에서 함께 확정합니다. Sheet는 별도 조건 적용 트랜잭션입니다.
현재 원천별 동작
- 기존 클라이언트 배열/computed 목록은 원천을 보존하고 명시적인 업무 필드 accessor로 필터링한 후 페이지를 자릅니다. DOM 텍스트를 데이터 소스로 읽지 않습니다.
- 시설·거래처·룸·문서함 등 기존 repository/composable 목록은 기존 로딩·권한·저장 seam을 사용합니다. 조회 UI 변경이 API 연결 성공을 보증하지 않습니다.
- 본부
useSalesCustomerAccounts는 기존list({ sellerOrganizationId, query, lifecycleStatus })를 그대로 사용합니다.query에는 적용된 검색만 넣습니다. 현재 응답 배열을 클라이언트에서 페이지로 나누며, 새 서버 paging 인자를 보내지 않습니다. - 파트너 승인·프로비저닝 재시도 capability는 기존 서버 계약을 유지합니다. 화면에서 목록이 숨겨지는 것만으로 보안 검증을 대체하지 않습니다.
- 통합 계약은 최상위 멤버/유닛 그룹이 한 페이지 단위입니다. 하위 계약 수나 펼침 행 수를 total로 쓰지 않습니다. 기존
useTenancyAxes계산을 기준일 인자로 재평가할 뿐 계산식을 바꾸지 않습니다. 기준일(today)과 기존 집계기간(TENANCY_PERIOD, 2025-12)은 별개입니다. 그룹 수·하위 계약은 기존 집계기간을 유지하며 표 헤더에 해당 월을 표시합니다. - 급여의 전체 기간 합계와 확정 스냅샷은
usePayrollRun원천을 유지합니다. 표시 페이지의 합계를 전체 급여 합계로 대신하지 않습니다.
향후 서버 페이지네이션이 필요한 경우
현재의 클라이언트 slice를 이미 페이지된 서버 응답에 한 번 더 적용하면 안 됩니다. 별도 API 설계 시 적용된 query/criteria, 정렬, page/pageSize, 전체 total 및 안정적인 행 ID를 합의하고, 표시 페이지와 전체 집계/선택 집합의 의미를 각각 정해야 합니다. 이번 작업은 이 서버 계약이 구현되었다고 주장하지 않습니다.
문서 미러와 운영 배포는 저장소별 별도 승인·검증 범위입니다. 본 문서는 Console 내부 정본이며, 현재 문서 미러의 반영을 보증하지 않습니다.