{"id":28,"date":"2026-05-07T01:27:07","date_gmt":"2026-05-07T01:27:07","guid":{"rendered":"https:\/\/travel.lightsalt2.com\/?page_id=28"},"modified":"2026-05-07T01:59:43","modified_gmt":"2026-05-07T01:59:43","slug":"28-2","status":"publish","type":"page","link":"https:\/\/travel.lightsalt2.com\/?page_id=28","title":{"rendered":"Korea Tourism Organization English Travel Guide"},"content":{"rendered":"\n<!-- Korea Travel Finder \/ English First + Korean Translation \/ WordPress HTML Block Code -->\n<div id=\"ktf-app\">\n  <style>\n    #ktf-app{font-family:Arial,\"Noto Sans KR\",sans-serif;background:#f4f8ff;color:#172033;padding:24px;border-radius:22px;max-width:1200px;margin:0 auto}\n    #ktf-app *{box-sizing:border-box}\n    .ktf-hero{background:linear-gradient(135deg,#0b3b75,#1677ff);color:white;padding:34px 24px;border-radius:24px;margin-bottom:22px;box-shadow:0 14px 35px rgba(0,0,0,.15)}\n    .ktf-hero h1{color:#fff!important;font-size:34px;margin:0 0 10px;font-weight:800;line-height:1.25}\n    .ktf-hero p{margin:0;line-height:1.7;font-size:16px}\n    .ktf-source{margin-top:14px;font-size:13px;opacity:.92}\n    .ktf-lang{display:flex;gap:8px;margin-top:18px}\n    .ktf-lang button{border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.15);color:#fff;border-radius:999px;padding:8px 14px;cursor:pointer;font-weight:700}\n    .ktf-lang button.active{background:#fff;color:#0b3b75}\n    .ktf-controls{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:10px;margin-bottom:16px}\n    .ktf-controls input,.ktf-controls select,.ktf-controls button{min-height:48px;border-radius:14px;border:1px solid #d6e2f2;padding:0 14px;font-size:15px}\n    .ktf-controls button,.ktf-actions button{background:#0b66d8;color:white;border:0;cursor:pointer;font-weight:700}\n    .ktf-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}\n    .ktf-actions button{border-radius:999px;padding:11px 16px;border:0;font-size:14px}\n    .ktf-status{background:white;padding:14px 16px;border-radius:14px;margin-bottom:16px;border:1px solid #e1e8f2}\n    .ktf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}\n    .ktf-card{background:white;border-radius:20px;overflow:hidden;border:1px solid #e1e8f2;box-shadow:0 8px 22px rgba(15,45,85,.08)}\n    .ktf-img{height:180px;background:linear-gradient(135deg,#dbeafe,#eff6ff);display:flex;align-items:center;justify-content:center;color:#527098;font-weight:700}\n    .ktf-img img{width:100%;height:100%;object-fit:cover}\n    .ktf-body{padding:16px}\n    .ktf-body h3{margin:0 0 10px;font-size:19px;color:#10233f;line-height:1.35}\n    .ktf-body p{margin:6px 0;font-size:14px;line-height:1.55;color:#40516a}\n    .ktf-tag{display:inline-block;background:#eef5ff;color:#0b66d8;padding:5px 9px;border-radius:999px;font-size:12px;margin-bottom:10px;font-weight:700}\n    .ktf-card-buttons{display:flex;gap:8px;margin-top:14px}\n    .ktf-card-buttons button,.ktf-card-buttons a{flex:1;text-align:center;text-decoration:none;border:0;border-radius:12px;padding:10px;font-size:13px;cursor:pointer;font-weight:700}\n    .ktf-detail-btn{background:#0b66d8;color:white}.ktf-map-btn{background:#edf4ff;color:#0b66d8}\n    .ktf-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99999;padding:24px;overflow:auto}\n    .ktf-modal-box{background:white;max-width:850px;margin:40px auto;border-radius:24px;padding:24px;position:relative}\n    .ktf-close{position:absolute;right:18px;top:16px;border:0;background:#10233f;color:white;border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:22px;line-height:36px}\n    .ktf-detail-img{width:100%;max-height:380px;object-fit:cover;border-radius:18px;margin-bottom:18px}\n    .ktf-footer{margin-top:26px;padding:16px;background:#fff;border-radius:16px;border:1px solid #e1e8f2;font-size:13px;color:#53657d;line-height:1.6}\n    @media(max-width:900px){#ktf-app{padding:16px}.ktf-controls{grid-template-columns:1fr}.ktf-grid{grid-template-columns:1fr}.ktf-hero h1{font-size:27px}}\n  <\/style>\n\n  <section class=\"ktf-hero\">\n    <h1 id=\"ktf-title\">Korea Tourism Organization English Travel Guide<\/h1>\n    <p id=\"ktf-subtitle\">Find Korea travel destinations, festivals, stays, food, shopping, and leisure information using Korea Tourism Organization data.<\/p>\n    <div class=\"ktf-source\" id=\"ktf-source\">Data provided by Korea Tourism Organization \ud55c\uad6d\uad00\uad11\uacf5\uc0ac.<\/div>\n    <div class=\"ktf-lang\">\n      <button id=\"ktf-lang-en\" class=\"active\" onclick=\"ktfSetLang('en')\">EN<\/button>\n      <button id=\"ktf-lang-ko\" onclick=\"ktfSetLang('ko')\">KO<\/button>\n    <\/div>\n  <\/section>\n\n  <div class=\"ktf-controls\">\n    <input id=\"ktf-keyword\" type=\"text\" placeholder=\"Search keyword: palace, market, food, festival\">\n    <select id=\"ktf-type\">\n      <option value=\"\">All Types<\/option>\n      <option value=\"76\">Attractions<\/option>\n      <option value=\"78\">Culture<\/option>\n      <option value=\"85\">Festivals<\/option>\n      <option value=\"75\">Leisure<\/option>\n      <option value=\"80\">Stay<\/option>\n      <option value=\"79\">Shopping<\/option>\n      <option value=\"82\">Food<\/option>\n      <option value=\"77\">Transport<\/option>\n    <\/select>\n    <select id=\"ktf-sort\">\n      <option value=\"Q\">Image + Recently Updated<\/option>\n      <option value=\"O\">Image + Title<\/option>\n      <option value=\"R\">Image + Created Date<\/option>\n      <option value=\"C\">Recently Updated<\/option>\n      <option value=\"A\">Title<\/option>\n      <option value=\"D\">Created Date<\/option>\n    <\/select>\n    <button onclick=\"ktfSearch()\" id=\"ktf-search-btn\">Search<\/button>\n  <\/div>\n\n  <div class=\"ktf-actions\">\n    <button onclick=\"ktfQuick('palace')\" data-key=\"palace\">Palace<\/button>\n    <button onclick=\"ktfQuick('market')\" data-key=\"market\">Market<\/button>\n    <button onclick=\"ktfQuick('temple')\" data-key=\"temple\">Temple<\/button>\n    <button onclick=\"ktfQuick('food')\" data-key=\"food\">Food<\/button>\n    <button onclick=\"ktfFestival()\" id=\"ktf-festival-btn\">Festivals<\/button>\n    <button onclick=\"ktfStay()\" id=\"ktf-stay-btn\">Stay<\/button>\n    <button onclick=\"ktfNearby()\" id=\"ktf-nearby-btn\">Nearby<\/button>\n  <\/div>\n\n  <div id=\"ktf-status\" class=\"ktf-status\">Enter a keyword or choose a quick search button.<\/div>\n  <div id=\"ktf-results\" class=\"ktf-grid\"><\/div>\n\n  <div class=\"ktf-footer\" id=\"ktf-footer\">\n    Data provided by Korea Tourism Organization \ud55c\uad6d\uad00\uad11\uacf5\uc0ac.<br>\n    This website displays only data provided through the Korea Tourism Organization English Tourism Information OpenAPI.\n  <\/div>\n\n  <div id=\"ktf-modal\" class=\"ktf-modal\">\n    <div class=\"ktf-modal-box\">\n      <button class=\"ktf-close\" onclick=\"ktfClose()\">\u00d7<\/button>\n      <div id=\"ktf-detail\"><\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    const PROXY_URL = \"https:\/\/travel.lightsalt2.com\/wp-content\/uploads\/2026\/02\/korea_travel_proxy.php\";\n    let ktfLang = \"en\";\n\n    const ktfTexts = {\n      en: {\n        title: \"Korea Tourism Organization English Travel Guide\",\n        subtitle: \"Find Korea travel destinations, festivals, stays, food, shopping, and leisure information using Korea Tourism Organization data.\",\n        source: \"Data provided by Korea Tourism Organization \ud55c\uad6d\uad00\uad11\uacf5\uc0ac.\",\n        placeholder: \"Search keyword: palace, market, food, festival\",\n        search: \"Search\",\n        ready: \"Enter a keyword or choose a quick search button.\",\n        noData: \"No travel information found.\",\n        loaded: \"travel items loaded.\",\n        searching: \"Searching.\",\n        keywordRequired: \"Please enter a keyword. Example: palace, market, food\",\n        detail: \"Details\",\n        map: \"Map\",\n        address: \"Address\",\n        tel: \"Tel\",\n        distance: \"Distance\",\n        updated: \"Updated\",\n        type: \"Type\",\n        zipcode: \"Zipcode\",\n        overview: \"Overview\",\n        intro: \"Intro Information\",\n        openMap: \"Open in Google Maps\",\n        noOverview: \"No overview available.\",\n        festivalLoading: \"Loading festival information.\",\n        stayLoading: \"Loading stay information.\",\n        locationNotSupported: \"This browser does not support location services.\",\n        checkingLocation: \"Checking your current location.\",\n        locationDenied: \"Location permission was denied.\",\n        detailLoading: \"Loading details.\",\n        detailError: \"Detail error: \",\n        error: \"Error: \",\n        footer: \"Data provided by Korea Tourism Organization \ud55c\uad6d\uad00\uad11\uacf5\uc0ac.<br>This website displays only data provided through the Korea Tourism Organization English Tourism Information OpenAPI.\",\n        typeNames: {\n          \"75\":\"Leisure\",\"76\":\"Attractions\",\"77\":\"Transport\",\"78\":\"Culture\",\"79\":\"Shopping\",\"80\":\"Stay\",\"82\":\"Food\",\"85\":\"Festival\"\n        },\n        typeOptions: [\"All Types\",\"Attractions\",\"Culture\",\"Festivals\",\"Leisure\",\"Stay\",\"Shopping\",\"Food\",\"Transport\"],\n        sortOptions: [\"Image + Recently Updated\",\"Image + Title\",\"Image + Created Date\",\"Recently Updated\",\"Title\",\"Created Date\"],\n        quick: {palace:\"Palace\",market:\"Market\",temple:\"Temple\",food:\"Food\",festival:\"Festivals\",stay:\"Stay\",nearby:\"Nearby\"}\n      },\n      ko: {\n        title: \"\ud55c\uad6d\uad00\uad11\uacf5\uc0ac \uc601\ubb38 \uad00\uad11\uc815\ubcf4 \uc5ec\ud589 \uac00\uc774\ub4dc\",\n        subtitle: \"\ud55c\uad6d\uad00\uad11\uacf5\uc0ac \ub370\uc774\ud130\ub97c \ud65c\uc6a9\ud574 \ud55c\uad6d \uc5ec\ud589\uc9c0, \ucd95\uc81c, \uc219\ubc15, \uc74c\uc2dd\uc810, \uc1fc\ud551, \ub808\ud3ec\uce20 \uc815\ubcf4\ub97c \ucc3e\uc544\ubcf4\uc138\uc694.\",\n        source: \"\uc790\ub8cc \uc81c\uacf5: Korea Tourism Organization \ud55c\uad6d\uad00\uad11\uacf5\uc0ac.\",\n        placeholder: \"\uac80\uc0c9\uc5b4 \uc785\ub825: palace, market, food, festival\",\n        search: \"\uac80\uc0c9\",\n        ready: \"\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uac70\ub098 \ube60\ub978 \uac80\uc0c9 \ubc84\ud2bc\uc744 \ub20c\ub7ec \uc8fc\uc138\uc694.\",\n        noData: \"\uc870\uac74\uc5d0 \ub9de\ub294 \uad00\uad11\uc815\ubcf4\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\",\n        loaded: \"\uac1c\uc758 \uc5ec\ud589 \uc815\ubcf4\ub97c \ubd88\ub7ec\uc654\uc2b5\ub2c8\ub2e4.\",\n        searching: \"\uac80\uc0c9 \uc911\uc785\ub2c8\ub2e4.\",\n        keywordRequired: \"\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud574 \uc8fc\uc138\uc694. \uc608: palace, market, food\",\n        detail: \"\uc0c1\uc138 \ubcf4\uae30\",\n        map: \"\uc9c0\ub3c4 \ubcf4\uae30\",\n        address: \"\uc8fc\uc18c\",\n        tel: \"\uc804\ud654\ubc88\ud638\",\n        distance: \"\uac70\ub9ac\",\n        updated: \"\uc218\uc815\uc77c\",\n        type: \"\uc720\ud615\",\n        zipcode: \"\uc6b0\ud3b8\ubc88\ud638\",\n        overview: \"\uac1c\uc694\",\n        intro: \"\uc18c\uac1c \uc815\ubcf4\",\n        openMap: \"\uad6c\uae00 \uc9c0\ub3c4\uc5d0\uc11c \ubcf4\uae30\",\n        noOverview: \"\uc81c\uacf5\ub41c \uac1c\uc694 \uc815\ubcf4\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\",\n        festivalLoading: \"\ucd95\uc81c \uc815\ubcf4\ub97c \ubd88\ub7ec\uc624\ub294 \uc911\uc785\ub2c8\ub2e4.\",\n        stayLoading: \"\uc219\ubc15 \uc815\ubcf4\ub97c \ubd88\ub7ec\uc624\ub294 \uc911\uc785\ub2c8\ub2e4.\",\n        locationNotSupported: \"\ud604\uc7ac \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc704\uce58 \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\",\n        checkingLocation: \"\ud604\uc7ac \uc704\uce58\ub97c \ud655\uc778\ud558\ub294 \uc911\uc785\ub2c8\ub2e4.\",\n        locationDenied: \"\uc704\uce58 \uad8c\ud55c\uc774 \uac70\ubd80\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\",\n        detailLoading: \"\uc0c1\uc138 \uc815\ubcf4\ub97c \ubd88\ub7ec\uc624\ub294 \uc911\uc785\ub2c8\ub2e4.\",\n        detailError: \"\uc0c1\uc138 \uc815\ubcf4 \uc624\ub958: \",\n        error: \"\uc624\ub958: \",\n        footer: \"\uc790\ub8cc \uc81c\uacf5: Korea Tourism Organization \ud55c\uad6d\uad00\uad11\uacf5\uc0ac.<br>\ubcf8 \uc6f9\uc740 \ud55c\uad6d\uad00\uad11\uacf5\uc0ac \uc601\ubb38 \uad00\uad11\uc815\ubcf4\uc11c\ube44\uc2a4 OpenAPI\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub370\uc774\ud130\ub9cc \ud45c\uc2dc\ud569\ub2c8\ub2e4.\",\n        typeNames: {\n          \"75\":\"\ub808\ud3ec\uce20\",\"76\":\"\uad00\uad11\uc9c0\",\"77\":\"\uad50\ud1b5\",\"78\":\"\ubb38\ud654\uc2dc\uc124\",\"79\":\"\uc1fc\ud551\",\"80\":\"\uc219\ubc15\",\"82\":\"\uc74c\uc2dd\uc810\",\"85\":\"\ucd95\uc81c\"\n        },\n        typeOptions: [\"\uc804\uccb4 \uc720\ud615\",\"\uad00\uad11\uc9c0\",\"\ubb38\ud654\uc2dc\uc124\",\"\ucd95\uc81c\uacf5\uc5f0\ud589\uc0ac\",\"\ub808\ud3ec\uce20\",\"\uc219\ubc15\",\"\uc1fc\ud551\",\"\uc74c\uc2dd\uc810\",\"\uad50\ud1b5\"],\n        sortOptions: [\"\uc774\ubbf8\uc9c0 + \ucd5c\uadfc \uc218\uc815\uc77c\uc21c\",\"\uc774\ubbf8\uc9c0 + \uc81c\ubaa9\uc21c\",\"\uc774\ubbf8\uc9c0 + \ub4f1\ub85d\uc77c\uc21c\",\"\ucd5c\uadfc \uc218\uc815\uc77c\uc21c\",\"\uc81c\ubaa9\uc21c\",\"\ub4f1\ub85d\uc77c\uc21c\"],\n        quick: {palace:\"\uad81\uad90\",market:\"\uc2dc\uc7a5\",temple:\"\uc0ac\ucc30\",food:\"\uc74c\uc2dd\",festival:\"\ucd95\uc81c\",stay:\"\uc219\ubc15\",nearby:\"\ub0b4 \uc8fc\ubcc0\"}\n      }\n    };\n\n    const typeValues = [\"\",\"76\",\"78\",\"85\",\"75\",\"80\",\"79\",\"82\",\"77\"];\n    const sortValues = [\"Q\",\"O\",\"R\",\"C\",\"A\",\"D\"];\n\n    function ktfSetLang(lang) {\n      ktfLang = lang;\n      const t = ktfTexts[lang];\n\n      document.getElementById(\"ktf-title\").textContent = t.title;\n      document.getElementById(\"ktf-subtitle\").textContent = t.subtitle;\n      document.getElementById(\"ktf-source\").textContent = t.source;\n      document.getElementById(\"ktf-keyword\").placeholder = t.placeholder;\n      document.getElementById(\"ktf-search-btn\").textContent = t.search;\n      document.getElementById(\"ktf-footer\").innerHTML = t.footer;\n      document.getElementById(\"ktf-lang-en\").classList.toggle(\"active\", lang === \"en\");\n      document.getElementById(\"ktf-lang-ko\").classList.toggle(\"active\", lang === \"ko\");\n\n      const typeSelect = document.getElementById(\"ktf-type\");\n      const currentType = typeSelect.value;\n      typeSelect.innerHTML = typeValues.map((v, i) => `<option value=\"${v}\">${t.typeOptions[i]}<\/option>`).join(\"\");\n      typeSelect.value = currentType;\n\n      const sortSelect = document.getElementById(\"ktf-sort\");\n      const currentSort = sortSelect.value;\n      sortSelect.innerHTML = sortValues.map((v, i) => `<option value=\"${v}\">${t.sortOptions[i]}<\/option>`).join(\"\");\n      sortSelect.value = currentSort;\n\n      document.querySelector('[data-key=\"palace\"]').textContent = t.quick.palace;\n      document.querySelector('[data-key=\"market\"]').textContent = t.quick.market;\n      document.querySelector('[data-key=\"temple\"]').textContent = t.quick.temple;\n      document.querySelector('[data-key=\"food\"]').textContent = t.quick.food;\n      document.getElementById(\"ktf-festival-btn\").textContent = t.quick.festival;\n      document.getElementById(\"ktf-stay-btn\").textContent = t.quick.stay;\n      document.getElementById(\"ktf-nearby-btn\").textContent = t.quick.nearby;\n\n      ktfSetStatus(t.ready);\n      const lastItems = window.ktfLastItems || [];\n      if (lastItems.length) ktfRender(lastItems, false);\n    }\n\n    function ktfSetStatus(msg) { document.getElementById(\"ktf-status\").innerHTML = msg; }\n\n    function ktfBuildUrl(endpoint, params = {}) {\n      const url = new URL(PROXY_URL);\n      url.searchParams.set(\"endpoint\", endpoint);\n      url.searchParams.set(\"numOfRows\", params.numOfRows || \"12\");\n      url.searchParams.set(\"pageNo\", params.pageNo || \"1\");\n      Object.keys(params).forEach(key => {\n        if (params[key] !== \"\" && params[key] !== null && params[key] !== undefined) url.searchParams.set(key, params[key]);\n      });\n      return url.toString();\n    }\n\n    async function ktfFetch(endpoint, params = {}) {\n      const res = await fetch(ktfBuildUrl(endpoint, params));\n      if (!res.ok) throw new Error(\"Server response error\");\n      const json = await res.json();\n      if (!json.ok) throw new Error(json.message || \"API call failed\");\n      const header = json.data?.response?.header;\n      if (header && header.resultCode && header.resultCode !== \"0000\") throw new Error(header.resultMsg || \"API error\");\n      return json.data?.response?.body || {};\n    }\n\n    function ktfNormalizeItems(body) {\n      const raw = body?.items?.item;\n      if (!raw) return [];\n      return Array.isArray(raw) ? raw : [raw];\n    }\n\n    function ktfRender(items, save = true) {\n      if (save) window.ktfLastItems = items;\n      const t = ktfTexts[ktfLang];\n      const box = document.getElementById(\"ktf-results\");\n\n      if (!items.length) {\n        box.innerHTML = \"\";\n        ktfSetStatus(t.noData);\n        return;\n      }\n\n      ktfSetStatus(ktfLang === \"ko\" ? `${items.length}${t.loaded}` : `${items.length} ${t.loaded}`);\n\n      box.innerHTML = items.map(item => {\n        const image = item.firstimage || item.firstimage2 || \"\";\n        const type = t.typeNames[item.contenttypeid] || \"Travel\";\n        const mapUrl = item.mapx && item.mapy ? `https:\/\/www.google.com\/maps\/search\/?api=1&query=${item.mapy},${item.mapx}` : \"#\";\n        return `\n          <article class=\"ktf-card\">\n            <div class=\"ktf-img\">${image ? `<img decoding=\"async\" src=\"${image}\" alt=\"${ktfEscape(item.title)}\">` : `No Image`}<\/div>\n            <div class=\"ktf-body\">\n              <span class=\"ktf-tag\">${type}<\/span>\n              <h3>${ktfEscape(item.title || \"No Title\")}<\/h3>\n              <p><strong>${t.address}:<\/strong> ${ktfEscape(item.addr1 || \"-\")}<\/p>\n              <p><strong>${t.tel}:<\/strong> ${ktfEscape(item.tel || \"-\")}<\/p>\n              ${item.dist ? `<p><strong>${t.distance}:<\/strong> ${Math.round(Number(item.dist))}m<\/p>` : \"\"}\n              <p><strong>${t.updated}:<\/strong> ${ktfDate(item.modifiedtime)}<\/p>\n              <div class=\"ktf-card-buttons\">\n                <button class=\"ktf-detail-btn\" onclick=\"ktfDetail('${item.contentid}', '${item.contenttypeid}')\">${t.detail}<\/button>\n                <a class=\"ktf-map-btn\" href=\"${mapUrl}\" target=\"_blank\" rel=\"noopener\">${t.map}<\/a>\n              <\/div>\n            <\/div>\n          <\/article>`;\n      }).join(\"\");\n    }\n\n    async function ktfSearch() {\n      const keyword = document.getElementById(\"ktf-keyword\").value.trim();\n      const contentTypeId = document.getElementById(\"ktf-type\").value;\n      const arrange = document.getElementById(\"ktf-sort\").value;\n      const t = ktfTexts[ktfLang];\n\n      if (!keyword) {\n        ktfSetStatus(t.keywordRequired);\n        return;\n      }\n\n      ktfSetStatus(t.searching);\n\n      try {\n        const body = await ktfFetch(\"searchKeyword2\", { keyword, contentTypeId, arrange });\n        ktfRender(ktfNormalizeItems(body));\n      } catch (err) {\n        ktfSetStatus(t.error + err.message);\n      }\n    }\n\n    function ktfQuick(word) {\n      document.getElementById(\"ktf-keyword\").value = word;\n      ktfSearch();\n    }\n\n    async function ktfFestival() {\n      const t = ktfTexts[ktfLang];\n      ktfSetStatus(t.festivalLoading);\n      const today = new Date();\n      const y = today.getFullYear();\n      const m = String(today.getMonth() + 1).padStart(2, \"0\");\n      const d = String(today.getDate()).padStart(2, \"0\");\n\n      try {\n        const body = await ktfFetch(\"searchFestival2\", { eventStartDate: `${y}${m}${d}`, eventEndDate: `${y}1231`, arrange: \"Q\" });\n        ktfRender(ktfNormalizeItems(body));\n      } catch (err) {\n        ktfSetStatus(t.error + err.message);\n      }\n    }\n\n    async function ktfStay() {\n      const t = ktfTexts[ktfLang];\n      ktfSetStatus(t.stayLoading);\n      try {\n        const body = await ktfFetch(\"searchStay2\", { arrange: \"Q\" });\n        ktfRender(ktfNormalizeItems(body));\n      } catch (err) {\n        ktfSetStatus(t.error + err.message);\n      }\n    }\n\n    function ktfNearby() {\n      const t = ktfTexts[ktfLang];\n      if (!navigator.geolocation) {\n        ktfSetStatus(t.locationNotSupported);\n        return;\n      }\n\n      ktfSetStatus(t.checkingLocation);\n\n      navigator.geolocation.getCurrentPosition(async pos => {\n        try {\n          const body = await ktfFetch(\"locationBasedList2\", {\n            mapX: pos.coords.longitude,\n            mapY: pos.coords.latitude,\n            radius: 10000,\n            arrange: \"S\",\n            contentTypeId: document.getElementById(\"ktf-type\").value\n          });\n          ktfRender(ktfNormalizeItems(body));\n        } catch (err) {\n          ktfSetStatus(t.error + err.message);\n        }\n      }, () => ktfSetStatus(t.locationDenied));\n    }\n\n    async function ktfDetail(contentid, contenttypeid) {\n      const t = ktfTexts[ktfLang];\n      const modal = document.getElementById(\"ktf-modal\");\n      const detail = document.getElementById(\"ktf-detail\");\n      modal.style.display = \"block\";\n      detail.innerHTML = t.detailLoading;\n\n      try {\n        const commonBody = await ktfFetch(\"detailCommon2\", { contentId: contentid, contentTypeId: contenttypeid });\n        const introBody = await ktfFetch(\"detailIntro2\", { contentId: contentid, contentTypeId: contenttypeid });\n        const imageBody = await ktfFetch(\"detailImage2\", { contentId: contentid, imageYN: \"Y\" });\n\n        const common = ktfNormalizeItems(commonBody)[0] || {};\n        const intro = ktfNormalizeItems(introBody)[0] || {};\n        const images = ktfNormalizeItems(imageBody);\n        const mainImage = common.firstimage || common.firstimage2 || images[0]?.originimgurl || \"\";\n        const mapUrl = common.mapx && common.mapy ? `https:\/\/www.google.com\/maps\/search\/?api=1&query=${common.mapy},${common.mapx}` : \"#\";\n\n        detail.innerHTML = `\n          ${mainImage ? `<img decoding=\"async\" class=\"ktf-detail-img\" src=\"${mainImage}\" alt=\"${ktfEscape(common.title)}\">` : \"\"}\n          <h2>${ktfEscape(common.title || \"Details\")}<\/h2>\n          <p><strong>${t.type}:<\/strong> ${t.typeNames[contenttypeid] || \"-\"}<\/p>\n          <p><strong>${t.address}:<\/strong> ${ktfEscape(common.addr1 || \"-\")}<\/p>\n          <p><strong>${t.tel}:<\/strong> ${ktfEscape(common.tel || \"-\")}<\/p>\n          <p><strong>${t.zipcode}:<\/strong> ${ktfEscape(common.zipcode || \"-\")}<\/p>\n          <p><strong>${t.overview}:<\/strong><\/p>\n          <div style=\"line-height:1.8;\">${common.overview || t.noOverview}<\/div>\n          <hr>\n          <h3>${t.intro}<\/h3>\n          <pre style=\"white-space:pre-wrap;background:#f5f7fb;padding:14px;border-radius:14px;overflow:auto;\">${ktfEscape(JSON.stringify(intro, null, 2))}<\/pre>\n          <p><a href=\"${mapUrl}\" target=\"_blank\" rel=\"noopener\">${t.openMap}<\/a><\/p>\n          <p style=\"font-size:13px;color:#667;\">\n            ${t.source}<br>\n            Copyright Type: ${ktfEscape(common.cpyrhtDivCd || \"-\")}\n          <\/p>`;\n      } catch (err) {\n        detail.innerHTML = t.detailError + err.message;\n      }\n    }\n\n    function ktfClose() { document.getElementById(\"ktf-modal\").style.display = \"none\"; }\n\n    function ktfEscape(str) {\n      return String(str || \"\")\n        .replaceAll(\"&\",\"&amp;\")\n        .replaceAll(\"<\",\"&lt;\")\n        .replaceAll(\">\",\"&gt;\")\n        .replaceAll('\"',\"&quot;\")\n        .replaceAll(\"'\",\"&#039;\");\n    }\n\n    function ktfDate(str) {\n      if (!str) return \"-\";\n      const s = String(str);\n      if (s.length < 8) return s;\n      return s.slice(0,4) + \".\" + s.slice(4,6) + \".\" + s.slice(6,8);\n    }\n\n    ktfSetLang(\"en\");\n  <\/script>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Korea Tourism Organization English Travel Guide Find Korea travel destinations, festivals, stays, food, shopping, and leisure information using Korea Tourism [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":35,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-28","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Korea Tourism Organization English Travel Guide - travel<\/title>\n<meta name=\"description\" content=\"Use the Korea Tourism Organization&#039;s English tourism information service to find information on Korean travel destinations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/travel.lightsalt2.com\/?page_id=28\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Korea Tourism Organization English Travel Guide - travel\" \/>\n<meta property=\"og:description\" content=\"Use the Korea Tourism Organization&#039;s English tourism information service to find information on Korean travel destinations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/travel.lightsalt2.com\/?page_id=28\" \/>\n<meta property=\"og:site_name\" content=\"travel\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-07T01:59:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/travel.lightsalt2.com\/wp-content\/uploads\/2026\/05\/Korea-Tourism.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data1\" content=\"1\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28\",\"url\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28\",\"name\":\"Korea Tourism Organization English Travel Guide - travel\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/travel.lightsalt2.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Korea-Tourism.webp\",\"datePublished\":\"2026-05-07T01:27:07+00:00\",\"dateModified\":\"2026-05-07T01:59:43+00:00\",\"description\":\"Use the Korea Tourism Organization's English tourism information service to find information on Korean travel destinations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28#primaryimage\",\"url\":\"https:\\\/\\\/travel.lightsalt2.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Korea-Tourism.webp\",\"contentUrl\":\"https:\\\/\\\/travel.lightsalt2.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Korea-Tourism.webp\",\"width\":1920,\"height\":1080,\"caption\":\"KOREA TOURISM ORGANIZATION ENGLISH TRAVEL GUIDE\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?page_id=28#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\\\/\\\/travel.lightsalt2.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Korea Tourism Organization English Travel Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/travel.lightsalt2.com\\\/#website\",\"url\":\"https:\\\/\\\/travel.lightsalt2.com\\\/\",\"name\":\"Future Investments\",\"description\":\"Domestic travel, international travel\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/travel.lightsalt2.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Korea Tourism Organization English Travel Guide - travel","description":"Use the Korea Tourism Organization's English tourism information service to find information on Korean travel destinations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/travel.lightsalt2.com\/?page_id=28","og_locale":"ko_KR","og_type":"article","og_title":"Korea Tourism Organization English Travel Guide - travel","og_description":"Use the Korea Tourism Organization's English tourism information service to find information on Korean travel destinations.","og_url":"https:\/\/travel.lightsalt2.com\/?page_id=28","og_site_name":"travel","article_modified_time":"2026-05-07T01:59:43+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/travel.lightsalt2.com\/wp-content\/uploads\/2026\/05\/Korea-Tourism.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"1\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/travel.lightsalt2.com\/?page_id=28","url":"https:\/\/travel.lightsalt2.com\/?page_id=28","name":"Korea Tourism Organization English Travel Guide - travel","isPartOf":{"@id":"https:\/\/travel.lightsalt2.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/travel.lightsalt2.com\/?page_id=28#primaryimage"},"image":{"@id":"https:\/\/travel.lightsalt2.com\/?page_id=28#primaryimage"},"thumbnailUrl":"https:\/\/travel.lightsalt2.com\/wp-content\/uploads\/2026\/05\/Korea-Tourism.webp","datePublished":"2026-05-07T01:27:07+00:00","dateModified":"2026-05-07T01:59:43+00:00","description":"Use the Korea Tourism Organization's English tourism information service to find information on Korean travel destinations.","breadcrumb":{"@id":"https:\/\/travel.lightsalt2.com\/?page_id=28#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/travel.lightsalt2.com\/?page_id=28"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/travel.lightsalt2.com\/?page_id=28#primaryimage","url":"https:\/\/travel.lightsalt2.com\/wp-content\/uploads\/2026\/05\/Korea-Tourism.webp","contentUrl":"https:\/\/travel.lightsalt2.com\/wp-content\/uploads\/2026\/05\/Korea-Tourism.webp","width":1920,"height":1080,"caption":"KOREA TOURISM ORGANIZATION ENGLISH TRAVEL GUIDE"},{"@type":"BreadcrumbList","@id":"https:\/\/travel.lightsalt2.com\/?page_id=28#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/travel.lightsalt2.com\/"},{"@type":"ListItem","position":2,"name":"Korea Tourism Organization English Travel Guide"}]},{"@type":"WebSite","@id":"https:\/\/travel.lightsalt2.com\/#website","url":"https:\/\/travel.lightsalt2.com\/","name":"Future Investments","description":"Domestic travel, international travel","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/travel.lightsalt2.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"}]}},"_links":{"self":[{"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":5,"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":36,"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions\/36"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=\/wp\/v2\/media\/35"}],"wp:attachment":[{"href":"https:\/\/travel.lightsalt2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}