본문으로 건너뛰기
🛠️ToolsShed

신용카드 상환 계산기

신용카드 부채를 갚는 데 걸리는 시간과 총 이자를 계산합니다.

최소 결제: max(잔액의 2%, $25)

목표 상환 기간

이 도구 소개

신용카드 상환 계산기는 신용카드 잔액을 유지할 때의 실제 경제적 부담을 이해하고 빚에서 벗어나기 위한 현실적인 계획을 세우는 데 도움이 됩니다. 현재 잔액, 이자율, 매달 상환하려는 금액을 입력하면 도구가 완전히 상환될 때까지 정확히 몇 개월이 걸릴지, 그리고 그 과정에서 지불할 총 이자가 얼마인지 보여줍니다. 신용카드 이자는 매일 복리로 계산되므로, 적절한 계획 없이는 상환 기간을 과소평가하기 쉽습니다.

계산기를 사용하려면 신용카드 잔액, 연이율(APR), 매달 상환할 금액을 입력하기만 하면 됩니다. 도구는 즉시 상환 일정을 생성하여 매달 잔액이 감소하는 모습과 누적된 이자를 표시합니다. 이를 통해 매달 상환액을 늘려 이자를 절약할지, 아니면 현재의 상환 전략이 당신의 예산 범위 내에서 현실적인지 판단할 수 있습니다. 많은 사람들은 매달 상환액에 20~50달러만 더해도 수천 달러를 절약할 수 있다는 사실을 깨닫습니다.

이 도구는 여러 신용카드 잔액을 보유하고 있는 사람들에게 특히 유용합니다. 각 카드를 개별적으로 계산하여 어느 카드를 먼저 상환할지 우선순위를 정할 수 있기 때문입니다. 상환 기간을 이해하는 것은 더 빠른 상환으로 나아갈 동기를 부여하고, 0 잔액을 향해 나아가는 과정에서 새로운 빚을 쌓지 않도록 도와줍니다. 이 계산은 고정 이자율과 일정한 월간 상환을 전제로 한다는 점을 기억하세요. 발급사가 이자율을 변경하거나 상환을 놓친 경우 실제 상환 기간은 다를 수 있습니다.

자주 묻는 질문

코드 구현

def payoff_simulation(balance, annual_rate, monthly_payment):
    """
    Simulate credit card payoff month by month.

    Parameters:
        balance         - current balance owed
        annual_rate     - annual interest rate (e.g. 0.20 for 20%)
        monthly_payment - fixed payment made each month

    Returns dict with months, total_paid, and total_interest.
    """
    monthly_rate  = annual_rate / 12
    months        = 0
    total_paid    = 0.0
    total_interest = 0.0

    while balance > 0:
        interest   = balance * monthly_rate
        total_interest += interest
        balance   += interest
        payment    = min(monthly_payment, balance)
        balance   -= payment
        total_paid += payment
        months    += 1
        if months > 1200:          # safety cap (100 years)
            break

    return {
        "months":         months,
        "total_paid":     total_paid,
        "total_interest": total_interest,
    }


def required_payment(balance, annual_rate, months):
    """
    Calculate fixed monthly payment to clear a balance in exactly N months.
    Standard amortization formula: M = P * r / (1 - (1+r)^-n)
    """
    r = annual_rate / 12
    if r == 0:
        return balance / months
    return balance * r / (1 - (1 + r) ** -months)


def min_payment(balance, min_percent=0.02, min_floor=25.0):
    """Return the minimum payment (2% of balance, at least $25)."""
    return max(balance * min_percent, min_floor)


# Example: $5,000 balance at 20% APR, paying $150/month
result = payoff_simulation(5000, 0.20, 150)
print(f"Months to pay off:  {result['months']}")
print(f"Total paid:         ${result['total_paid']:,.2f}")
print(f"Total interest:     ${result['total_interest']:,.2f}")

# Required payment to pay off in 24 months
payment = required_payment(5000, 0.20, 24)
print(f"\nRequired for 24 months: ${payment:,.2f}/mo")

# Minimum payment scenario
mp = min_payment(5000)
mp_result = payoff_simulation(5000, 0.20, mp)
print(f"Minimum payment (${mp:.2f}/mo) takes {mp_result['months']} months")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.