Skip to content
Published on

보험 도메인 완전 가이드 — 생명보험부터 손해보험, 보험료 산출까지

Authors
  • Name
    Twitter
Insurance Domain Guide

들어가며

은행, 증권과 함께 금융 3대 축 중 하나인 보험. 하지만 개발자에게 보험 도메인은 낯설기만 합니다. 언더라이팅? 보험계리? 손해율? 이 글에서 보험의 A to Z를 정리합니다.

보험의 기본 원리

대수의 법칙 (Law of Large Numbers)

import numpy as np

# 개인의 사고는 예측 불가, 하지만 집단의 사고율은 예측 가능!
n_people = [10, 100, 1000, 10000, 100000]
accident_rate = 0.05  # 실제 사고율 5%

for n in n_people:
    accidents = np.random.binomial(n, accident_rate)
    observed_rate = accidents / n
    print(f"  {n:>7}명: 관측 사고율 = {observed_rate:.4f} (오차: {abs(observed_rate - accident_rate):.4f})")

# 10명: 0.1000 (오차: 0.0500)   ← 부정확
# 100000명: 0.0498 (오차: 0.0002) ← 거의 정확!
# → 가입자가 많을수록 보험사의 예측이 정확해짐

수지상등의 원칙

총 수입 보험료 = 총 지급 보험금 + 운영비

보험료 = 순보험료(위험보험료) + 부가보험료(사업비)
         ├── 보험금 지급 재원     ├── 설계사 수수료
         └── 보험 리스크 대비     ├── 회사 운영비
                                  └── 이윤

보험의 3대 분류

1. 생명보험 (Life Insurance)

사람의 생사에 관한 보험.

종류:
├── 종신보험: 사망 시 보험금 (평생 보장)
│   └── 보험료 비쌈, 상속/유족 보장 목적
├── 정기보험: 일정 기간 내 사망 시 보험금
│   └── 보험료 저렴, 20~30년 설정
├── 양로보험: 사망 또는 만기 시 보험금
│   └── 저축 + 보장 결합
└── 연금보험: 일정 나이부터 연금 지급
    └── 노후 대비, 세제 혜택
# 정기보험료 산출 (간략 모델)
def term_insurance_premium(age, coverage, term_years, mortality_table):
    """
    순보험료 = Σ (사망확률 × 보험금 × 할인율)
    """
    premium = 0
    discount_rate = 0.035  # 예정이율 3.5%

    for year in range(term_years):
        current_age = age + year
        mortality = mortality_table[current_age]  # 연령별 사망률
        # 해당 연도 사망 시 보험금의 현재 가치
        pv = coverage * mortality / (1 + discount_rate) ** (year + 1)
        premium += pv

    # 연납 순보험료 = 총 PV / 연금현가
    annuity_factor = sum(1 / (1 + discount_rate) ** y for y in range(1, term_years + 1))
    annual_premium = premium / annuity_factor

    # 부가보험료 추가 (사업비율 ~30%)
    gross_premium = annual_premium / 0.7

    return gross_premium

# 30세, 1억 보장, 20년
# premium = term_insurance_premium(30, 100_000_000, 20, mortality_table)

2. 손해보험 (Property & Casualty Insurance)

재물, 배상책임, 비용에 관한 보험.

종류:
├── 화재보험: 건물, 동산 화재 피해
├── 자동차보험
│   ├── 대인배상 I/II: 타인 사망/상해
│   ├── 대물배상: 타인 재물 손해
│   ├── 자기신체: 내 상해
│   ├── 자차: 내 차 수리
│   └── 무보험차: 무보험 상대방 사고
├── 배상책임보험:3자에게 끼친 손해
├── 해상보험: 선박, 화물
└── 보증보험: 채무 불이행 보증
# 자동차 보험료 산출 요소
auto_insurance_factors = {
    "차량": {
        "차종": "K5 (중형)",
        "연식": 2024,
        "차량가액": 30_000_000,
        "용도": "출퇴근",
    },
    "운전자": {
        "나이": 30,
        "성별": "남",
        "면허_종류": "1종보통",
        "사고_이력": 0,  # 최근 3년
        "보험_가입_기간": 5,  # 년
    },
    "할인/할증": {
        "무사고_할인": -15,  # %
        "블랙박스_할인": -5,
        "마일리지_할인": -10,
        "다자녀_할인": 0,
        "사고_할증": 0,
    }
}

# 손해율 = 지급보험금 / 경과보험료 × 100%
# 합산비율(Combined Ratio) = 손해율 + 사업비율
# < 100%: 보험 영업으로 이익
# > 100%: 투자 수익으로 메워야 함

3. 제3보험 (생손보 경계)

생명보험도 아니고 손해보험도 아닌 "사람의 신체"에 관한 보험:
├── 실손의료보험: 실제 치료비 보상 (가장 중요!)
├── 상해보험: 외부 사고로 인한 상해
├── 질병보험:, 뇌졸중, 심근경색 등
├── 간병보험: 장기 요양 상태
└── 치아보험: 치과 치료

보험 핵심 용어

용어의미개발자 비유
보험료가입자가 내는 돈구독료
보험금사고 시 받는 돈SLA 보상금
보험가액보험 대상의 실제 가치서버 교체 비용
보험가입금액보험 계약 금액보상 한도
면책기간보장 시작 전 대기 기간쿨다운
면책금(공제)보험금에서 빼는 자기 부담금최소 과금 단위
언더라이팅가입 심사입력 검증
보험계리사보험료/준비금 계산 전문가데이터 사이언티스트

보험료 산출 구조

