컨텐츠로 건너뛰기

01_부과 대상과 배분 방식의 모순 방지 설계

부과 대상과 배분 방식의 모순 방지 설계

Section titled “부과 대상과 배분 방식의 모순 방지 설계”

관리비 항목을 설정할 때, 사용자가 선택한 **‘부과 대상(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단 하나의 특정 호실에게 일회성 금액을 직접 입력하여 부과하는 전용 방식입니다. 반복적인 규칙을 적용하는 다른 모든 방식은 부적합합니다.
  1. 초기 상태: ‘배분/계산 방식’ 드롭다운은 비활성화되어 있습니다.
  2. 사용자 행동: ‘부과 대상’ 드롭다운에서 **‘전체 호실’**을 선택합니다.
  3. 시스템 반응:
    • ‘배분/계산 방식’ 드롭다운이 활성화됩니다.
    • 드롭다운의 옵션 목록에는 위 표에 따라 그룹에 적용 가능한 TOTAL_PER_AREA, TOTAL_PER_UNIT_EQUAL, RATE_PER_AREA, FIXED_AMOUNT 등만 표시됩니다.
    • DIRECT_ASSIGNMENT 와 같이 그룹에 적용할 수 없는 옵션은 목록에서 아예 보이지 않습니다.
  4. 사용자 행동: ‘청구 항목’의 성격을 ‘세대 전기료’와 같이 개별 사용량 기반으로 변경하여, 부과 대상의 성격이 ‘이용자 그룹’으로 바뀝니다.
  5. 시스템 반응: ‘배분/계산 방식’ 드롭다운의 옵션 목록이 이용자 그룹에 적합한 INDIVIDUAL_USAGE_PROPORTIONAL, RATE_PER_USAGE, FIXED_AMOUNT 등으로 즉시 변경됩니다.

이처럼 사용자의 이전 선택에 따라 다음 선택지를 동적으로 제한하는 ‘계단식 유효성 검사(Cascading Validation)’ 방식은, 복잡한 설정 과정에서 발생할 수 있는 논리적 모순을 원천적으로 차단합니다. 이는 사용자에게는 직관적인 경험을 제공하고, 시스템에는 데이터의 정합성을 보장하는 가장 효과적이고 안정적인 설계 방식입니다.