01_부과 대상과 배분 방식의 모순 방지 설계
부과 대상과 배분 방식의 모순 방지 설계
Section titled “부과 대상과 배분 방식의 모순 방지 설계”1. 문제 정의
Section titled “1. 문제 정의”관리비 항목을 설정할 때, 사용자가 선택한 **‘부과 대상(Target Scope)‘**과 **‘배분/계산 방식(Allocation Method)‘**이 논리적으로 서로 맞지 않는 경우가 발생할 수 있습니다. 예를 들어, 여러 호실의 집합인 ‘전체 호실’에 단일 대상에게만 의미가 있는 ‘직접 지정 부과’를 적용하는 것은 모순입니다. 이러한 설정을 시스템이 허용하면, 월별 관리비 계산 시 심각한 오류가 발생합니다.
2. 해결 원칙: 동적 필터링을 통한 사전 방지
Section titled “2. 해결 원칙: 동적 필터링을 통한 사전 방지”시스템은 오류가 발생한 후에 경고를 보내는 것보다, 사용자가 처음부터 논리적으로 올바른 선택만 할 수 있도록 유도해야 합니다. 이는 ‘청구 항목 등록폼’의 선택지를 동적으로 필터링하는 방식으로 구현합니다.
핵심 로직: “사용자가 ‘부과 대상’을 먼저 선택하면, 시스템은 해당 대상의 성격에 적용 가능한 ‘배분/계산 방식’ 목록만 드롭다운에 표시한다.”
3. ‘부과 대상’ 유형별 적용 가능 ‘계산 방식’ 매트릭스
Section titled “3. ‘부과 대상’ 유형별 적용 가능 ‘계산 방식’ 매트릭스”아래 표는 각 ‘부과 대상’ 유형에 따라, ‘배분/계산 방식’ 드롭다운에 표시되어야 할 옵션들을 명확하게 정의합니다.
부과 대상 (target_scope) | 이 대상의 성격 | 적용 가능한 계산 방식 (allocation_method) | 설명 및 적용 사례 |
|---|---|---|---|
| 전체 호실 계약중인 호실 공실 선택 호실 | 일반 그룹 (General Group) 여러 호실의 집합 | 총액 기반 TOTAL_PER_AREA TOTAL_PER_UNIT_EQUAL TOTAL_PER_SHARE_RATIO단가 기반 RATE_PER_AREA RATE_PER_VEHICLE RATE_PER_OCCUPANT고정액 부과 FIXED_AMOUNT | 그룹이 대상이므로, 발생한 총액을 그룹 내에서 나누거나(면적, 균등, 지분), 그룹 내 각 호실의 특정 수량(면적, 차량 수)에 단가를 곱하거나, 그룹 전체에 동일한 고정액을 부과하는 방식이 적합합니다. |
| 서비스/계량기 이용 호실 (예: 세대 전기료, 헬스장 이용료 등) | 이용자 그룹 (User Group) 특정 목적의 호실 집합 | 총액 기반 INDIVIDUAL_USAGE_PROPORTIONAL단가 기반 RATE_PER_USAGE고정액 부과 FIXED_AMOUNT | 서비스를 **‘이용’**하는 것이므로, 각자 사용한 만큼 요금을 내거나(단가 기반), 전체 사용료 중 본인이 쓴 비율만큼 내거나(총액 기반), 고정된 구독료를 내는 방식이 적합합니다. 건물 전체에 대한 일반적인 배분 방식은 부적합합니다. |
| 개별 지정 호실 (일회성 비용 부과 시) | 개별 (Individual) 단 하나의 특정 호실 | 직접 지정 DIRECT_ASSIGNMENT | 단 하나의 특정 호실에게 일회성 금액을 직접 입력하여 부과하는 전용 방식입니다. 반복적인 규칙을 적용하는 다른 모든 방식은 부적합합니다. |
4. 화면 UI 동작 흐름 예시
Section titled “4. 화면 UI 동작 흐름 예시”- 초기 상태: ‘배분/계산 방식’ 드롭다운은 비활성화되어 있습니다.
- 사용자 행동: ‘부과 대상’ 드롭다운에서 **‘전체 호실’**을 선택합니다.
- 시스템 반응:
- ‘배분/계산 방식’ 드롭다운이 활성화됩니다.
- 드롭다운의 옵션 목록에는 위 표에 따라 그룹에 적용 가능한
TOTAL_PER_AREA,TOTAL_PER_UNIT_EQUAL,RATE_PER_AREA,FIXED_AMOUNT등만 표시됩니다. DIRECT_ASSIGNMENT와 같이 그룹에 적용할 수 없는 옵션은 목록에서 아예 보이지 않습니다.
- 사용자 행동: ‘청구 항목’의 성격을 ‘세대 전기료’와 같이 개별 사용량 기반으로 변경하여, 부과 대상의 성격이 ‘이용자 그룹’으로 바뀝니다.
- 시스템 반응: ‘배분/계산 방식’ 드롭다운의 옵션 목록이 이용자 그룹에 적합한
INDIVIDUAL_USAGE_PROPORTIONAL,RATE_PER_USAGE,FIXED_AMOUNT등으로 즉시 변경됩니다.
이처럼 사용자의 이전 선택에 따라 다음 선택지를 동적으로 제한하는 ‘계단식 유효성 검사(Cascading Validation)’ 방식은, 복잡한 설정 과정에서 발생할 수 있는 논리적 모순을 원천적으로 차단합니다. 이는 사용자에게는 직관적인 경험을 제공하고, 시스템에는 데이터의 정합성을 보장하는 가장 효과적이고 안정적인 설계 방식입니다.