보험료 (Gross Premium)
├── 순보험료 (Net Premium) — 보험금 지급 재원
│   ├── 위험보험료: 사망/사고 확률 기반
│   └── 저축보험료: 만기 환급금 재원 (저축성 보험)
└── 부가보험료 (Loading) — 회사 운영비
    ├── 신계약비: 설계사 수수료 (첫 해 집중)
    ├── 유지비: 매년 관리 비용
    └── 수금비: 보험료 수납 비용
# 보험료 산출의 3대 기초율
class InsuranceBasicRates:
    # 1. 예정위험률 (Mortality/Morbidity Rate)
    #    → 나이/성별/직업별 사망·사고 확률
    #    → 생명표, 경험통계 기반
    mortality_30_male = 0.00098  # 30세 남성 연간 사망확률 0.098%

    # 2. 예정이율 (Assumed Interest Rate)
    #    → 보험사가 운용 수익으로 벌 것으로 예상하는 이율
    #    → 높을수록 보험료 ↓ (미래 수익으로 상쇄)
    assumed_rate = 0.025  # 2.5% (현재 저금리 시대)

    # 3. 예정사업비율 (Expense Ratio)
    #    → 보험료 중 사업비 비율
    expense_ratio = 0.25  # 25%

보험사 경영 지표

손해율 (Loss Ratio)

def loss_ratio(claims_paid, earned_premium):
    """손해율 = 지급보험금 / 경과보험료 × 100"""
    return (claims_paid / earned_premium) * 100

# 자동차보험: 손해율 80% (높음)
# 생명보험: 손해율 50% (낮음)
# 실손보험: 손해율 120% (적자!)

합산비율 (Combined Ratio) — 보험사의 성적표

def combined_ratio(loss_ratio, expense_ratio):
    """합산비율 = 손해율 + 사업비율"""
    return loss_ratio + expense_ratio

# < 100%: 보험 영업만으로 이익 (언더라이팅 이익)
# = 100%: 손익분기
# > 100%: 적자 → 투자 수익으로 메워야 함

# 한국 손해보험 평균: ~105% (영업은 적자, 투자로 보전)

지급여력비율 (RBC, Risk-Based Capital)

# 보험사의 건전성 지표 (금감원 감독)
def rbc_ratio(available_capital, required_capital):
    """지급여력비율 = 가용자본 / 요구자본 × 100"""
    return (available_capital / required_capital) * 100

# 최소 100% 이상 유지 필수
# 150% 이상: 건전 (금감원 권고)
# 100% 미만: 적기시정조치 대상!

InsurTech — 보험 + 기술

전통 보험           →    InsurTech
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
대면 설계사 영업      →    앱/웹 다이렉트 가입
종이 청구서           →    OCR + AI 자동 심사
일률적 보험료         →    IoT + AI 맞춤 보험료
수동 사기 탐지        →    ML 이상 탐지
수개월 보험금 지급    →    실시간 자동 지급
# AI 보험 사기 탐지 모델 (개념)
features = {
    "claim_amount": 50_000_000,      # 청구 금액
    "days_since_policy": 30,          # 가입 후 경과일 (너무 빠른 청구?)
    "previous_claims": 5,             # 과거 청구 횟수
    "medical_consistency": 0.3,       # 진단서-청구 일관성 (낮으면 의심)
    "provider_fraud_score": 0.8,      # 해당 병원의 사기 이력 점수
    "claimant_network_risk": 0.6,     # 청구자 네트워크 위험도
}

# XGBoost / LightGBM으로 사기 확률 예측
# fraud_probability = model.predict(features)
# > 0.7이면 SIU(특별조사팀) 자동 이관

개발자가 알면 좋은 보험 시스템

보험 시스템 아키텍처:
├── 계약 관리 (Policy Admin)
│   └── 가입, 변경, 해지, 갱신
├── 언더라이팅 (Underwriting)
│   └── 가입 심사, 위험 평가
├── 보험료 산출 (Rating Engine)
│   └── 보험계리 기반 보험료 계산
├── 보험금 청구 (Claims)
│   └── 접수, 심사, 지급, 사기 탐지
├── 수금 (Billing)
│   └── 보험료 수납, 미납 관리
├── 재보험 (Reinsurance)
│   └── 위험 분산 (보험사의 보험)
└── 계리 (Actuarial)
    └── 준비금 산출, 상품 설계

📝 퀴즈 — 보험 도메인 (클릭해서 확인!)

Q1. 보험의 기본 원리인 "대수의 법칙"이란? ||개별 사건은 예측 불가하지만, 충분히 큰 집단에서는 사고 발생률이 통계적으로 안정적으로 수렴한다는 법칙. 가입자가 많을수록 보험사의 리스크 예측이 정확해짐||

Q2. 순보험료와 부가보험료의 차이는? ||순보험료: 보험금 지급 재원 (위험보험료 + 저축보험료). 부가보험료: 회사 운영비 (신계약비 + 유지비 + 수금비). 총 보험료 = 순보험료 + 부가보험료||

Q3. 합산비율(Combined Ratio)이 105%인 보험사의 상태는? ||보험 영업만으로는 5% 적자. 지급보험금 + 사업비가 수입보험료보다 5% 많음. 투자 수익으로 메워야 흑자 달성 가능||

Q4. 실손의료보험의 손해율이 120%를 넘는 이유는? ||의료비 상승 + 과잉 진료 + 도덕적 해이. 보험금 지급액이 수입보험료를 크게 초과. 보험사들이 보험료를 지속 인상하는 이유||

Q5. 예정이율이 높아지면 보험료는? ||낮아진다. 보험사가 운용 수익을 더 많이 벌 것으로 예상하므로, 가입자에게 미리 할인해주는 효과||

Q6. RBC 비율이 100% 미만이면? ||금감원의 적기시정조치 대상. 보험금 지급 능력이 부족한 상태로, 신규 영업 제한/자본 확충 명령 등을 받음||