부동산 계약 직전에 가장 자주 나오는 질문 중 하나는 “복비가 얼마까지 가능한가”입니다.
이번에 추가한 도구는 주택 매매/임대차 기준으로 거래금액 구간을 판별하고, 상한 요율과 정액 상한을 함께 반영해 빠르게 참고값을 보여주도록 설계했습니다.

핵심 로직 요약

  1. 거래유형 분기: 매매/임대차에 따라 요율 테이블 선택
  2. 거래금액 구간 매칭: 입력 금액에 맞는 상한 요율/정액 상한 조회
  3. 상한 계산: 수수료 = 거래금액 × 요율
  4. 정액 상한 보정: 정액 상한이 있으면 min(수수료, 정액상한) 적용
  5. 참고 VAT 계산: 부가세 포함 = 수수료 × 1.1 (참고값)

1) 거래유형별 요율 테이블 선택

매매와 임대차는 구간/상한 규칙이 다르므로, 입력된 유형으로 계산 테이블을 먼저 결정합니다.

핵심은 계산 전에 유형 유효성 검증을 해 예외 흐름을 초기에 차단하는 것입니다.

if (!['sale', 'rent'].includes(type)) {
  throw new Error('거래 유형을 선택하세요.');
}

2) 거래금액 구간 매칭

입력값(원 단위)을 구간 테이블에 대입해 적용 요율과 정액 상한 정보를 가져옵니다.

const bracket = table.find(({ min, max }) => amount >= min && amount < max);
if (!bracket) throw new Error('거래금액 구간을 확인하세요.');

이렇게 구간 정보를 분리해두면, 정책 변경 시에도 테이블 수정만으로 대응이 쉬워집니다.

3) 요율 계산 + 정액 상한 min 처리

구간이 정해지면 먼저 요율 계산값을 만들고, 정액 상한이 있는 구간은 min으로 보정합니다.

const feeByRate = amount * bracket.rate;
const cappedFee = bracket.cap ? Math.min(feeByRate, bracket.cap) : feeByRate;

이 단계가 중요한 이유는, 사용자가 동일한 거래금액이라도 구간 규칙에 따라 실제 상한 적용 결과가 달라지는 이유를 이해할 수 있기 때문입니다.

4) 월세 환산보증금 입력 보조(30분 개선)

임대차에서 실수하기 쉬운 지점이 월세 거래금액 환산입니다.
이번 개선에서 보증금/월세 보조 입력을 추가해 보증금 + 월세×100 기준으로 거래금액을 자동 동기화했습니다.

const converted = deposit + monthlyRent * 100;
amountInput.value = converted;

덕분에 사용자는 환산 공식을 따로 계산하지 않아도 되고, 입력 오류가 크게 줄어듭니다.

5) VAT 참고금액 표시

실제 과세 여부는 사업자 유형/계약 조건에 따라 달라질 수 있어, VAT는 확정값이 아닌 참고값으로만 노출합니다.

const vatIncluded = cappedFee * 1.1;

UI에서도 “참고용” 문구를 함께 표시해 과신을 방지했습니다.

예외 처리 포인트

  • 음수/0원 입력 차단
  • 거래유형 미선택 시 즉시 안내
  • 구간 미매칭 입력값 방어
  • 월세 환산 보조 입력값(보증금/월세) 비정상 범위 검증
  • 결과는 상한 기준 참고값임을 명시

내부 링크

요약

이번 코어 로직의 핵심은 아래 3가지입니다.

  • 거래유형별 요율 테이블 분리
  • 요율 계산 + 정액 상한 min 보정
  • 월세 환산보증금 자동 동기화로 입력 실수 감소

결과적으로 사용자는 계약 직전에 복비 상한을 빠르게 확인하고, 중개사 상담 시 협의 기준을 더 명확하게 잡을 수 있습니다.