<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="스트레스 DSR 규제가 대한민국 금융 시장에 미치는 영향에 대한 심층 분석 인포그래픽"> <meta name="keywords" content="스트레스 DSR, 금융 규제, 대한민국 금융 시장, 가계부채, 부동산 시장"> <meta name="author" content="스트레스 DSR 분석 팀"> <!-- Open Graph / Facebook --> <meta property="og:type" content="website"> <meta property="og:url" content=""> <meta property="og:title" content="스트레스 DSR 규제: 대한민국 금융 시장 영향 심층 분석"> <meta property="og:description" content="스트레스 DSR 규제가 대한민국 금융 시장에 미치는 영향에 대한 심층 분석 인포그래픽"> <meta property="og:image" content=""> <!-- Twitter --> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:url" content=""> <meta property="twitter:title" content="스트레스 DSR 규제: 대한민국 금융 시장 영향 심층 분석"> <meta property="twitter:description" content="스트레스 DSR 규제가 대한민국 금융 시장에 미치는 영향에 대한 심층 분석 인포그래픽"> <meta property="twitter:image" content=""> <title>스트레스 DSR 심층 분석 인포그래픽</title> <!-- External Resources --> <script src="https://cdn.tailwindcss.com"></script> <script src="https://cdn.jsdelivr.net/npm/chart.js@3.9.1/dist/chart.min.js"></script> <style> body { font-family: 'Inter', 'Noto Sans KR', sans-serif; scroll-behavior: smooth; } .chart-container { position: relative; margin-left: auto; margin-right: auto; width: 100%; } .korean-title { font-family: 'Noto Sans KR', "Malgun Gothic", "맑은 고딕", sans-serif; /* 한국어 가독성을 위한 폰트 */ } .korean-text { font-family: 'Noto Sans KR', "Malgun Gothic", "맑은 고딕", sans-serif; word-break: keep-all; /* 한국어 단어 중간 줄바꿈 방지 */ } /* 임베딩을 위한 스타일 */ .embed-container { all: initial; width: 100%; height: 100%; border: none; margin: 0; padding: 0; } /* 인쇄 최적화 */ @media print { body { width: 100%; margin: 0; padding: 0; } .no-print { display: none; } } /* 다크 모드 지원 */ @media (prefers-color-scheme: dark) { .dark-mode-support { background-color: #1a202c; color: #f7fafc; } } </style> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet"> <script> tailwind.config = { theme: { extend: { colors: { primaryDark: '#003F5C', //짙은 파랑 primaryMedium: '#374C80', //중간 파랑 primaryLight: '#7A9E9F', //밝은 청록 accentYellow: '#FFC75F', //강조 노랑 accentCoral: '#FF6F61', //강조 코랄 lightBg: '#F0F4F8', //밝은 배경 cardWhite: '#FFFFFF', textDark: '#1A202C', textMedium: '#4A5568', textLight: '#A0AEC0', }, fontFamily: { sans: ['Inter', 'Noto Sans KR', 'sans-serif'], korean: ['Noto Sans KR', 'Malgun Gothic', '맑은 고딕', 'sans-serif'], } } } } </script> </head> <body class="bg-lightBg font-sans korean-text" id="stress-dsr-analysis"> <header class="bg-primaryDark text-white p-6 shadow-md sticky top-0 z-50"> <div class="container mx-auto flex flex-col md:flex-row md:justify-between md:items-center"> <h1 class="text-2xl md:text-3xl font-bold korean-title">스트레스 DSR 규제: 대한민국 금융 시장 영향 심층 분석</h1> <nav class="mt-3 md:mt-0 no-print"> <ul class="flex space-x-4 text-sm"> <li><a href="#what-is-dsr" class="hover:text-accentYellow transition-colors">개요</a></li> <li><a href="#roadmap" class="hover:text-accentYellow transition-colors">로드맵</a></li> <li><a href="#loan-limits" class="hover:text-accentYellow transition-colors">대출한도</a></li> <li><a href="#conclusion" class="hover:text-accentYellow transition-colors">결론</a></li> </ul> </nav> </div> </header> <main class="container mx-auto p-4 md:p-8"> <section id="what-is-dsr" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">1. 스트레스 DSR이란 무엇인가?</h2> <p class="text-textMedium mb-4 leading-relaxed"> 스트레스 DSR(총부채원리금상환비율)은 차주의 총부채 상환 부담이 소득 대비 감당 가능한 수준인지를 평가하는 DSR 산정 시, 실제 적용되는 대출금리에 미래 금리 상승 가능성을 반영한 일정한 가산금리(스트레스 금리)를 추가로 부과하는 제도입니다. 이는 가계부채의 안정적 관리와 금융 시스템의 건전성 제고를 목표로 합니다. </p> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div class="bg-primaryLight/10 p-4 rounded-lg"> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">주요 목적</h3> <ul class="list-disc list-inside text-textMedium space-y-1"> <li>가계부채 증가 속도 통제 및 안정적 관리</li> <li>금리 상승 시 차주의 채무불이행 위험 사전 방지</li> <li>부동산 시장 과열 억제 및 시장 안정화 도모</li> <li>선진화된 가계부채 관리 시스템 구축</li> </ul> </div> <div class="bg-primaryLight/10 p-4 rounded-lg"> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">스트레스 금리 산출 방식</h3> <p class="text-textMedium mb-2">DSR 산식: <code class="bg-gray-200 px-1 rounded">[대출 원리금(실제 대출금리 + <span class="text-accentCoral font-semibold">스트레스 금리</span>) ÷ 연간 소득액]</code></p> <p class="text-textMedium font-semibold mb-1">스트레스 금리 결정:</p> <ul class="list-disc list-inside text-textMedium space-y-1"> <li>과거 5년 최고금리 vs 현재금리 차이 기준</li> <li>하한 1.5%, 상한 3.0% 적용</li> </ul> <p class="text-sm text-textLight mt-2 korean-text">실제 부담 금리가 인상되는 것은 아니며, DSR 계산에만 적용되는 가상의 금리입니다.</p> </div> </div> </section> <section id="roadmap" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-6 korean-title">2. 스트레스 DSR 단계별 로드맵</h2> <div class="relative korean-text"> <div class="hidden md:block border-l-4 border-primaryMedium absolute h-full top-0 left-1/2 transform -translate-x-1/2"></div> <div class="mb-12 md:flex md:items-center"> <div class="md:w-1/2 md:pr-8"> <div class="bg-primaryLight/20 p-6 rounded-lg shadow-md border-l-4 border-accentYellow"> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">1단계 시행</h3> <p class="text-sm text-textMedium font-semibold mb-1">2024년 2월 26일 ~ 8월 31일</p> <ul class="list-disc list-inside text-textMedium space-y-1 text-sm"> <li>적용 대상: 은행권 주택담보대출</li> <li>스트레스 금리: 0.38% (기본의 25% 수준)</li> <li>예상 효과: 주담대 한도 약 2~4% 감소</li> </ul> </div> </div> <div class="hidden md:block md:w-1/2"> <div class="absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 w-8 h-8 bg-accentYellow rounded-full border-4 border-white shadow-lg"></div> </div> </div> <div class="mb-12 md:flex md:flex-row-reverse md:items-center"> <div class="md:w-1/2 md:pl-8"> <div class="bg-primaryLight/20 p-6 rounded-lg shadow-md border-r-4 md:border-l-4 md:border-r-0 border-accentYellow"> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">2단계 시행</h3> <p class="text-sm text-textMedium font-semibold mb-1">2024년 9월 1일 ~</p> <ul class="list-disc list-inside text-textMedium space-y-1 text-sm"> <li>적용 대상 확대: 은행권 신용대출(1억 초과), 제2금융권 주담대</li> <li>스트레스 금리: 0.75% (기본의 50%)</li> <li>차등 적용: 수도권 은행 주담대 1.2%</li> </ul> </div> </div> <div class="hidden md:block md:w-1/2"> <div class="absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 w-8 h-8 bg-accentYellow rounded-full border-4 border-white shadow-lg"></div> </div> </div> <div class="md:flex md:items-center"> <div class="md:w-1/2 md:pr-8"> <div class="bg-primaryLight/20 p-6 rounded-lg shadow-md border-l-4 border-accentYellow"> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">3단계 시행 (예정)</h3> <p class="text-sm text-textMedium font-semibold mb-1">2025년 7월 1일 ~</p> <ul class="list-disc list-inside text-textMedium space-y-1 text-sm"> <li>적용 대상 확대: 전 금융권 모든 가계대출 (일부 예외)</li> <li>스트레스 금리: 1.5% (기본의 100%)</li> <li>차등 적용: 비수도권 주담대 0.75% (2025년 말까지 한시적)</li> </ul> </div> </div> <div class="hidden md:block md:w-1/2"> <div class="absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 w-8 h-8 bg-accentYellow rounded-full border-4 border-white shadow-lg"></div> </div> </div> </div> </section> <section id="loan-limits" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">3. 대출 한도, 얼마나 줄어드나? (3단계 수도권 기준)</h2> <p class="text-textMedium mb-6 leading-relaxed korean-text"> 스트레스 DSR 3단계가 수도권에 적용될 경우, 차주의 연소득 및 대출 유형에 따라 대출 한도가 축소될 것으로 예상됩니다. 변동금리 대출의 한도 감소폭이 상대적으로 클 수 있으며, 이는 고정금리 대출을 유도하려는 정책 방향을 반영합니다. 아래 차트는 예시이며, 실제 한도는 개인의 신용도 등 여러 요인에 따라 달라질 수 있습니다. </p> <div class="chart-container h-96 md:h-[450px] max-w-3xl"> <canvas id="loanLimitChart"></canvas> </div> <p class="text-sm text-textLight mt-4 text-center korean-text">시뮬레이션 조건: 30년 만기, 원리금균등상환, 기준금리 4.2% 가정 (출처: 금융위 자료 등 재구성)</p> </section> <section id="real-estate-impact" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">4. 부동산 시장에 미치는 영향</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">주택 가격 및 거래량 전망</h3> <p class="text-textMedium mb-3 leading-relaxed korean-text"> 전문가들은 스트레스 DSR 강화로 실수요자의 자금 조달 부담이 커져 주택 거래량 감소를 예상합니다. 다만, 주택 가격은 금리 인하 가능성, 공급 부족 우려 등 복합적 요인으로 인해 변동폭이 제한적일 수 있다는 전망도 있습니다. 핵심 지역의 가격 방어력은 유지될 가능성이 높습니다. </p> <div class="bg-accentYellow/10 p-4 rounded-lg"> <p class="text-textMedium font-semibold"><span class="text-accentCoral">▲</span> 거래량 감소 가능성</p> <p class="text-textMedium font-semibold"><span class="text-primaryMedium">►</span> 가격 변동은 제한적일 수 있음 (지역별 차이)</p> </div> </div> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">지역별 시장 양극화 가능성</h3> <p class="text-textMedium mb-3 leading-relaxed korean-text"> 수도권과 비수도권에 스트레스 금리를 차등 적용함에 따라 시장 양극화가 심화될 수 있다는 우려가 있습니다. 수도권은 1.5%, 비수도권 주담대는 0.75%(한시적)가 적용됩니다. </p> <div class="chart-container h-64 md:h-72 max-w-sm"> <canvas id="regionalDsrtChart"></canvas> </div> <p class="text-sm text-textLight mt-2 text-center korean-text">3단계 스트레스 금리 적용 수준 (주택담보대출)</p> </div> </div> </section> <section id="household-debt" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">5. 가계부채, 안정될까?</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-6 items-center"> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">가계신용 잔액 추이</h3> <div class="bg-primaryDark text-cardWhite p-6 rounded-lg text-center shadow"> <p class="text-lg korean-text">2025년 1분기 말 기준</p> <p class="text-5xl font-bold my-2">1,928.7<span class="text-2xl">조원</span></p> <p class="text-sm">(역대 최대치, 4분기 연속 증가)</p> </div> <p class="text-textMedium mt-3 leading-relaxed korean-text"> 스트레스 DSR 3단계 시행으로 2025년 하반기 가계부채 안정화가 전망되나, 지속적인 모니터링이 필요합니다. 금융당국은 가계부채 증가율을 경상 GDP 성장률 이내로 관리하는 것을 목표로 하고 있습니다. </p> </div> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">은행권 가계대출 연체율</h3> <div class="chart-container h-72 md:h-80 max-w-md"> <canvas id="delinquencyRateChart"></canvas> </div> <p class="text-sm text-textLight mt-2 text-center korean-text">스트레스 DSR은 신규 대출 심사를 강화하여 미래 부실 위험을 낮추는 데 초점.</p> </div> </div> </section> <section id="issues-policy" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">6. 주요 쟁점 및 정책 방향</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">정책 효과: 긍정적 vs. 잠재적 부작용</h3> <div class="space-y-3 korean-text"> <div class="bg-green-100 p-3 rounded-lg border-l-4 border-green-500"> <p class="font-semibold text-green-700">긍정적 측면:</p> <ul class="list-disc list-inside text-sm text-green-600"> <li>가계부채 증가 속도 관리</li> <li>부동산 시장 과열 방지</li> <li>고정금리 대출 확대 유도</li> </ul> </div> <div class="bg-red-100 p-3 rounded-lg border-l-4 border-red-500"> <p class="font-semibold text-red-700">잠재적 부작용:</p> <ul class="list-disc list-inside text-sm text-red-600"> <li>실수요자·취약계층 신용 접근성 제약</li> <li>풍선효과 발생 가능성</li> <li>제도의 복잡성, 시장 왜곡 우려</li> </ul> </div> </div> </div> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">DSR 규제 예외 조항 논란</h3> <p class="text-textMedium mb-3 leading-relaxed korean-text"> 현행 DSR 규제에는 전세자금대출, 정책모기지 등 여러 예외 조항이 존재하여 정책 실효성에 대한 논란이 있습니다. KCMI 분석에 따르면 신규 가계대출의 상당 부분이 DSR 규제 영향을 받지 않을 수 있습니다. </p> <div class="chart-container h-64 md:h-72 max-w-sm"> <canvas id="dsrExemptionChart"></canvas> </div> <p class="text-sm text-textLight mt-2 text-center korean-text">KCMI 보고서 기반 추정치 (실제 수치와 상이할 수 있음)</p> </div> </div> <div class="mt-6 bg-primaryLight/10 p-4 rounded-lg"> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">향후 정책 방향</h3> <ul class="list-disc list-inside text-textMedium space-y-1 korean-text"> <li>전세대출 관리 강화 및 상환능력 심사 도입 검토</li> <li>장기·고정금리 주택담보대출 상품 개발 유도</li> <li>경제 상황에 따른 스트레스 DSR 강도 조절 방안 논의</li> <li>소득 확인 시스템 개선 및 관련 통계 국제 표준 부합 노력</li> </ul> </div> </section> <section id="international-cases" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">7. 해외 주요국의 스트레스 테스트 운영 사례</h2> <p class="text-textMedium mb-6 leading-relaxed korean-text"> 캐나다, 호주 등 주요 선진국들도 가계부채 및 주택시장 변동성에 대응하기 위해 다양한 형태의 스트레스 테스트를 주택담보대출 심사에 활용하고 있습니다. 각국의 금융 환경과 정책 우선순위에 따라 구체적인 운영 방식에는 차이가 있습니다. </p> <div class="overflow-x-auto"> <table class="min-w-full bg-cardWhite border border-gray-300 korean-text"> <thead class="bg-primaryDark text-white"> <tr> <th class="py-3 px-4 border-b text-left text-sm">국가</th> <th class="py-3 px-4 border-b text-left text-sm">주요 메커니즘</th> <th class="py-3 px-4 border-b text-left text-sm">구체적 파라미터</th> <th class="py-3 px-4 border-b text-left text-sm">최근 동향</th> </tr> </thead> <tbody class="text-textMedium"> <tr class="hover:bg-gray-50"> <td class="py-3 px-4 border-b text-sm font-semibold">대한민국</td> <td class="py-3 px-4 border-b text-sm">스트레스 DSR</td> <td class="py-3 px-4 border-b text-sm">과거 5년 최고금리-현재금리차 (하한 1.5%, 상한 3.0%), 3단계 1.5% (비수도권 0.75% 한시)</td> <td class="py-3 px-4 border-b text-sm">2025년 7월 3단계 시행, 지역별 차등</td> </tr> <tr class="hover:bg-gray-50"> <td class="py-3 px-4 border-b text-sm font-semibold">캐나다</td> <td class="py-3 px-4 border-b text-sm">최소적격금리(MQR)</td> <td class="py-3 px-4 border-b text-sm">계약금리 + 2%p 또는 기준금리(예: 5.25%) 중 높은 값</td> <td class="py-3 px-4 border-b text-sm">특정 조건 하 모기지 전환 시 테스트 면제</td> </tr> <tr class="hover:bg-gray-50"> <td class="py-3 px-4 border-b text-sm font-semibold">호주</td> <td class="py-3 px-4 border-b text-sm">완충금리(Buffer Rate)</td> <td class="py-3 px-4 border-b text-sm">대출 상품 금리 + 3%p</td> <td class="py-3 px-4 border-b text-sm">3%p 완충금리 유지 (높은 가계부채 등)</td> </tr> <tr class="hover:bg-gray-50"> <td class="py-3 px-4 border-b text-sm font-semibold">홍콩</td> <td class="py-3 px-4 border-b text-sm">스트레스 DSR</td> <td class="py-3 px-4 border-b text-sm">주담대 금리 + 2%p 가정</td> <td class="py-3 px-4 border-b text-sm">시장 상황 변화에 따른 규정 재검토 논의</td> </tr> </tbody> </table> </div> </section> <section id="conclusion" class="bg-cardWhite rounded-lg shadow-lg p-6 mb-8"> <h2 class="text-2xl font-bold text-primaryDark mb-4 korean-title">8. 종합 분석 및 정책 제언</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div> <h3 class="text-xl font-semibold text-primaryMedium mb-2 korean-title">스트레스 DSR 제도의 종합 평가</h3> <p class="text-textMedium mb-3 leading-relaxed korean-text"> 스트레스 DSR은 가계부채 관리 및 금융시장 안정에 기여했지만, 실수요자 자금 조달 제약, 풍선효과, 복잡성 등의 한계도 드러냈습니다. 지속적인 평가와 보완이 필요한 동태적 정책입니다. </p> <ul class="list-disc list-inside text-textMedium space-y-1 text-sm korean-text"> <li><span class="font-semibold text-green-600">성과:</span> 부채 증가 둔화, 대출 건전성 제고, 시장 안정 기여</li> <li><span class="font-semibold text-red-600">한계:</span> 실수요자 부담, 풍선효과, 복잡성, 예외조항 실효성 논란</li> </ul> </div> <div class="bg-primaryDark text-cardWhite p-6 rounded-lg shadow"> <h3 class="text-xl font-semibold mb-3 korean-title">주요 정책 제언</h3> <ul class="list-none space-y-2 korean-text"> <li class="flex items-start"><span class="text-accentYellow mr-2 mt-1">✔</span> DSR 예외 조항 점진적 검토 및 축소</li> <li class="flex items-start"><span class="text-accentYellow mr-2 mt-1">✔</span> 소득 산정 방식 정확성 제고</li> <li class="flex items-start"><span class="text-accentYellow mr-2 mt-1">✔</span> 스트레스 금리의 동태적 조정 메커니즘 도입</li> <li class="flex items-start"><span class="text-accentYellow mr-2 mt-1">✔</span> 취약계층에 대한 선별적 지원 강화</li> <li class="flex items-start"><span class="text-accentYellow mr-2 mt-1">✔</span> 장기·고정금리 대출 시장 육성</li> <li class="flex items-start"><span class="text-accentYellow mr-2 mt-1">✔</span> 정책 공조 및 투명성 제고</li> </ul> </div> </div> </section> </main> <footer class="bg-primaryDark text-white text-center p-6 mt-12"> <div class="container mx-auto"> <p class="text-sm korean-text">© 2025 스트레스 DSR 심층 분석 인포그래픽. 모든 정보는 제공된 보고서를 기반으로 하며, 참고용입니다.</p> <p class="text-xs mt-1 korean-text">본 자료는 실제 금융 자문이나 투자 결정을 대체할 수 없습니다.</p> <!-- 소셜 공유 버튼 --> <div class="mt-4 flex justify-center space-x-4 no-print"> <button onclick="shareOnSocial('facebook')" class="bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded text-sm">Facebook</button> <button onclick="shareOnSocial('twitter')" class="bg-blue-400 hover:bg-blue-500 text-white px-3 py-1 rounded text-sm">Twitter</button> <button onclick="copyEmbedCode()" class="bg-gray-600 hover:bg-gray-700 text-white px-3 py-1 rounded text-sm">임베드 코드</button> </div> <!-- 임베드 코드 표시 영역 --> <div id="embed-code-container" class="hidden mt-4 p-3 bg-gray-800 rounded text-left"> <p class="text-xs mb-2">아래 코드를 복사하여 웹사이트에 붙여넣으세요:</p> <textarea id="embed-code" class="w-full h-20 p-2 bg-gray-900 text-white text-xs" readonly></textarea> <button onclick="document.getElementById('embed-code-container').classList.add('hidden')" class="mt-2 bg-red-600 hover:bg-red-700 text-white px-2 py-1 rounded text-xs">닫기</button> </div> </div> </footer> <script> // 소셜 미디어 공유 기능 function shareOnSocial(platform) { const url = encodeURIComponent(window.location.href); const title = encodeURIComponent(document.title); let shareUrl = ''; if (platform === 'facebook') { shareUrl = `https://www.facebook.com/sharer/sharer.php?u=${url}`; } else if (platform === 'twitter') { shareUrl = `https://twitter.com/intent/tweet?url=${url}&text=${title}`; } if (shareUrl) { window.open(shareUrl, '_blank', 'width=600,height=400'); } } // 임베드 코드 생성 및 복사 function copyEmbedCode() { const embedCode = `<iframe src="${window.location.href}" width="100%" height="800" style="border:none;" class="stress-dsr-embed"></iframe>`; const embedCodeElement = document.getElementById('embed-code'); embedCodeElement.value = embedCode; document.getElementById('embed-code-container').classList.remove('hidden'); // 코드 복사 embedCodeElement.select(); document.execCommand('copy'); alert('임베드 코드가 클립보드에 복사되었습니다.'); } // 페이지가 iframe 내에서 로드되었는지 확인 function checkIfEmbedded() { try { return window.self !== window.top; } catch (e) { return true; // 보안 오류가 발생하면 iframe 내부로 간주 } } // iframe에서 로드된 경우 일부 요소 스타일 조정 if (checkIfEmbedded()) { document.body.classList.add('embed-container'); // iframe 내에서 불필요한 요소 숨기기 가능 } // Helper function to wrap labels for Chart.js function wrapLabels(label, maxWidth) { if (typeof label !== 'string' || label.length <= maxWidth) { return label; } const words = label.split(' '); const lines = []; let currentLine = ''; for (const word of words) { if ((currentLine + word).length > maxWidth && currentLine.length > 0) { lines.push(currentLine.trim()); currentLine = ''; } currentLine += word + ' '; } if (currentLine.trim().length > 0) { lines.push(currentLine.trim()); } return lines.length > 0 ? lines : [label]; } const commonTooltipTitleCallback = function(tooltipItems) { const item = tooltipItems[0]; let label = item.chart.data.labels[item.dataIndex]; if (Array.isArray(label)) { return label.join(' '); } return label; }; const commonChartOptions = { responsive: true, maintainAspectRatio: false, plugins: { legend: { labels: { font: { family: "'Noto Sans KR', sans-serif" } } }, tooltip: { callbacks: { title: commonTooltipTitleCallback }, bodyFont: { family: "'Noto Sans KR', sans-serif" }, titleFont: { family: "'Noto Sans KR', sans-serif" } } }, scales: { x: { ticks: { font: { family: "'Noto Sans KR', sans-serif" }, maxRotation: 0, minRotation: 0, autoSkip: false, // 자동 건너뛰기 비활성화 callback: function(value, index, values) { const label = this.getLabelForValue(value); return wrapLabels(label, 8); // x축 레이블 줄바꿈 (8자 기준) } }, grid: { display: false } }, y: { ticks: { font: { family: "'Noto Sans KR', sans-serif" } }, grid: { color: '#e2e8f0' } } } }; // Chart 1: Loan Limit Change const loanLimitCtx = document.getElementById('loanLimitChart').getContext('2d'); new Chart(loanLimitCtx, { type: 'bar', data: { labels: [ wrapLabels('연소득 5천만 - 변동형', 16), wrapLabels('연소득 5천만 - 혼합형(5년)', 16), wrapLabels('연소득 1억 - 변동형', 16), wrapLabels('연소득 1억 - 혼합형(5년)', 16) ], datasets: [ { label: '2단계 적용 시 대출한도 (추정, 억원)', data: [3.0, 3.1, 5.9, 6.3], backgroundColor: '#7A9E9F', // primaryLight borderColor: '#7A9E9F', borderWidth: 1 }, { label: '3단계 적용 시 대출한도 (추정, 억원)', data: [2.9, 3.0, 5.7, 5.9], backgroundColor: '#FF6F61', // accentCoral borderColor: '#FF6F61', borderWidth: 1 } ] }, options: { ...commonChartOptions, scales: { ...commonChartOptions.scales, y: { ...commonChartOptions.scales.y, title: { display: true, text: '대출 한도 (억원)', font: { family: "'Noto Sans KR', sans-serif" } } } }, plugins: { ...commonChartOptions.plugins, tooltip: { ...commonChartOptions.plugins.tooltip, callbacks: { ...commonChartOptions.plugins.tooltip.callbacks, label: function(context) { let label = context.dataset.label || ''; if (label) { label += ': '; } if (context.parsed.y !== null) { label += context.parsed.y + '억원'; } return label; } } } } } }); // Chart 2: Regional DSR Application const regionalDsrCtx = document.getElementById('regionalDsrtChart').getContext('2d'); new Chart(regionalDsrCtx, { type: 'doughnut', data: { labels: ['수도권 적용 스트레스 금리', '비수도권 적용 스트레스 금리 (한시적)'], datasets: [{ label: '스트레스 금리 수준', data: [1.5, 0.75], backgroundColor: ['#FF6F61', '#FFC75F'], // accentCoral, accentYellow hoverOffset: 4 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'bottom', labels: { font: { family: "'Noto Sans KR', sans-serif" } } }, tooltip: { callbacks: { title: commonTooltipTitleCallback, label: function(context) { return context.label + ': ' + context.parsed + '%'; } }, bodyFont: { family: "'Noto Sans KR', sans-serif" }, titleFont: { family: "'Noto Sans KR', sans-serif" } } } } }); // Chart 3: Delinquency Rate const delinquencyRateCtx = document.getElementById('delinquencyRateChart').getContext('2d'); new Chart(delinquencyRateCtx, { type: 'bar', data: { labels: ['2024년 12월 말', '2025년 3월 말'], datasets: [{ label: '은행권 가계대출 연체율 (%)', data: [0.38, 0.41], backgroundColor: ['#374C80', '#FF6F61'], // primaryMedium, accentCoral borderColor: ['#374C80', '#FF6F61'], borderWidth: 1, barPercentage: 0.5 }] }, options: { ...commonChartOptions, scales: { ...commonChartOptions.scales, y: { ...commonChartOptions.scales.y, beginAtZero: true, title: { display: true, text: '연체율 (%)', font: { family: "'Noto Sans KR', sans-serif" } } } }, plugins: { ...commonChartOptions.plugins, tooltip: { ...commonChartOptions.plugins.tooltip, callbacks: { ...commonChartOptions.plugins.tooltip.callbacks, label: function(context) { return context.dataset.label + ': ' + context.parsed.y + '%'; } } } } } }); // Chart 4: DSR Exemption const dsrExemptionCtx = document.getElementById('dsrExemptionChart').getContext('2d'); new Chart(dsrExemptionCtx, { type: 'pie', data: { labels: ['DSR 적용 대출', 'DSR 예외 대출'], datasets: [{ label: '신규 가계대출 중 DSR 적용 비중 (추정)', data: [44, 56], // Based on KCMI report backgroundColor: ['#374C80', '#FFC75F'], // primaryMedium, accentYellow hoverOffset: 4 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'bottom', labels: { font: { family: "'Noto Sans KR', sans-serif" } } }, tooltip: { callbacks: { title: commonTooltipTitleCallback, label: function(context) { return context.label + ': ' + context.parsed + '%'; } }, bodyFont: { family: "'Noto Sans KR', sans-serif" }, titleFont: { family: "'Noto Sans KR', sans-serif" } } } } }); </script> </body> </html>