<?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-%ec%83%88%eb%a7%88%ec%9d%84%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>Sat, 11 Apr 2026 01:33:48 +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-%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/</link>
		
		<dc:creator><![CDATA[운영자]]></dc:creator>
		<pubDate>Sat, 11 Apr 2026 01:33:31 +0000</pubDate>
				<category><![CDATA[실시간 열차 시간표]]></category>
		<category><![CDATA[ITX 시간표]]></category>
		<category><![CDATA[전라선 새마을호 시간표]]></category>
		<guid isPermaLink="false">https://krailroad.co.kr/?p=20439</guid>

					<description><![CDATA[용산에서 출발해 여수 밤바다의 정취로 이어지는 전라선 철길은 1930년대 처음 개통된 이래 전북과 전남 내륙을 종단하며 수많은 사람의 꿈을 실어 날랐습니다. 과거 완행열차가 구불구불한 선로를 따라 느릿하게 풍경을 담아내던 기억은 이제 고속화 사업을 통해 옛날이야기가 되었는데요. 현재 전라선은 ITX-새마을의 안락함을 넘어, 최신형 ITX-마음 열차가 더 많이 투입되며 여수와 수도권을 훨씬 긴밀하게 연결하고 있습니다. 전라선 새마을호 ... <a title="전라선 새마을호 시간표 (용산역~여수역) 및 요금 실시간 시간 안내" class="read-more button" 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/" aria-label="전라선 새마을호 시간표 (용산역~여수역) 및 요금 실시간 시간 안내 전체 읽기">자세히 보기</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">용산에서 출발해 여수 밤바다의 정취로 이어지는 전라선 철길은 1930년대 처음 개통된 이래 전북과 전남 내륙을 종단하며 수많은 사람의 꿈을 실어 날랐습니다. 과거 완행열차가 구불구불한 선로를 따라 느릿하게 풍경을 담아내던 기억은 이제 고속화 사업을 통해 옛날이야기가 되었는데요. 현재 전라선은 ITX-새마을의 안락함을 넘어, 최신형 ITX-마음 열차가 더 많이 투입되며 여수와 수도권을 훨씬 긴밀하게 연결하고 있습니다.</p>



<p class="wp-block-paragraph">전라선 새마을호 시간표를 살펴보면 용산을 시작으로 전주, 순천을 거쳐 <a href="https://krailroad.co.kr/%ec%97%ac%ec%88%98%ec%97%ad-ktx-%ec%8b%9c%ea%b0%84%ed%91%9c-%ec%88%9c%ec%b2%9c%ec%a0%84%ec%a3%bc%ec%9a%a9%ec%82%b0%ed%96%89-%ec%a0%84%eb%9d%bc%ec%84%a0-%ed%95%98%ed%96%89-%ec%83%81%ed%96%89-%eb%85%b8/">여수엑스포역</a>에 이르는 배차가 촘촘하게 짜여 있습니다. 기와지붕의 한옥 형태가 인상적인 <a href="https://krailroad.co.kr/%ec%a0%84%ec%a3%bc%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-%ed%95%9c%ec%98%a5%eb%a7%88%ec%9d%84-%ec%97%ac%ec%88%98%c2%b7%ec%9a%a9%ec%82%b0%ed%96%89/">전주역</a>에 내리면 한옥마을로 향하는 버스와 택시 등 시내 교통편이 역 바로 앞에 잘 갖춰져 있으며, 순천역에서는 보성이나 진주로 향하는 경전선 환승이 가능해 남도 여행의 중심축 역할을 하는데요. 첫차부터 막차까지 본인의 일정에 맞춘 전라선 소요시간과 요금을 미리 체크하면 훨씬 편리한 여행이 가능할것입니다.</p>



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



<h2 class="wp-block-heading"><strong>전라선 새마을호 시간표 안내</strong></h2>



<h3 class="wp-block-heading">공공API 연동 실시간 시스템</h3>



<p class="wp-block-paragraph">역사 대합실 전광판 아래에서 전라선 새마을호 시간표를 확인하기 위해 고개를 들고 내 열차 번호를 찾느라 고생하던 모습은 이제 추억이 될 것 같습니다. <a href="https://www.korail.com/ticket/main" target="_blank" rel="noopener">코레일</a> 공식 데이터와 실시간 공공 API를 연동하여 1분 단위로 스스로 갱신되는 아래 시스템을 활용하면, 기차가 몇분뒤 도착하고 목적지까지 출발하는지 스마트폰 하나로 즉시 확인할 수 있는데요. 특히 출발 15분 전부터 안내되는 음성 안내 코드 기능을 켜두면 다른 일을 하다가도 역사에 몇분쯤에 도착하면  시간을 놓치지 않게 도와줍니다. 타 역의 정보가 필요할 때도 검색 폼을 통해 실시간 위치와 종별을 바로 파악할 수 있으니 한번 사용해 보시는 것을 추천해드립니다. ^^</p>



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



<h3 class="wp-block-heading">여수 밤바다 여행과 현지 정보</h3>



<p class="wp-block-paragraph">전라선 새마을호 시간표를 이용하여 종착지인 여수엑스포역이나 전주역, <a href="https://krailroad.co.kr/%ec%9d%b5%ec%82%b0%ec%97%ad-itx-%ec%83%88%eb%a7%88%ec%9d%84-itx-%eb%a7%88%ec%9d%8c-%ec%9a%a9%ec%82%b0-%eb%aa%a9%ed%8f%ac-%ec%97%ac%ec%88%98-%ec%8b%9c%ea%b0%84%ed%91%9c-%eb%b0%8f-%ed%98%b8%eb%82%a8/">익산역</a>, 용산역에 도착하면 특히 화려한 여수 밤바다 주변 관광지를 이용하기 쉬우며, 역 주변 실시간 버스 도착 현황은 물론, 전라도 손맛을 느낄 수 있는 주변 식당가 정보와 날씨 데이터까지 페이지 하나에 모두 담았는데요. ITX-새마을호를 이용하여 혼행이나 아이들과 함께 추억을 담을 수 있는 기차여행을 그려보는것도 좋을것 같습니다.</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년 06월 04일</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-itx">ITX-새마을</span></td><td><span class="train-detail">1502호</span><div class="time-display">08:48</div><div class="arrival-info">13:29 도착</div></td><td><span class="train-detail">1506호</span><div class="time-display">14:10</div><div class="arrival-info">19:06 도착</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년 06월 04일</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-itx">ITX-새마을</span></td><td><span class="train-detail">1501호</span><div class="time-display">07:14</div><div class="arrival-info">11:56 도착</div></td><td><span class="train-detail">1505호</span><div class="time-display">16:38</div><div class="arrival-info">21:22 도착</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">여수 →&nbsp;용산 ITX-새마을 시간표</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년 06월 04일</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></tr></thead><tbody><tr><td>1502</td><td>ITX-새마을</td><td>08:48</td><td>08:56</td><td>09:11</td><td>09:27</td><td>09:39</td><td>09:49</td><td></td><td>10:17</td><td></td><td>10:35</td><td></td><td>11:01</td><td>11:19</td><td>11:35</td><td>11:48</td><td>12:03</td><td>12:24</td><td>12:36</td><td>12:56</td><td>13:20</td><td>13:29</td></tr><tr><td>1506</td><td>ITX-새마을</td><td>14:10</td><td>14:19</td><td>14:34</td><td>14:50</td><td>15:02</td><td>15:13</td><td>15:27</td><td>15:44</td><td>15:53</td><td>16:06</td><td>16:25</td><td>16:35</td><td>16:53</td><td>17:09</td><td>17:22</td><td>17:38</td><td>17:59</td><td>18:12</td><td>18:31</td><td>18:57</td><td>19:06</td></tr></tbody></table></div>



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



<h2 class="wp-block-heading">용산 →&nbsp;여수 ITX-새마을 시간표</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년 06월 04일</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></tr></thead><tbody><tr><td>1501</td><td>ITX-새마을</td><td>07:14</td><td>07:23</td><td>07:45</td><td>08:05</td><td>08:18</td><td>08:39</td><td>09:07</td><td>09:22</td><td>09:41</td><td>09:50</td><td>10:11</td><td></td><td>10:27</td><td></td><td>10:54</td><td>11:05</td><td>11:17</td><td>11:33</td><td>11:48</td><td>11:56</td></tr><tr><td>1505</td><td>ITX-새마을</td><td>16:38</td><td>16:46</td><td>17:09</td><td>17:28</td><td>17:41</td><td>18:01</td><td>18:28</td><td>18:44</td><td>19:02</td><td>19:11</td><td>19:31</td><td>19:41</td><td>19:50</td><td>20:10</td><td>20:20</td><td>20:30</td><td>20:42</td><td>20:59</td><td>21:13</td><td>21:22</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;">25℃</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;">20%</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/전라선-새마을호-시간표-ITX-여수역-용산역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간.jpg" alt="전라선-새마을호-시간표-ITX-여수역-용산역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간" class="wp-image-20454" srcset="https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-새마을호-시간표-ITX-여수역-용산역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간.jpg 350w, https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-새마을호-시간표-ITX-여수역-용산역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간-300x300.jpg 300w, https://krailroad.co.kr/wp-content/uploads/2026/04/전라선-새마을호-시간표-ITX-여수역-용산역-상하행-전체-첫기차-마지막기차-노선-요금-정차역-실시간-150x150.jpg 150w" sizes="(max-width: 350px) 100vw, 350px" /></figure>
</div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
