<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>전라선 무궁화호 시간표 &#8211; 기차 타는 사람들</title>
	<atom:link href="https://krailroad.co.kr/tag/%ec%a0%84%eb%9d%bc%ec%84%a0-%eb%ac%b4%ea%b6%81%ed%99%94%ed%98%b8-%ec%8b%9c%ea%b0%84%ed%91%9c/feed/" rel="self" type="application/rss+xml" />
	<link>https://krailroad.co.kr</link>
	<description>레일 위에서 만나는 세상, 가장 빠르고 정확한 기차여행 정보와 팁</description>
	<lastBuildDate>Wed, 22 Apr 2026 02:24:46 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://krailroad.co.kr/wp-content/uploads/2025/10/cropped-기차-타는-사람들-32x32.png</url>
	<title>전라선 무궁화호 시간표 &#8211; 기차 타는 사람들</title>
	<link>https://krailroad.co.kr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>전라선 무궁화호 시간표 (용산역~여수역) 정차역 및 요금 총정리</title>
		<link>https://krailroad.co.kr/%ec%a0%84%eb%9d%bc%ec%84%a0-%eb%ac%b4%ea%b6%81%ed%99%94%ed%98%b8-%ec%8b%9c%ea%b0%84%ed%91%9c-%ec%9a%a9%ec%82%b0%ec%97%ad%ec%97%ac%ec%88%98%ec%97%ad-%ec%a0%95%ec%b0%a8%ec%97%ad-%eb%b0%8f-%ec%9a%94/</link>
		
		<dc:creator><![CDATA[운영자]]></dc:creator>
		<pubDate>Thu, 16 Apr 2026 23:48:15 +0000</pubDate>
				<category><![CDATA[실시간 열차 시간표]]></category>
		<category><![CDATA[누리로 시간표]]></category>
		<category><![CDATA[무궁화 시간표]]></category>
		<category><![CDATA[전라선 무궁화호 시간표]]></category>
		<guid isPermaLink="false">https://krailroad.co.kr/?p=20552</guid>

					<description><![CDATA[1930년대 개통 이후 전라북도와 전남 내륙의 핏줄이 되어준 전라선은 시대의 변화에 발맞춰 끊임없이 진화해 왔습니다. 굽이치던 단선 철길이 매끄러운 고속 선로로 탈바꿈하면서 과거의 풍경은 속도감에 가려지기도 했지만, 여전히 전라선 무궁화호 시간표를 이용한 열차는 창밖으로 흐르는 남도의 사계절을 가장 가까이서 마주할 수 있는 정겨운 통로인데요. 빠른 생활에 맞춰진 ITX-마음이나 새마을호가 주류가 된 지금도, 무궁화호는 특유의 여유로운 ... <a title="전라선 무궁화호 시간표 (용산역~여수역) 정차역 및 요금 총정리" class="read-more button" href="https://krailroad.co.kr/%ec%a0%84%eb%9d%bc%ec%84%a0-%eb%ac%b4%ea%b6%81%ed%99%94%ed%98%b8-%ec%8b%9c%ea%b0%84%ed%91%9c-%ec%9a%a9%ec%82%b0%ec%97%ad%ec%97%ac%ec%88%98%ec%97%ad-%ec%a0%95%ec%b0%a8%ec%97%ad-%eb%b0%8f-%ec%9a%94/" aria-label="전라선 무궁화호 시간표 (용산역~여수역) 정차역 및 요금 총정리 전체 읽기">자세히 보기</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">1930년대 개통 이후 전라북도와 전남 내륙의 핏줄이 되어준 전라선은 시대의 변화에 발맞춰 끊임없이 진화해 왔습니다. 굽이치던 단선 철길이 매끄러운 고속 선로로 탈바꿈하면서 과거의 풍경은 속도감에 가려지기도 했지만, 여전히 전라선 무궁화호 시간표를 이용한 열차는 창밖으로 흐르는 남도의 사계절을 가장 가까이서 마주할 수 있는 정겨운 통로인데요. 빠른 생활에 맞춰진 ITX-마음이나 새마을호가 주류가 된 지금도, 무궁화호는 특유의 여유로운 모습으로 용산역과 여수역 사이의 정거장들을 하나하나 정성스럽게 잇고 있습니다.</p>



<p class="wp-block-paragraph">이런 전라선 무궁화호 시간표를 확인 하려고 역사 안과 검색엔진을 통한 신뢰할 수 없는 자료들을 찾아 다니지 마시고, <a href="https://www.korail.com/ticket/main" target="_blank" rel="noopener">코레일</a> 자료를 데이터베이스, 그리고 API 실시간으로 가져와 구현한 아래 시스템은 지금 열차가 밟고 있는 선로 위 위치를 오차 없이 추적해 보여주기 때문인데요. 특히 스마트폰 설정에서 소리 알림을 켜두시면 열차가 들어오기 15분 전부터 신호를 보내주어, 차를 마시거나, 버스, 또는 자가용 이용으로 역사로 이동할때 제시간에 승차 할 수 있도록 도와줄것입니다. 그리고 무궁화호 대신 조금 더 빠른 <a href="https://krailroad.co.kr/%ec%a0%84%eb%9d%bc%ec%84%a0-%ec%83%88%eb%a7%88%ec%9d%84%ed%98%b8-%ec%8b%9c%ea%b0%84%ed%91%9c-%ec%9a%a9%ec%82%b0%ec%97%ad%ec%97%ac%ec%88%98%ec%97%ad-%eb%b0%8f-%ec%9a%94%ea%b8%88-%ec%8b%a4%ec%8b%9c/">전라선 새마을호 시간표</a>를 확인하고 싶다면 해당 메뉴를 눌러 즉시 이동이 가능합니다.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>전라선 무궁화호 시간표 안내</strong></h2>



<h3 class="wp-block-heading">철길 위에서 만나는 남도</h3>



<p class="wp-block-paragraph">전라선 무궁화호 시간표를 이용하여, 용산역을 출발한 열차는 익산을 지나며 본격적인 전라선으로 진입을 하며, 기와지붕의 고풍스러운 멋이 살아있는 전주역은 한옥마을의 정취와 전주의 깊은 손맛을 연결하는 첫 관문이며, 보성이나 진주 등 영남권으로 향하는 경전선 환승이 활발한 순천역은 동서 화합의 중심으로서 남도 여행의 중심 역할을 톡톡히 해내는데요. 철길의 끝자락인 <a href="https://krailroad.co.kr/%ec%97%ac%ec%88%98%ec%97%ad-itx-%ec%83%88%eb%a7%88%ec%9d%84%c2%b7%eb%a7%88%ec%9d%8c-%ec%8b%9c%ea%b0%84%ed%91%9c-%ec%9d%b5%ec%82%b0%c2%b7%ec%9a%a9%ec%82%b0%c2%b7%ec%84%9c%ec%9a%b8%ed%96%89-%eb%85%b8/">여수엑스포역</a>에 다다르면 비로소 화려한 여수 밤바다의 낭만을 즐기실 수 있습니다.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">데이터가 설계하는 끊김 동선</h3>



<p class="wp-block-paragraph">본 자료는 단순히 열차의 출발과 도착 정보에만 그치지 않고, 역을 나서는 순간부터 1분 단위로 자동 갱신되는 실시간 API를 통해 전주, 순천, 여수 등 이용자가 출발과 도착을 어디로 할지 결정할 경우 해당 열차 시간표와 소요시간, 출발시간, 도착시간과 주요 정거장의 시내버스 도착 정보를 즉시 파악할 수 있으며, 역사 주변 주차장의 실시간 잔여 공간까지 한눈에 확인이 가능한데요. 나홀로 배낭여행객부터 아이와 함께하는 가족 단위 방문객까지, 복잡한 검색 없이도 현지의 기상 상황과 교통 흐름을 한 화면에서 파악할 수 있도록 구성하였습니다.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">여수 ↔&nbsp;용산 첫차 &amp; 막차</h2>


<style>
        .ktx-sum-container { margin: 15px 0; font-family: -apple-system, BlinkMacSystemFont, "Malgun Gothic", sans-serif; }
        .ktx-sum-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #ddd; table-layout: fixed; }
        .ktx-date-info { text-align: right; font-size: 12px; color: #777; margin-bottom: 5px; font-weight: 500; }
        .ktx-sum-table th { background:#f1f3f5; color:#333; font-size:16px; font-weight:800; padding:12px 4px; border-bottom:2px solid #dee2e6; }
        .ktx-sum-table td { padding:14px 4px; border-bottom:1px solid #eee; text-align:center; vertical-align:middle; }
        .route-info { background:#fcfcfc; font-weight:400; color:#000; font-size:15px; border-right:1px solid #ddd; line-height:1.3; }
        .type-label { display:inline-block; padding:3px 8px; border-radius:4px; font-size:12px; font-weight:700; color:#fff; margin-bottom:4px; }
        .type-ktx { background:#1e40af; } 
        .type-itx { background:#be123c; } 
        .type-mu { background:#047857; }
        .type-default { background:#52525b; }
        .time-display { font-size:18px; font-weight:800; color:#000; letter-spacing:-0.5px; line-height:1; }
        .train-detail { display:block; font-size:12px; color:#444; font-weight:600; margin-bottom:3px; }
        .arrival-info { font-size:12px; color:#555; font-weight:500; margin-top:3px; }
        @media (max-width: 380px) {
            .time-display { font-size: 16px; }
            .route-info { font-size: 13px; }
            .ktx-sum-table th { font-size: 13px; }
            .train-detail, .arrival-info { font-size: 11px; }
        }
    </style><p class="ktx-date-info" style="text-align: right; font-size: small; color: #777;">최신 시간표 기준: 2026년 05월 23일</p><div class="ktx-sum-container"><table class="ktx-sum-table"><thead><tr><th style="width:22%;">구간</th><th style="width:23%;">종별</th><th>첫차</th><th>막차</th></tr></thead><tbody><tr><td class="route-info" rowspan="1" style="border-top:1px solid #ddd;">여수엑스포<br>↓<br>용산</td><td><span class="type-label type-mu">무궁화</span></td><td><span class="train-detail">1572호</span><div class="time-display">06:30</div><div class="arrival-info">11:58 도착</div></td><td><span class="train-detail">1578호</span><div class="time-display">19:15</div><div class="arrival-info">00:31 도착</div></td></tr></tbody></table></div>


<style>
        .ktx-sum-container { margin: 15px 0; font-family: -apple-system, BlinkMacSystemFont, "Malgun Gothic", sans-serif; }
        .ktx-sum-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #ddd; table-layout: fixed; }
        .ktx-date-info { text-align: right; font-size: 12px; color: #777; margin-bottom: 5px; font-weight: 500; }
        .ktx-sum-table th { background:#f1f3f5; color:#333; font-size:16px; font-weight:800; padding:12px 4px; border-bottom:2px solid #dee2e6; }
        .ktx-sum-table td { padding:14px 4px; border-bottom:1px solid #eee; text-align:center; vertical-align:middle; }
        .route-info { background:#fcfcfc; font-weight:400; color:#000; font-size:15px; border-right:1px solid #ddd; line-height:1.3; }
        .type-label { display:inline-block; padding:3px 8px; border-radius:4px; font-size:12px; font-weight:700; color:#fff; margin-bottom:4px; }
        .type-ktx { background:#1e40af; } 
        .type-itx { background:#be123c; } 
        .type-mu { background:#047857; }
        .type-default { background:#52525b; }
        .time-display { font-size:18px; font-weight:800; color:#000; letter-spacing:-0.5px; line-height:1; }
        .train-detail { display:block; font-size:12px; color:#444; font-weight:600; margin-bottom:3px; }
        .arrival-info { font-size:12px; color:#555; font-weight:500; margin-top:3px; }
        @media (max-width: 380px) {
            .time-display { font-size: 16px; }
            .route-info { font-size: 13px; }
            .ktx-sum-table th { font-size: 13px; }
            .train-detail, .arrival-info { font-size: 11px; }
        }
    </style><p class="ktx-date-info" style="text-align: right; font-size: small; color: #777;">최신 시간표 기준: 2026년 05월 23일</p><div class="ktx-sum-container"><table class="ktx-sum-table"><thead><tr><th style="width:22%;">구간</th><th style="width:23%;">종별</th><th>첫차</th><th>막차</th></tr></thead><tbody><tr><td class="route-info" rowspan="1" style="border-top:1px solid #ddd;">용산<br>↓<br>여수엑스포</td><td><span class="type-label type-mu">무궁화</span></td><td><span class="train-detail">1571호</span><div class="time-display">05:44</div><div class="arrival-info">11:03 도착</div></td><td><span class="train-detail">1577호</span><div class="time-display">19:15</div><div class="arrival-info">00:26 도착</div></td></tr></tbody></table></div>


    
    <h2>용산 ↔ 여수 운임 요금표</h2>

    <div id="ktx-app-fl" style="margin-bottom: 40px;">
        <style>
            #ktx-app-fl { margin: 20px auto; max-width: 600px; background: #fff; border-radius: 12px; font-family: -apple-system, sans-serif; border: 1px solid #e2e8f0; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.06); }
            .fl-main-table { width: 100%; border-collapse: collapse; table-layout: fixed; border: none; }
            .fl-main-table th { font-size: 13px; color: #64748b; padding: 12px 2px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; text-align: center; font-weight: bold; }
            .fl-main-table td { padding: 15px 4px; border-bottom: 1px solid #f1f5f9; text-align: center; vertical-align: middle; }
            
            .u-no-top { font-size: 11px; color: #94a3b8; display: block; font-weight: 500; margin-bottom: 1px; }
            .u-grade-bottom { font-size: 16px; font-weight: 900; color: #0045e6; display: block; line-height: 1.2; }
            .t-via { font-size: 12px; color: #64748b; display: block; margin-top: 4px; font-weight: 500; }
            
            .t-price { font-weight: 700; font-size: 14px; color: #1e293b; }
            .t-premium { color: #059669; }
            .t-special { color: #e11d48; }
            
            .t-none { display: inline-block; padding: 3px 10px; background: #f8fafc; color: #cbd5e1; border: 1px solid #f1f5f9; border-radius: 6px; font-size: 11px; font-weight: 600; }

            @media (max-width: 600px) {
                .fl-main-table th { font-size: 12px; }
                .u-grade-bottom { font-size: 14px; }
                .t-price { font-size: 12px; }
            }
        </style>

        <div style="overflow-x: auto;">
            <table class="fl-main-table">
                <thead>
                    <tr>
                        <th style="width: 30%;">열차 / 경유지</th>
                        <th style="width: 23%;">일반실</th>
                        <th style="width: 23%;">우등실</th>
                        <th style="width: 24%;">특실</th>
                    </tr>
                </thead>
                <tbody>
                                        <tr>
                        <td>
                            <span class="u-no-top">용산 ↔ 여수</span>
                            <span class="u-grade-bottom">ITX</span>
                                                    </td>
                        <td>
                            <span class="t-price">
                                41,100원                            </span>
                        </td>
                        <td>
                            <span class="t-price t-premium">
                                <span class='t-none'>해당없음</span>                            </span>
                        </td>
                        <td>
                            <span class="t-price t-special">
                                <span class='t-none'>해당없음</span>                            </span>
                        </td>
                    </tr>
                                        <tr>
                        <td>
                            <span class="u-no-top">용산 ↔ 여수엑스포</span>
                            <span class="u-grade-bottom">KTX</span>
                                                            <span class="t-via">공주</span>
                                                    </td>
                        <td>
                            <span class="t-price">
                                47,200원                            </span>
                        </td>
                        <td>
                            <span class="t-price t-premium">
                                <span class='t-none'>해당없음</span>                            </span>
                        </td>
                        <td>
                            <span class="t-price t-special">
                                66,100원                            </span>
                        </td>
                    </tr>
                                        <tr>
                        <td>
                            <span class="u-no-top">용산 ↔ 여수엑스포</span>
                            <span class="u-grade-bottom">KTX</span>
                                                            <span class="t-via">서대전</span>
                                                    </td>
                        <td>
                            <span class="t-price">
                                46,000원                            </span>
                        </td>
                        <td>
                            <span class="t-price t-premium">
                                <span class='t-none'>해당없음</span>                            </span>
                        </td>
                        <td>
                            <span class="t-price t-special">
                                64,400원                            </span>
                        </td>
                    </tr>
                                        <tr>
                        <td>
                            <span class="u-no-top">용산 ↔ 여수</span>
                            <span class="u-grade-bottom">무궁화</span>
                                                    </td>
                        <td>
                            <span class="t-price">
                                27,600원                            </span>
                        </td>
                        <td>
                            <span class="t-price t-premium">
                                <span class='t-none'>해당없음</span>                            </span>
                        </td>
                        <td>
                            <span class="t-price t-special">
                                <span class='t-none'>해당없음</span>                            </span>
                        </td>
                    </tr>
                                    </tbody>
            </table>
        </div>
    </div>
    



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">여수 → 용산 무궁화호 시간표</h2>



<p class="tip-box wp-block-paragraph">👉 <mark style="background-color:rgba(0, 0, 0, 0);color:#007bff" class="has-inline-color"><strong>좌우로 밀면 전체 표를 볼 수 있습니다.!</strong></mark><br> ❗ 빈칸은 열차가 정차하지 않는 역입니다.</p>


<style>
            .ktx-schedule-wrapper { overflow-x: auto; position: relative; }
            .ktx-schedule-table { width: 100%; border-collapse: collapse; border-spacing: 0; border-top: 2px solid #000; border-bottom: 2px solid #000; box-shadow: 0px 0px 15px rgba(0,0,0,0.1); }
            .ktx-schedule-table th, .ktx-schedule-table td { border: 1px solid #ccc; padding: 8px 5px; text-align: center; white-space: nowrap; background-color: #fff; }
            .ktx-schedule-table th { background-color: #f2f2f2; font-weight: bold; }
            .ktx-schedule-table thead tr th { position: sticky; top: 0; z-index: 10; background-color: #f2f2f2; }
            .ktx-schedule-table td:nth-child(3) { position: sticky; left: 0; z-index: 5; background-color: #fff; border-right: 1px solid #ddd; }
            .ktx-schedule-table th:nth-child(3) { position: sticky; top: 0; left: 0; z-index: 20; background-color: #f2f2f2; border-right: 1px solid #ddd; }
            .scrolled-highlight { background-color: #e6f2ff !important; }
        </style>
            <script>
                document.addEventListener("DOMContentLoaded", function() {
                    const wrappers = document.querySelectorAll(".ktx-schedule-wrapper");
                    wrappers.forEach(wrapper => {
                        wrapper.addEventListener("scroll", function() {
                            const cells = wrapper.querySelectorAll(".ktx-schedule-table th:nth-child(3), .ktx-schedule-table td:nth-child(3)");
                            if (wrapper.scrollLeft > 10) {
                                cells.forEach(cell => { cell.classList.add("scrolled-highlight"); });
                            } else {
                                cells.forEach(cell => { cell.classList.remove("scrolled-highlight"); });
                            }
                        });
                    });
                });
            </script>
        <p style="text-align: right; font-size: small; color: #777;">최신 시간표 기준: 2026년 05월 23일</p><div class="ktx-schedule-wrapper"><table class="ktx-schedule-table"><thead><tr><th>열차번호</th><th>열차종별</th><th>여수엑스포</th><th>여천</th><th>순천</th><th>구례구</th><th>곡성</th><th>남원</th><th>오수</th><th>임실</th><th>전주</th><th>삼례</th><th>익산</th><th>함열</th><th>강경</th><th>논산</th><th>연산</th><th>계룡</th><th>서대전</th><th>신탄진</th><th>부강</th><th>조치원</th><th>천안</th><th>성환</th><th>평택</th><th>수원</th><th>안양</th><th>영등포</th><th>용산</th></tr></thead><tbody><tr><td>1572</td><td>무궁화</td><td>06:30</td><td>06:38</td><td>06:54</td><td>07:11</td><td>07:23</td><td>07:34</td><td>07:45</td><td>07:58</td><td>08:17</td><td>08:27</td><td>08:39</td><td>08:52</td><td>09:02</td><td>09:12</td><td>09:22</td><td>09:35</td><td>09:52</td><td>10:06</td><td>10:16</td><td>10:25</td><td>10:47</td><td></td><td>11:01</td><td>11:23</td><td>11:36</td><td>11:49</td><td>11:58</td></tr><tr><td>1574</td><td>무궁화</td><td>13:19</td><td>13:27</td><td>13:43</td><td>14:01</td><td>14:13</td><td>14:25</td><td>14:36</td><td>14:45</td><td>15:03</td><td>15:12</td><td>15:23</td><td>15:36</td><td>15:46</td><td>15:56</td><td>16:06</td><td>16:18</td><td>16:35</td><td>16:48</td><td></td><td>17:09</td><td>17:32</td><td>17:41</td><td>17:53</td><td>18:17</td><td></td><td>18:42</td><td>18:52</td></tr><tr><td>1576</td><td>무궁화</td><td>18:12</td><td>18:21</td><td>18:38</td><td>18:56</td><td>19:08</td><td>19:19</td><td>19:31</td><td>19:40</td><td>19:57</td><td>20:06</td><td>20:18</td><td>20:31</td><td>20:41</td><td>20:50</td><td>21:00</td><td>21:13</td><td>21:36</td><td></td><td></td><td>22:04</td><td>22:26</td><td></td><td>22:40</td><td>23:03</td><td>23:16</td><td>23:28</td><td>23:37</td></tr><tr><td>1578</td><td>무궁화</td><td>19:15</td><td>19:23</td><td>19:39</td><td>20:01</td><td>20:15</td><td>20:28</td><td>20:39</td><td>20:47</td><td>21:04</td><td>21:13</td><td>21:25</td><td>21:38</td><td>21:47</td><td>21:57</td><td></td><td>22:17</td><td>22:33</td><td>22:47</td><td></td><td>23:03</td><td>23:25</td><td></td><td>23:39</td><td>23:59</td><td></td><td>00:22</td><td>00:31</td></tr></tbody></table></div>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">용산 → 여수 무궁화호 시간표</h2>



<p class="tip-box wp-block-paragraph">👉 <mark style="background-color:rgba(0, 0, 0, 0);color:#007bff" class="has-inline-color"><strong>좌우로 밀면 전체 표를 볼 수 있습니다.!</strong></mark><br> ❗ 빈칸은 열차가 정차하지 않는 역입니다.</p>


<style>
            .ktx-schedule-wrapper { overflow-x: auto; position: relative; }
            .ktx-schedule-table { width: 100%; border-collapse: collapse; border-spacing: 0; border-top: 2px solid #000; border-bottom: 2px solid #000; box-shadow: 0px 0px 15px rgba(0,0,0,0.1); }
            .ktx-schedule-table th, .ktx-schedule-table td { border: 1px solid #ccc; padding: 8px 5px; text-align: center; white-space: nowrap; background-color: #fff; }
            .ktx-schedule-table th { background-color: #f2f2f2; font-weight: bold; }
            .ktx-schedule-table thead tr th { position: sticky; top: 0; z-index: 10; background-color: #f2f2f2; }
            .ktx-schedule-table td:nth-child(3) { position: sticky; left: 0; z-index: 5; background-color: #fff; border-right: 1px solid #ddd; }
            .ktx-schedule-table th:nth-child(3) { position: sticky; top: 0; left: 0; z-index: 20; background-color: #f2f2f2; border-right: 1px solid #ddd; }
            .scrolled-highlight { background-color: #e6f2ff !important; }
        </style>
            <script>
                document.addEventListener("DOMContentLoaded", function() {
                    const wrappers = document.querySelectorAll(".ktx-schedule-wrapper");
                    wrappers.forEach(wrapper => {
                        wrapper.addEventListener("scroll", function() {
                            const cells = wrapper.querySelectorAll(".ktx-schedule-table th:nth-child(3), .ktx-schedule-table td:nth-child(3)");
                            if (wrapper.scrollLeft > 10) {
                                cells.forEach(cell => { cell.classList.add("scrolled-highlight"); });
                            } else {
                                cells.forEach(cell => { cell.classList.remove("scrolled-highlight"); });
                            }
                        });
                    });
                });
            </script>
        <p style="text-align: right; font-size: small; color: #777;">최신 시간표 기준: 2026년 05월 23일</p><div class="ktx-schedule-wrapper"><table class="ktx-schedule-table"><thead><tr><th>열차번호</th><th>열차종별</th><th>용산</th><th>영등포</th><th>수원</th><th>서정리</th><th>평택</th><th>천안</th><th>전의</th><th>조치원</th><th>부강</th><th>신탄진</th><th>서대전</th><th>계룡</th><th>연산</th><th>논산</th><th>강경</th><th>함열</th><th>익산</th><th>삼례</th><th>전주</th><th>임실</th><th>오수</th><th>남원</th><th>곡성</th><th>구례구</th><th>순천</th><th>여천</th><th>여수엑스포</th></tr></thead><tbody><tr><td>1571</td><td>무궁화</td><td>05:44</td><td>05:56</td><td>06:19</td><td>06:35</td><td>06:43</td><td>06:57</td><td></td><td>07:19</td><td></td><td>07:35</td><td>07:50</td><td>08:06</td><td>08:18</td><td>08:28</td><td>08:37</td><td></td><td>08:57</td><td>09:08</td><td>09:17</td><td>09:34</td><td>09:47</td><td>09:59</td><td>10:10</td><td>10:22</td><td>10:40</td><td>10:55</td><td>11:03</td></tr><tr><td>1573</td><td>무궁화</td><td>09:38</td><td>09:47</td><td>10:10</td><td></td><td>10:31</td><td>10:45</td><td>11:03</td><td>11:16</td><td>11:24</td><td>11:35</td><td>11:50</td><td>12:13</td><td>12:26</td><td>12:36</td><td>12:46</td><td>12:55</td><td>13:10</td><td>13:21</td><td>13:30</td><td>13:47</td><td>13:55</td><td>14:07</td><td>14:18</td><td>14:30</td><td>14:49</td><td>15:04</td><td>15:13</td></tr><tr><td>1575</td><td>무궁화</td><td>15:04</td><td>15:13</td><td>15:37</td><td></td><td>15:57</td><td>16:11</td><td></td><td>16:33</td><td></td><td>16:49</td><td>17:05</td><td>17:21</td><td></td><td>17:40</td><td>17:49</td><td>17:59</td><td>18:19</td><td>18:31</td><td>18:40</td><td>18:57</td><td>19:05</td><td>19:16</td><td>19:27</td><td>19:40</td><td>19:57</td><td>20:13</td><td>20:21</td></tr><tr><td>1577</td><td>무궁화</td><td>19:15</td><td>19:24</td><td>19:49</td><td>20:04</td><td>20:17</td><td>20:32</td><td></td><td>20:54</td><td></td><td></td><td>21:22</td><td>21:38</td><td></td><td>21:57</td><td>22:06</td><td></td><td>22:26</td><td>22:37</td><td>22:46</td><td>23:03</td><td>23:11</td><td>23:22</td><td>23:33</td><td>23:45</td><td>00:02</td><td>00:17</td><td>00:26</td></tr></tbody></table></div>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">전국 기차 시간표 및 운임 조회</h2>



<p class="has-text-align-center has-text-color has-link-color wp-elements-88704de2ad28f76052113e79b539e929 wp-block-paragraph" style="color:#fe0000"><strong>[ <a href="https://krailroad.co.kr/ktx%c2%b7srt%c2%b7itx%c2%b7%ec%83%88%eb%a7%88%ec%9d%84%ed%98%b8%c2%b7%eb%ac%b4%ea%b6%81%ed%99%94%ed%98%b8%c2%b7%eb%88%84%eb%a6%ac%eb%a1%9c-%ec%97%b4%ec%b0%a8-%ec%8b%9c%ea%b0%84%ed%91%9c-%ea%b2%80/"><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0606" class="has-inline-color">전체 시간표 조회</mark></a> ]</strong> <strong>[ <a href="https://krailroad.co.kr/train-schedule-search/"><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">실시간 열차 조회</mark></a> ]</strong><br><strong><mark style="background-color:rgba(0, 0, 0, 0);color:#fe0a0a" class="has-inline-color">[ </mark><a href="https://krailroad.co.kr/ktx-srt-itx-money-table/"><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">전체 요금표 조회</mark></a><mark style="background-color:rgba(0, 0, 0, 0);color:#fe0a0a" class="has-inline-color"> ] [ </mark><a href="https://krailroad.co.kr/%ec%b6%9c%eb%b0%9c%ec%97%ad%ec%97%90%ec%84%9c-%eb%8f%84%ec%b0%a9%ec%97%ad-%ea%b8%b0%ec%b0%a8-%ec%8b%9c%ea%b0%84%ed%91%9c-%eb%b0%8f-%ec%86%8c%ec%9a%94%ec%8b%9c%ea%b0%84-%ea%b2%80%ec%83%89/"><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">열차 런타임 조회</mark></a><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color"> ]</mark></strong></p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">실시간 시간표 음성 안내 켜기</h3>


<!-- Begin Dable 본문중단_300x250 / For inquiries, visit http://dable.io -->
<div id="dablewidget_GlYqm4xl" data-widget_id="GlYqm4xl">
<script>
      (function(d,a,b,l,e,r) {
if(d[b]&&d[b].q)return;d[b]=function(){(d[b].q=d[b].q||[]).push(arguments)};e=a.createElement(l);
e.async=1;e.charset='utf-8';e.src='//static.dable.io/dist/plugin.min.js';
r=a.getElementsByTagName(l)[0];r.parentNode.insertBefore(e,r);
})(window,document,'dable','script');
      dable('setService', 'krailroad.co.kr');
      dable('sendLogOnce');
      dable('renderWidget', 'dablewidget_GlYqm4xl');
</script>
</div>
<!-- End 본문중단_300x250 / For inquiries, visit http://dable.io -->

    
    <style>
        #ktx-live-app-v2 { margin: 20px auto; max-width: 600px; background: #fff; border-radius: 12px; font-family: -apple-system, sans-serif; border: 1px solid #e2e8f0; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.06); min-height: 800px; }
        .ktx-top-bar-v2 { background: #0045e6; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; color: #fff; }
        .ktx-top-bar-v2 b { font-size: 17px; }
        .ktx-live-label-v2 { background: #fff; color: #0045e6; padding: 2px 8px; border-radius: 20px; font-size: 11px; font-weight: 900; animation: ktx_pulse_v2 1.5s infinite; }
        @keyframes ktx_pulse_v2 { 50% { opacity: 0.4; } }
        .ktx-search-box-v2 { padding: 15px; background: #f8fafc; border-bottom: 1px solid #eee; }
        .ktx-input-flex-v2 { display: flex; gap: 8px; margin-bottom: 10px; }
        .ktx-input-flex-v2 input { flex: 1; min-width: 0; padding: 12px; border-radius: 8px; border: 1px solid #cbd5e1; font-size: 16px !important; outline: none; background: #fff; -webkit-appearance: none; }
        #ktx-btn-submit-v2 { width: 100%; padding: 15px; background: #64748b; color: #fff; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 16px; transition: all 0.3s; height: 50px; }
        #ktx-btn-submit-v2:hover { background: #475569; }
        #ktx-btn-submit-v2.is-searching { background: #6366f1 !important; cursor: wait; }
        .ktx-memo-area-v2 { padding: 12px 15px; background: #fffbeb; color: #92400e; font-size: 14px; line-height: 1.6; border-top: 1px solid #fef3c7; display: none; word-break: keep-all; min-height: 45px; }
        .ktx-main-table-v2 { width: 100%; border-collapse: collapse; table-layout: fixed; border: none; min-height: 700px; }
        .ktx-main-table-v2 th { font-size: 13px; color: #64748b; padding: 12px 2px; background: #f1f5f9; border-bottom: 1px solid #e2e8f0; text-align: center; }
        .ktx-main-table-v2 td { padding: 15px 4px; border-bottom: none !important; text-align: center; vertical-align: middle; }
        .ktx-status-text-v2 { color: #e11d48; font-weight: 800; font-size: 14px; margin: 3px 0; white-space: nowrap; letter-spacing: -0.5px; }
        .ktx-grade-name-v2 { font-size: 16px; font-weight: 800; color: #0045e6; line-height: 1.2; display: block; }
        .ktx-train-no-v2 { font-size: 11px; color: #94a3b8; display: block; margin-top: 2px; }
        .v-tag-ok-v2 { font-size: 10px; color: #059669; background: #ecfdf5; padding: 1px 4px; border-radius: 3px; border: 1px solid #d1fae5; display: inline-block; margin-top: 4px; }
        .v-tag-duration-v2 { font-size: 10px; color: #0045e6; background: #eff6ff; padding: 1px 4px; border-radius: 3px; border: 1px solid #dbeafe; display: inline-block; margin-top: 4px; font-weight: bold; }
        .ktx-time-info-v2 { color: #475569; font-size: 12px; font-weight: 600; }
        .ktx-station-name-v2 { font-size: 14px; font-weight: 700; color: #1e293b; }

        .ktx-badge-soon-v2 { 
            display: inline-block;
            background: #e11d48; 
            color: #fff; 
            padding: 4px 10px; 
            border-radius: 6px; 
            font-size: 11px; 
            font-weight: 900; 
            letter-spacing: -0.2px;
            margin-bottom: 4px;
            box-shadow: 0 2px 4px rgba(225, 29, 72, 0.2);
            animation: ktx_v4_pulse_v2 1.2s infinite ease-in-out; 
        }
        @keyframes ktx_v4_pulse_v2 { 0% { opacity: 1; transform: scale(1); } 50% { opacity: 0.6; transform: scale(0.96); } 100% { opacity: 1; transform: scale(1); } }

        .ktx-loading-v2 { opacity: 0.3; }
        .ktx-row-fade-v2 { animation: ktxFadeInUp_v2 0.5s ease-out forwards; opacity: 0; }
        @keyframes ktxFadeInUp_v2 { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

        .ktx-voice-btn-v2 { padding: 4px 12px; border-radius: 15px; border: 2px solid rgba(255,255,255,0.6); background: rgba(0,0,0,0.15); font-size: 11px; font-weight: 900; color: #fff; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; height: 26px; transition: 0.2s; line-height: 1; margin-left:10px; }
        .ktx-voice-btn-v2.active { background: #fff; color: #0045e6; border-color: #fff; box-shadow: 0 0 10px rgba(255,255,255,0.3); }

        .ktx-pagination-v2 { display: flex; justify-content: center; align-items: center; gap: 10px; padding: 20px; background: #fff; border-top: 1px solid #f1f5f9; }
        .ktx-page-btn-v2 { padding: 8px 16px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; color: #64748b; background: #fff; cursor: pointer; transition: 0.2s; }
        .ktx-page-btn-v2:hover:not(:disabled) { background: #f1f5f9; border-color: #cbd5e1; }
        .ktx-page-btn-v2:disabled { opacity: 0.4; cursor: not-allowed; }
        .ktx-page-info-v2 { font-size: 14px; font-weight: bold; color: #0045e6; }
    </style>

    <div id="ktx-live-app-v2">
        <div class="ktx-top-bar-v2">
            <div style="display: flex; align-items: center;">
                <b><span id="ktx-live-clock-v2" style="font-size:14px; font-weight:bold; opacity:1;"></span></b>
                <button class="ktx-voice-btn-v2" id="ktx-voice-toggle-v2" onclick="toggleKtxVoiceV2()">
                    <span class="v-ico-v2">🔈</span> <span class="v-txt-v2">음성 끔</span>
                </button>
            </div>
            <div class="ktx-live-label-v2">LIVE</div>
        </div>
        <div class="ktx-search-box-v2">
            <div class="ktx-input-flex-v2">
                <input type="text" id="ktx-dep-field-v2" placeholder="출발역" value="">
                <input type="text" id="ktx-arr-field-v2" placeholder="도착역" value="">
            </div>
            <button id="ktx-btn-submit-v2" onclick="runKtxLiveSearchV2(true)">열차 시간 조회하기</button>
        </div>
        
        <table class="ktx-main-table-v2">
            <thead><tr><th style="width: 24%;">열차정보</th><th style="width: 24%;">출발역</th><th style="width: 28%;">출발예정</th><th style="width: 24%;">도착역</th></tr></thead>
            <tbody id="ktx-live-tbody-v2">
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr><td style="height:86px;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
                                <tr id="ktx-init-msg-v2"><td colspan="4" style="position:absolute; width:100%; left:0; padding:70px 0; color:#94a3b8; font-size:13px; text-align:center;">역 이름을 입력하고 조회해 주세요.</td></tr>
            </tbody>
        </table>

        <div id="ktx-pagination-ctrl-v2" class="ktx-pagination-v2" style="display:none;">
            <button class="ktx-page-btn-v2" id="ktx-prev-page-v2" onclick="changeKtxPageV2(-1)">&laquo; 이전</button>
            <span class="ktx-page-info-v2"><span id="ktx-current-page-v2">1</span> / <span id="ktx-total-pages-v2">1</span></span>
            <button class="ktx-page-btn-v2" id="ktx-next-page-v2" onclick="changeKtxPageV2(1)">다음 &raquo;</button>
        </div>

        <div id="ktx-memo-display-v2" class="ktx-memo-area-v2"></div>

        <div style="padding: 10px 18px; background: #f8fafc; font-size:11px; color:#94a3b8; border-top: 1px solid #f1f5f9; display:flex; justify-content:space-between;">
            <span>1분 간격 자동 갱신</span><span>최근: <span id="ktx-last-update-v2">--:--:--</span></span>
        </div>
    </div>

    <script>
    let ktxStationListV2 = [];
    const ktxKeyFinalV2 = "X7F%2FMhVuiV1lCs97QEbUzX3bSxRSsKro2roj5wdq%2FESJtqWJtRtvrBCCHVWuAvbY0T%2F84rusVFgvnQshHe7XBQ%3D%3D";
    window.ktxVoiceEnabledV2 = false;
    window.ktxAnnouncedV2 = new Set();
    let currentKtxFullDataV2 = [];
    let ktxCurrentPageV2 = 1;
    const ktxItemsPerPageV2 = 10;

    function toggleKtxVoiceV2() {
        window.ktxVoiceEnabledV2 = !window.ktxVoiceEnabledV2;
        const btn = document.getElementById('ktx-voice-toggle-v2');
        const txt = btn.querySelector('.v-txt-v2'), ico = btn.querySelector('.v-ico-v2');
        if(window.ktxVoiceEnabledV2) {
            btn.classList.add('active'); txt.innerText = "음성 켬"; ico.innerText = "🔊";
            const msg = new SpeechSynthesisUtterance("실시간 음성 안내가 활성화되었습니다. 출발 15분 전 열차를 안내합니다.");
            msg.lang = "ko-KR"; window.speechSynthesis.speak(msg);
        } else {
            btn.classList.remove('active'); txt.innerText = "음성 끔"; ico.innerText = "🔈";
            window.speechSynthesis.cancel();
        }
    }

    function updateKtxClockV2() {
        const now = new Date();
        const clockEl = document.getElementById('ktx-live-clock-v2');
        if (clockEl) { clockEl.innerText = `${now.getMonth() + 1}.${now.getDate()} ${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')} 기준`; }
    }
    setInterval(updateKtxClockV2, 1000);

    async function ktxMasterLoadV2() {
        updateKtxClockV2();
        ktxStationListV2.push({ name: "여수EXPO", id: "NAT041993" });
        const codes = ['11','21','22','23','24','25','26','31','32','33','34','35','36','37','38'];
        try {
            const results = await Promise.all(codes.map(c => fetch(`https://apis.data.go.kr/1613000/TrainInfo/GetCtyAcctoTrainSttnList?serviceKey=${ktxKeyFinalV2}&pageNo=1&numOfRows=200&_type=xml&cityCode=${c}`).then(r => r.text())));
            const parser = new DOMParser();
            results.forEach(xmlStr => {
                const xml = parser.parseFromString(xmlStr, "text/xml");
                xml.querySelectorAll('item').forEach(item => {
                    const name = item.querySelector('nodename').textContent.trim();
                    const id = item.querySelector('nodeid').textContent.trim();
                    if (!ktxStationListV2.find(s => s.id === id)) ktxStationListV2.push({ name, id });
                });
            });
            if(document.getElementById('ktx-dep-field-v2').value && document.getElementById('ktx-arr-field-v2').value) runKtxLiveSearchV2(false);
        } catch (e) { console.log("V2 Station data fail"); }
    }

    function renderKtxPageV2(page) {
        const tbody = document.getElementById('ktx-live-tbody-v2');
        const now = new Date();
        const start = (page - 1) * ktxItemsPerPageV2;
        const end = start + ktxItemsPerPageV2;
        const pageData = currentKtxFullDataV2.slice(start, end);
        let html = '';
        pageData.forEach((r, idx) => {
            const diffMs = r.depDate - now;
            const diffMin = Math.round(diffMs / 60000);
            
            if (window.ktxVoiceEnabledV2 && diffMin === 15) {
                const key = r.no + "_" + r.dep_n + "_" + r.dep_time;
                if (!window.ktxAnnouncedV2.has(key)) {
                    const speech = new SpeechSynthesisUtterance(`안내드립니다. ${r.dep_time}분에 ${r.dep_n}역에서 출발하는 ${r.arr_n}행 ${r.grade} ${r.no}열차가 15분 뒤에 출발할 예정입니다.`);
                    speech.lang = "ko-KR"; window.speechSynthesis.speak(speech);
                    window.ktxAnnouncedV2.add(key);
                }
            }

            const soon = (diffMin <= 15 && diffMin >= 0) ? '<span class="ktx-badge-soon-v2">출발임박</span>' : '';
            const durationTotal = Math.round((r.arrDate - r.depDate) / 60000);
            const h_dur = Math.floor(durationTotal / 60);
            const m_dur = durationTotal % 60;
            const durationStr = `${String(h_dur).padStart(2, '0')}:${String(m_dur).padStart(2, '0')} 소요`;
            
            let timeStatus = '';
            if (diffMin < 0) {
                timeStatus = '<div class="ktx-status-text-v2" style="color:#64748b;">운행종료</div>';
            } else {
                timeStatus = `<div class="ktx-status-text-v2">${diffMin===0?'출발대기':diffMin+'분 후 출발'}</div>`;
            }

            html += `<tr class="ktx-row-fade-v2" style="animation-delay:${idx*0.05}s;"><td><span class="ktx-train-no-v2">${r.no}호</span><span class="ktx-grade-name-v2">${r.grade}</span><span class="v-tag-ok-v2">정상운행</span></td><td><div class="ktx-station-name-v2">${r.dep_n}역</div><span class="v-tag-duration-v2">${durationStr}</span></td><td>${soon}${timeStatus}<div class="ktx-time-info-v2">${r.dep_time} 출발</div></td><td><div class="ktx-station-name-v2">${r.arr_n}역</div><div class="ktx-time-info-v2" style="color:#0045e6;">${r.arr_time} 도착</div></td></tr>`;
        });
        tbody.innerHTML = html;
        document.getElementById('ktx-current-page-v2').innerText = page;
        document.getElementById('ktx-prev-page-v2').disabled = (page === 1);
        document.getElementById('ktx-next-page-v2').disabled = (page === Math.ceil(currentKtxFullDataV2.length / ktxItemsPerPageV2));
    }

    function changeKtxPageV2(dir) {
        const total = Math.ceil(currentKtxFullDataV2.length / ktxItemsPerPageV2);
        let target = ktxCurrentPageV2 + dir;
        if (target >= 1 && target <= total) { ktxCurrentPageV2 = target; renderKtxPageV2(ktxCurrentPageV2); }
    }

    async function runKtxLiveSearchV2(manual = false) {
        const btn = document.getElementById('ktx-btn-submit-v2');
        let d_val = document.getElementById('ktx-dep-field-v2').value.trim();
        let a_val = document.getElementById('ktx-arr-field-v2').value.trim();
        if (!d_val || !a_val) { if(manual) alert("출발역과 도착역을 모두 입력하세요."); return; }
        
        btn.innerText = "데이터 검색 중..."; btn.classList.add('is-searching'); btn.disabled = true;
        d_val = d_val.replace(/역$/, ''); a_val = a_val.replace(/역$/, '');
        
        const tbody = document.getElementById('ktx-live-tbody-v2');
        const memoDiv = document.getElementById('ktx-memo-display-v2');
        const pgCtrl = document.getElementById('ktx-pagination-ctrl-v2');
        if(manual) tbody.classList.add('ktx-loading-v2');

        const findStation = (n) => {
            if (n === "여수" || n === "여수엑스포") return { name: "여수EXPO", id: "NAT041993" };
            return ktxStationListV2.find(s => s.name === n || s.name === n + '역');
        }
        const dep = findStation(d_val); const arr = findStation(a_val);
        if (!dep || !arr) { 
            tbody.innerHTML = '<tr><td colspan="4" style="padding:60px 0;">역 이름을 정확히 입력해 주세요. (예: 부산, 동대구)</td></tr>';
            pgCtrl.style.display = 'none';
            tbody.classList.remove('ktx-loading-v2');
            btn.innerText = "열차 시간 조회하기"; btn.classList.remove('is-searching'); btn.disabled = false; 
            return; 
        }

        const fd = new FormData();
        fd.append('action', 'fetch_ktx_live_v2');
        fd.append('dep_id', dep.id); fd.append('arr_id', arr.id);

        try {
            const response = await fetch('https://krailroad.co.kr/wp-admin/admin-ajax.php', { method: 'POST', body: fd });
            const resData = await response.json();
            const now = new Date();
            currentKtxFullDataV2 = resData.trains.map(item => {
                const parseTrainTime = (str) => { if (!str || str.length < 12) return new Date(0); return new Date(str.substring(0,4), str.substring(4,6)-1, str.substring(6,8), str.substring(8,10), str.substring(10,12)); };
                item.depDate = parseTrainTime(item.raw_dep); item.arrDate = parseTrainTime(item.raw_arr);
                if (item.arrDate < item.depDate) item.arrDate.setDate(item.arrDate.getDate() + 1);
                return item;
            }).sort((a, b) => a.depDate - b.depDate);

            if (currentKtxFullDataV2.length > 0) {
                const totalPages = Math.ceil(currentKtxFullDataV2.length / ktxItemsPerPageV2);
                document.getElementById('ktx-total-pages-v2').innerText = totalPages;
                pgCtrl.style.display = 'flex';
                
                let firstUpcomingIdx = currentKtxFullDataV2.findIndex(t => t.depDate.getTime() > (now.getTime() - 300000));
                if (firstUpcomingIdx === -1) firstUpcomingIdx = 0;
                ktxCurrentPageV2 = Math.floor(firstUpcomingIdx / ktxItemsPerPageV2) + 1;

                if(resData.memo_template) {
                    const f_t = currentKtxFullDataV2[0].dep_time;
                    const l_t = currentKtxFullDataV2[currentKtxFullDataV2.length-1].dep_time;
                    const scrollTips = [" 전체 시간표는 하단 페이징을 확인하세요.", " 모든 배차 정보를 페이지별로 확인 가능합니다."];
                    const randomTip = scrollTips[Math.floor(Math.random() * scrollTips.length)];
                    memoDiv.innerText = resData.memo_template.replace('{first_t}', f_t).replace('{last_t}', l_t) + randomTip;
                    memoDiv.style.display = 'block';
                }
                renderKtxPageV2(ktxCurrentPageV2);
                document.getElementById('ktx-last-update-v2').innerText = now.getHours().toString().padStart(2,'0')+':'+now.getMinutes().toString().padStart(2,'0')+':'+now.getSeconds().toString().padStart(2,'0');
            } else {
                tbody.innerHTML = '<tr><td colspan="4" style="padding:60px 0; color:#94a3b8;">오늘 운행되는 열차 정보가 없습니다.</td></tr>';
                pgCtrl.style.display = 'none';
            }
        } catch (e) { tbody.innerHTML = '<tr><td colspan="4" style="padding:60px 0;">데이터 통신 오류</td></tr>'; }

        tbody.classList.remove('ktx-loading-v2');
        btn.innerText = "열차 시간 조회하기"; btn.classList.remove('is-searching'); btn.disabled = false;
    }

    ktxMasterLoadV2();
    setInterval(() => { if(document.getElementById('ktx-dep-field-v2').value) runKtxLiveSearchV2(false); }, 60000);
    document.addEventListener('keypress', function(e) { if((e.target.id === 'ktx-dep-field-v2' || e.target.id === 'ktx-arr-field-v2') && e.keyCode === 13) runKtxLiveSearchV2(true); });
    </script>
    



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">실시간 API 버스 도착 시간표</h2>


    <style>
        #bus-live-area { margin: 20px auto; max-width: 600px; background: #fff; border-radius: 12px; font-family: -apple-system, sans-serif; border: 2px solid #0045e6; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
        /* CLS 최적화: 10개 출력 시의 예상 높이인 750px를 선점 */
        #bus-content-view { min-height: 750px; transition: height 0.3s ease; position: relative; } 

        .station-header { background: #0045e6; padding: 12px 15px; display: flex; justify-content: space-between; align-items: center; color: #fff; }
        .station-header span { font-weight: bold; }
        .live-dot-bus { background: #fff; color: #0045e6; padding: 2px 8px; border-radius: 20px; font-size: 11px; font-weight: 800; animation: blink_live 1.5s infinite; }
        @keyframes blink_live { 50% { opacity: 0.5; } }
        
        .bus-table { width: 100%; border-collapse: collapse; text-align: center; table-layout: fixed; }
        .bus-table th { font-size: 13px; color: #666; padding: 12px 5px; background: #f8f9fa; border-top: 1px solid #eee; }
        .bus-table td { padding: 15px 5px; border-bottom: 1px solid #f0f0f0; text-align: center; vertical-align: middle; overflow: hidden; }
        
        .bus-arrival-row { animation: slideUp 0.6s ease-out forwards; opacity: 0; }
        @keyframes slideUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

        @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
        .soon-badge { background: #e11d48; color: #fff; padding: 2px 5px; border-radius: 4px; font-size: 11px; animation: pulse 1.5s infinite; font-weight: bold; }
        .route-path { width: 60px; height: 3px; background: #e2e8f0; margin: 8px auto 0; position: relative; }
        .bus-icon { position: absolute; top: -9px; font-size: 12px; transition: all 0.5s; }
        .verify-badge { font-size: 10px; color: #059669; background: #ecfdf5; padding: 1px 4px; border-radius: 3px; border: 1px solid #d1fae5; display: inline-block; margin-top: 4px; }
        
        #bus-announcement { background: #fffbe6; border-top: 1px dashed #ffe58f; padding: 10px 15px; font-size: 12px; color: #856404; line-height: 1.6; text-align: center; }
    </style>

    <div id="bus-live-area">
        <div class="station-header">
            <span id="bus-header-name">용산역 버스 도착판</span>
            <div class="live-dot-bus">LIVE</div>
        </div>
        
        <div id="bus-content-view">
            <div id="bus-loading-overlay" style="padding:150px 0; text-align:center; color:#999; line-height:1.6;">
                <div style="display:inline-block; margin-bottom:12px; font-size:24px; animation: pulse 1.5s infinite;">🔍</div>
                <p style="margin:0;">
                    <strong id="loading-name">용산역</strong> 버스 API 연결 중...<br>
                    <span style="font-size:12px;">10초 간 최대 3번 접속시도 하오니 기다려 주세요....</span>
                </p>
            </div>
        </div>
        
        <div id="bus-announcement">
            <span style="display:inline-block; margin-right:5px; animation: pulse 1s infinite;">📢</span> 
            <span id="announcement-text">실시간 정보는 1분 단위로 자동 갱신됩니다.</span>
        </div>

        <div style="display:flex; justify-content:space-between; padding: 8px 15px; background: #f8fafc; font-size:11px; color:#94a3b8; border-top: 1px solid #eee;">
            <span>연계 교통 실시간 모드</span>
            <span>최근 갱신: <span id="last-sync">--:--:--</span></span>
        </div>

        <script type="text/javascript">
        (function($) {
            "use strict";
            let curCity = '11';
            let curName = '용산';
            let altCity = '36020';
            let altName = '여수';
            let hasTriedAlt = false;

            function loadBus() {
                if (document.hidden) return;
                
                const $view = $('#bus-content-view');
                // 갱신 시 현재 높이를 잠시 고정하여 화면 떨림 방지
                if ($view.height() > 0) {
                    $view.css('min-height', $view.height() + 'px');
                }

                $.ajax({
                    url: 'https://krailroad.co.kr/wp-admin/admin-ajax.php',
                    type: 'POST',
                    data: { action: 'get_bus_universal_final', city: curCity, name: curName },
                    success: function(res) { 
                        if (res.indexOf('정류소 정보를 찾지 못했습니다') !== -1 && altName !== '' && !hasTriedAlt) {
                            curCity = altCity;
                            curName = altName;
                            hasTriedAlt = true;
                            $('#bus-main-title').text(curName + '역 실시간 버스 도착 안내');
                            $('#bus-header-name').text(curName + '역 버스 도착판');
                            $('#loading-name').text(curName + '역');
                            loadBus();
                            return;
                        }
                        
                        $view.html(res);
                        
                        // 데이터 로드 후 최소 높이를 다시 750px로 일관성 있게 유지
                        setTimeout(() => { $view.css('min-height', '750px'); }, 100);

                        const now = new Date();
                        const timeStr = now.getHours().toString().padStart(2, '0') + ':' + now.getMinutes().toString().padStart(2, '0') + ':' + now.getSeconds().toString().padStart(2, '0');
                        $('#last-sync').text(timeStr);
                    }
                });
            }
            $(document).ready(function() { loadBus(); setInterval(loadBus, 60000); });
        })(jQuery);
        </script>
    </div>
    



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">실시간 날씨 및 맛집 정보</h3>



    <div class="weather-section-wrap" style="margin: 40px 0;">
        <h4 style="margin-bottom: 25px !important;">용산역 API 실시간 날씨 예보</h4>
        <div class="weather-info-box" style="padding: 20px; border-radius: 12px; background: #f8fafc; border: 1px solid #e2e8f0; margin-top: 15px;">
            <div style="display: flex; gap: 10px; text-align: center;">
                <div style="flex: 1; background: #ffffff; padding: 12px; border-radius: 8px; border: 1px solid #edf2f7;">
                    <span style="font-size: 0.85em; color: #718096; display: block; margin-bottom: 4px;">기온</span>
                    <b style="font-size: 1.3em; color: #2d3748;">16℃</b>
                </div>
                <div style="flex: 1; background: #ffffff; padding: 12px; border-radius: 8px; border: 1px solid #edf2f7;">
                    <span style="font-size: 0.85em; color: #718096; display: block; margin-bottom: 4px;">상태</span>
                    <b style="font-size: 1.1em; color: #2d3748;">☁️ 흐림</b>
                </div>
                <div style="flex: 1; background: #ffffff; padding: 12px; border-radius: 8px; border: 1px solid #edf2f7;">
                    <span style="font-size: 0.85em; color: #718096; display: block; margin-bottom: 4px;">강수확률</span>
                    <b style="font-size: 1.3em; color: #3182ce;">30%</b>
                </div>
            </div>
        </div>
    </div>


    <div class="station-food-wrap" style="margin: 30px 0; padding-top: 5px;">
        <h4 style="margin-bottom: 25px !important;">용산역 API 실시간 맛집 정보</h4>
        <ul style="list-style: none !important; padding: 0 !important; margin: 0 !important; font-family: 'Noto Sans KR', sans-serif;">
                                                <li style="margin-bottom: 20px !important; padding-bottom: 15px !important; border-bottom: 1px solid #eee !important;">
                        <a href="https://map.naver.com/v5/search/%EC%95%84%EC%9D%B4%ED%8C%8C%ED%81%AC%EB%AA%B0+%EC%9A%A9%EC%82%B0%EC%A0%90+%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C+%EC%9A%A9%EC%82%B0%EA%B5%AC+%ED%95%9C%EA%B0%95%EB%A1%9C3%EA%B0%80+40-999" target="_blank" style="text-decoration: none !important; display: block; color: inherit !important;" rel="noopener">
                            <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 5px;">
                                <strong style="font-size: 1.1rem !important; color: #222 !important;">아이파크몰 용산점</strong>
                                <span style="background: #f1f3f5; color: #666; font-size: 0.7rem; padding: 2px 6px; border-radius: 4px;">쇼핑,유통&gt;쇼핑센터,할인매장</span>
                            </div>
                            <div style="font-size: 0.9rem !important; color: #888 !important;">서울특별시 용산구 한강로3가 40-999</div>
                        </a>
                    </li>
                                    <li style="margin-bottom: 20px !important; padding-bottom: 15px !important; border-bottom: 1px solid #eee !important;">
                        <a href="https://map.naver.com/v5/search/%ED%85%8C%EB%94%94%EB%B5%88%EB%A5%B4%ED%95%98%EC%9A%B0%EC%8A%A4+%EC%9A%A9%EC%82%B0%EC%A0%90+%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C+%EC%9A%A9%EC%82%B0%EA%B5%AC+%ED%95%9C%EA%B0%95%EB%A1%9C2%EA%B0%80+49-1+1%EC%B8%B5" target="_blank" style="text-decoration: none !important; display: block; color: inherit !important;" rel="noopener">
                            <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 5px;">
                                <strong style="font-size: 1.1rem !important; color: #222 !important;">테디뵈르하우스 용산점</strong>
                                <span style="background: #f1f3f5; color: #666; font-size: 0.7rem; padding: 2px 6px; border-radius: 4px;">음식점&gt;카페,디저트</span>
                            </div>
                            <div style="font-size: 0.9rem !important; color: #888 !important;">서울특별시 용산구 한강로2가 49-1 1층</div>
                        </a>
                    </li>
                                    <li style="margin-bottom: 20px !important; padding-bottom: 15px !important; border-bottom: 1px solid #eee !important;">
                        <a href="https://map.naver.com/v5/search/%EC%8C%A4%EC%8C%A4%EC%8C%A4+%EC%9A%A9%EC%82%B0%EC%A0%90+%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C+%EC%9A%A9%EC%82%B0%EA%B5%AC+%ED%95%9C%EA%B0%95%EB%A1%9C2%EA%B0%80+47-3+1%EC%B8%B5" target="_blank" style="text-decoration: none !important; display: block; color: inherit !important;" rel="noopener">
                            <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 5px;">
                                <strong style="font-size: 1.1rem !important; color: #222 !important;">쌤쌤쌤 용산점</strong>
                                <span style="background: #f1f3f5; color: #666; font-size: 0.7rem; padding: 2px 6px; border-radius: 4px;">음식점&gt;양식</span>
                            </div>
                            <div style="font-size: 0.9rem !important; color: #888 !important;">서울특별시 용산구 한강로2가 47-3 1층</div>
                        </a>
                    </li>
                                    <li style="margin-bottom: 20px !important; padding-bottom: 15px !important; border-bottom: 1px solid #eee !important;">
                        <a href="https://map.naver.com/v5/search/%EB%AA%BD%ED%83%84+%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C+%EC%9A%A9%EC%82%B0%EA%B5%AC+%ED%95%9C%EA%B0%95%EB%A1%9C1%EA%B0%80+251-1" target="_blank" style="text-decoration: none !important; display: block; color: inherit !important;" rel="noopener">
                            <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 5px;">
                                <strong style="font-size: 1.1rem !important; color: #222 !important;">몽탄</strong>
                                <span style="background: #f1f3f5; color: #666; font-size: 0.7rem; padding: 2px 6px; border-radius: 4px;">한식&gt;육류,고기요리</span>
                            </div>
                            <div style="font-size: 0.9rem !important; color: #888 !important;">서울특별시 용산구 한강로1가 251-1</div>
                        </a>
                    </li>
                                    <li style="margin-bottom: 20px !important; padding-bottom: 15px !important; border-bottom: 1px solid #eee !important;">
                        <a href="https://map.naver.com/v5/search/%EC%89%90%EC%9D%B4%ED%81%AC%EC%89%91+%EC%9A%A9%EC%82%B0+%EC%95%84%EC%9D%B4%ED%8C%8C%ED%81%AC%EB%AA%B0%EC%A0%90+%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C+%EC%9A%A9%EC%82%B0%EA%B5%AC+%ED%95%9C%EA%B0%95%EB%A1%9C3%EA%B0%80+40-999+%EC%95%84%EC%9D%B4%ED%8C%8C%ED%81%AC%EB%AA%B0+1%EC%B8%B5" target="_blank" style="text-decoration: none !important; display: block; color: inherit !important;" rel="noopener">
                            <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 5px;">
                                <strong style="font-size: 1.1rem !important; color: #222 !important;">쉐이크쉑 용산 아이파크몰점</strong>
                                <span style="background: #f1f3f5; color: #666; font-size: 0.7rem; padding: 2px 6px; border-radius: 4px;">양식&gt;햄버거</span>
                            </div>
                            <div style="font-size: 0.9rem !important; color: #888 !important;">서울특별시 용산구 한강로3가 40-999 아이파크몰 1층</div>
                        </a>
                    </li>
                                    </ul>
    </div>
    



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">실시간 주차장 요금 및 위치</h3>


    <div class="station-parking-section" style="margin: 30px 0; padding-top: 10px; min-height: 400px;">
        <h4 style="margin-bottom: 20px !important;">여수역 실시간 주차장 요금</h4>
        
                    <div class="parking-list-container">
                                    <div style="background: #ffffff; padding: 20px; border-radius: 12px; border: 1px solid #e2e8f0; margin-bottom: 20px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1); font-family: 'Noto Sans KR', sans-serif;">
                        <div style="font-size: 1.1rem; font-weight: 700; color: #0052a4; border-bottom: 2px solid #f1f5f9; padding-bottom: 10px; margin-bottom: 15px;">
                            📍 여수엑스포역                        </div>
                        
                        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 15px;">
                            <div style="background: #f8fafc; padding: 12px; border-radius: 8px;">
                                <span style="font-size: 0.8rem; color: #64748b; display: block;">기본 요금</span>
                                <strong style="font-size: 1.05rem;">600원</strong> 
                                <small style="color: #94a3b8;">/ 30분</small>
                            </div>
                            <div style="background: #f8fafc; padding: 12px; border-radius: 8px;">
                                <span style="font-size: 0.8rem; color: #64748b; display: block;">추가 요금</span>
                                <strong style="font-size: 1.05rem;">300원</strong>
                                <small style="color: #94a3b8;">/ 10분</small>
                            </div>
                            <div style="background: #fff1f2; padding: 15px; border-radius: 8px; border: 1px solid #ffe4e6;">
                                <span style="font-size: 0.85rem; color: #e11d48; font-weight: 600; display: block; margin-bottom: 4px;">📅 1일 최대</span>
                                <strong style="font-size: 1.2rem; color: #e11d48;">10,000원</strong>
                            </div>
                            <div style="background: #f0fdf4; padding: 15px; border-radius: 8px; border: 1px solid #dcfce7;">
                                <span style="font-size: 0.85rem; color: #166534; font-weight: 600; display: block; margin-bottom: 4px;">💳 월 정기권</span>
                                <strong style="font-size: 1.2rem; color: #166534;">정보없음</strong>
                            </div>
                        </div>

                        <div style="font-size: 0.85rem; color: #475569; line-height: 1.7; background: #f1f5f9; padding: 12px; border-radius: 8px;">
                            🏠 <b>주소:</b> 전라남도 여수시 덕충동 61-7<br>
                            🕒 <b>운영시간:</b> 24시간<br>
                            ⏱️ <b>무료회차시간:</b> 0분 이내<br>
                            🎁 <b>할인정보:</b> 코레일 기본 할인 규정 적용<br>
                            📞 <b>문의:</b> 062-941-0874                        </div>
                    </div>
                            </div>
            </div>
    


    <div class="station-location-info" style="margin: 20px 0; font-family: 'Noto Sans KR', sans-serif;">
        <h4 style="margin-bottom: 20px !important;">용산역 주차장 위치 및 문의</h4>
        
        <div style="margin-bottom: 25px; line-height: 1.8; background: #f8fafc; padding: 20px; border-radius: 12px; border: 1px solid #e2e8f0;">
            <p style="margin: 5px 0; font-size: 1.05rem; color: #334155;"><strong>📍 주차장 주소 :</strong> 용산역 인근 공영 및 노상주차장 이용 권장</p>
            <p style="margin: 5px 0; font-size: 1.05rem; color: #334155;"><strong>📞 문의전화 :</strong> <a href="tel:1544-7788" style="color: #0052a4; font-weight: bold; text-decoration: none;">1544-7788</a></p>
        </div>

        <div style="text-align: center; margin: 30px 0;">
            <a href="https://map.naver.com/v5/search/%EC%9A%A9%EC%82%B0%EC%97%AD+%EC%A3%BC%EC%B0%A8%EC%9E%A5" target="_blank" rel="noopener noreferrer" style="display: inline-block; background: #03c75a; color: white; padding: 15px 35px; border-radius: 8px; text-decoration: none; font-weight: bold; font-size: 1.1rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">
                  네이버 지도에서 실시간 위치 확인
            </a>
        </div>
    </div>
    



<p class="wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="350" height="350" src="https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-무궁화호-시간표-용산역-전주역-여수역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간.jpg" alt="전라선-무궁화호-시간표-용산역-전주역-여수역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간" class="wp-image-20564" srcset="https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-무궁화호-시간표-용산역-전주역-여수역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간.jpg 350w, https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-무궁화호-시간표-용산역-전주역-여수역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간-300x300.jpg 300w, https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-무궁화호-시간표-용산역-전주역-여수역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간-150x150.jpg 150w" sizes="(max-width: 350px) 100vw, 350px" /></figure>
</div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
