금리 바뀔 때마다 대출 상환액 직접 계산해봤다 — 파이썬 시뮬레이터 제작기

금리 바뀔 때마다 대출 상환액 직접 계산해봤다 — 파이썬 시뮬레이터 제작기

금리 바뀔 때마다 대출 상환액 직접 계산해봤다 — 파이썬 시뮬레이터 제작기

금리가 0.25%포인트 바뀌었다는 뉴스를 봤을 때, 그게 내 통장에 매달 얼마로 나타나는지 즉시 계산할 수 있는 사람이 얼마나 될까. 은행 앱 상환 예시를 클릭해봐도 현재 조건만 보여줄 뿐, “만약 금리가 0.5% 더 오르면?”이라는 질문엔 침묵한다. 그 침묵이 쌓이면 의사결정 비용이 된다 — 갈아탈까 말까, 중도상환 할까 말까를 직감으로 때우게 만드는 것.

그래서 직접 만들었다. 외부 라이브러리 없이, 파이썬 표준 라이브러리만으로 금리 변동 대응형 대출 상환 시뮬레이터를 짰다. 이 글은 그 도구를 홍보하려는 게 아니라, 만들면서 알게 된 계산 구조의 이면을 기록하려는 것이다.


3억 원 30년 만기 대출 — 금리별 월 납부액 비교
3억 원 30년 만기 대출 — 금리별 월 납부액 비교 (출처: 원리금균등상환 공식 직접 계산)

왜 ‘정책 변화 대응형’이 필요했나

문제는 단순했다. 변동금리 대출을 갖고 있는 사람이 한국은행 기준금리 결정 이후 “그래서 내 월 상환액은 얼마 바뀌냐”를 알고 싶을 때, 쓸 만한 도구가 의외로 없다.

은행 홈페이지 계산기는 대부분 단일 조건 입력만 받는다. 금리를 여러 시나리오로 비교하거나, ‘지금 금리 vs. 0.25%↑ vs. 0.5%↑’ 세 줄을 나란히 보는 기능은 찾기 힘들다. 엑셀로 직접 짜는 방법도 있지만, 원리를 모르면 수식이 블랙박스가 된다.

그래서 내가 원한 건 딱 하나였다.

> 원금·이자율·기간을 바꿔가며 즉시 비교할 수 있고, 수식이 내 눈앞에 펼쳐져 있는 도구.


핵심 정보: 대출 상환 계산의 실제 구조

원리금균등상환 공식이란

가장 많이 쓰이는 대출 상환 방식인 원리금균등상환(Annuity)은 매달 동일한 금액을 내는 방식이다. 매달 내는 금액(M)은 다음 수식으로 결정된다.

M = P × r(1+r)ⁿ / ((1+r)ⁿ - 1)
P = 원금 r = 월 이자율 (연 이자율 ÷ 12) n = 총 상환 개월 수

이 공식의 핵심은 r이 조금만 바뀌어도 분자와 분모가 동시에 변해 결과가 생각보다 크게 달라진다는 점이다. 예를 들어, 3억 원 30년 만기 대출에서 연 금리가 4.0%에서 4.5%로 0.5%포인트 오르면 월 납부액은 약 8만 원 이상 늘어난다. 1년이면 100만 원, 30년이면 단순 합산만으로 3,000만 원 이상의 차이다.

원금균등상환과의 차이

원금균등상환은 원금을 매달 동일하게 나눠 갚고, 이자는 남은 원금에 붙는 방식이다. 초반에 부담이 크지만 총 이자 지출은 원리금균등보다 적다. 어느 방식이 ‘더 낫다’가 아니라, 현금흐름 상황에 따라 선택하는 것이다.

시뮬레이터를 만들면서 이 두 방식을 나란히 계산하도록 설계했다. 같은 조건에서 총 이자 지출이 얼마나 다른지를 숫자로 보면, ‘월 초반 부담 vs. 총 이자 절약’의 트레이드오프가 직관적으로 이해된다.


실전 활용: 이런 상황에서 쓰면 된다

  • 변동금리 대출 보유자 — 기준금리 결정 직후, 0.25%·0.5% 인상 시나리오별 월 납부액을 바로 비교한다.
  • 고정→변동 혹은 변동→고정 전환을 고민 중인 경우 — 두 금리 조건을 입력해 총 이자 차이를 먼저 숫자로 확인한 뒤 판단한다.
  • 중도상환 타이밍을 재는 경우 — 남은 원금, 현재 금리, 남은 기간을 입력해 ‘지금 갚으면 줄어드는 이자’를 계산한다. 중도상환 수수료와 비교하는 근거가 된다.

도구 자체는 loan_calc.py 형태로 로컬에서 실행하는 방식이다. python loan_calc.py를 실행하고 원금·연 이자율·기간(년)을 입력하면 월 납부액, 총 납부액, 총 이자 합계가 출력된다.


단계별로 이해하기: 수식에서 현실 판단까지

1단계 — 월 이자율로 변환하는 이유

연 이자율을 그냥 12로 나누면 될 것 같지만, 금융권에서는 복리 계산 방식이 혼재한다. 국내 은행 대출은 대부분 단리 기준 월 이자율 = 연 이자율 ÷ 12로 적용하지만, 상품마다 다를 수 있다. 약정서의 이자 계산 방식을 확인하는 습관이 중요하다.

2단계 — ‘총 이자’ 숫자가 보이면 생각이 달라진다

월 납부액만 보면 금리 차이가 작아 보인다. 하지만 시뮬레이터로 30년치 총 이자 합계를 보는 순간, 인식이 달라진다. 3억 원 30년 기준으로 연 4%와 5%의 총 이자 차이는 약 5,000만 원 수준이다. 이 숫자를 보고 나면 금리 협상이나 우대금리 적용 여부에 더 적극적으로 대응하게 된다.

3단계 — 정책 변화를 ‘내 숫자’로 번역하기

한국은행이 기준금리를 조정할 때, 뉴스는 거시경제 영향을 설명한다. 하지만 직장인에게 실질적인 정보는 “내 대출 월 납부액이 얼마 바뀌냐”다. 시뮬레이터에 현재 조건과 변경 후 조건을 각각 입력하면, 정책 뉴스가 ‘내 현금흐름 변화’로 번역된다.

한국은행의 기준금리 변동 현황을 참고하면 과거 금리 흐름도 확인할 수 있어, 시나리오 입력값으로 활용하기 좋다.

4단계 — 전세 대출·신용대출도 동일 구조

주택담보대출만의 이야기가 아니다. 전세대출, 신용대출, 카드론도 원금·이자율·기간이 있으면 동일한 수식이 적용된다. 전세 vs 월세 기회비용 계산을 따져볼 때도 전세대출 이자를 정확히 계산하는 것이 출발점이 된다.

5단계 — 외부 종속성을 없앤 이유

NumPy나 pandas를 쓰면 더 화려하게 만들 수 있다. 하지만 일부러 math 표준 라이브러리만 썼다. 라이브러리 버전 충돌 없이, 파이썬만 설치돼 있으면 어디서든 실행된다. 계산 로직을 직접 제어하면, 수식이 어디서 어떻게 작동하는지를 ‘읽을 수 있게’ 된다. 이게 도구 자체보다 더 중요한 역량이다.


자주 묻는 질문

Q. 변동금리 대출인데 금리가 바뀌면 월 납부액이 자동으로 바뀌나요, 아니면 기간이 바뀌나요?

A. 상품 약정에 따라 다릅니다. 일부 상품은 금리 변동 시 월 납부액을 고정하고 상환 기간을 늘리는 방식을 쓰고, 다른 상품은 기간을 유지하면서 월 납부액을 조정합니다. 대출 약정서의 ‘금리 변동 시 적용 방식’ 항목을 반드시 확인해야 합니다. 시뮬레이터는 두 케이스를 각각 입력해 비교하는 데 활용할 수 있습니다.

Q. 파이썬을 전혀 모르는데 이 계산법을 활용할 방법이 있나요?

A. 수식 자체는 엑셀로도 구현할 수 있습니다. 엑셀의 PMT(이자율/12, 기간*12, -원금) 함수가 원리금균등상환 월 납부액을 계산해줍니다. 다만 시나리오를 여러 개 나란히 비교하거나 반복 실행하는 데는 파이썬이 훨씬 효율적입니다. 코드를 직접 짜지 않더라도 계산 원리를 이해하고 있으면, 은행 상담 시 숫자를 검증하는 능력이 생깁니다.

Q. 중도상환 수수료가 있을 때 갚는 게 이득인지 어떻게 계산하나요?

A. 시뮬레이터에 현재 남은 원금·금리·남은 기간을 입력해 ‘앞으로 낼 총 이자’를 구하고, 중도상환 수수료와 비교합니다. 총 이자 절감액이 수수료보다 크면 수학적으로는 중도상환이 유리합니다. 단, 그 여유 자금을 다른 곳에 운용할 경우의 기회비용도 함께 고려해야 균형 잡힌 판단이 됩니다.


마무리

금리 뉴스를 ‘내 숫자’로 번역하는 순간, 정보는 비로소 판단의 재료가 된다. 시뮬레이터의 가치는 도구 자체보다 그 과정에서 얻는 수식 이해에 있다.

이 글과 이어서 써 볼 계산기: 대출 이자 계산기 (모든 계산은 브라우저 안에서만 이루어집니다.)


댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