feat: 지역별 고등학교 나이스 연동, sitemap 생성 및 파비콘 설정 완료

This commit is contained in:
2026-10-15 12:13:23 +09:00
parent 0d230f56da
commit a827b8e127
91 changed files with 80110 additions and 50197 deletions
+170 -51
View File
@@ -8,6 +8,27 @@
</p>
</div>
<!-- 나이스(NEIS) 연동 관내 실제 고등학교 칩 영역 -->
<div v-if="nearbyHighSchools.length > 0" class="neis-schools-box">
<div class="neis-header">
<span class="neis-title">
<i class="fa-solid fa-school-flag text-blue-600 mr-1.5"></i>
<strong>{{ regionDong }} 인근 주요 고등학교 내신 대비 현황</strong>
</span>
<span class="neis-source">NEIS 학교정보 연동</span>
</div>
<div class="school-tags-wrap">
<div
v-for="school in nearbyHighSchools"
:key="school.code"
class="school-tag-pill"
>
<span class="school-tag-name">{{ school.name }}</span>
<span class="school-tag-type">{{ school.type }}</span>
</div>
</div>
</div>
<!-- 고등학생 타겟인 경우 -->
<div v-if="isHigh" class="schools-grid">
<div class="school-card">
@@ -94,6 +115,7 @@
<script setup>
import { computed } from 'vue'
import schoolsIndex from '../data/schools_index.json'
const props = defineProps({
regionDong: {
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
if (isMiddle.value) return '중학교'
return '초·중학교'
})
// 동네 기준 또는 구 기준 인근 고등학교 목록
const nearbyHighSchools = computed(() => {
const dong = props.regionDong || ''
const cleanDong = dong.trim()
// 1. 해당 동네에 직접 위치한 고등학교
if (schoolsIndex.byDong && schoolsIndex.byDong[cleanDong]) {
return schoolsIndex.byDong[cleanDong]
}
// 2. 부분 일치 검색 (예: '개포' -> '개포동')
for (const [d, list] of Object.entries(schoolsIndex.byDong || {})) {
if (d.includes(cleanDong) || cleanDong.includes(d)) {
return list
}
}
// 3. 동네에 고등학교가 없으면 관할 구/시 또는 인접 구의 학교 상위 6개
for (const [gu, list] of Object.entries(schoolsIndex.bySigungu || {})) {
if (cleanDong.includes(gu) || gu.includes(cleanDong)) {
return list.slice(0, 6)
}
}
// 4. 기본 샘플 학교
const allDongs = Object.keys(schoolsIndex.byDong || {})
if (allDongs.length > 0) {
return (schoolsIndex.byDong[allDongs[0]] || []).slice(0, 4)
}
return []
})
</script>
<style scoped>
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
.section-badge {
display: inline-block;
font-size: clamp(0.78rem, 2vw, 0.88rem);
font-size: 13px;
font-weight: 700;
color: var(--primary-color, #1e3a8a);
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
padding: 5px 12px;
color: #2563eb;
background-color: #eff6ff;
padding: 4px 14px;
border-radius: 9999px;
margin-bottom: 8px;
margin-bottom: 10px;
border: 1px solid #bfdbfe;
}
.section-title {
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
font-size: 26px;
font-weight: 800;
color: var(--text-color, #1e293b);
letter-spacing: -0.6px;
word-break: keep-all;
line-height: 1.35;
color: #0f172a;
letter-spacing: -0.02em;
margin-bottom: 10px;
}
.section-desc {
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
font-size: 15px;
color: #64748b;
margin-top: 8px;
word-break: keep-all;
max-width: 720px;
margin-left: auto;
margin-right: auto;
margin: 0 auto;
line-height: 1.6;
}
/* 나이스 고등학교 칩 영역 */
.neis-schools-box {
background: #f8fafc;
border: 1.5px solid #e2e8f0;
border-radius: 18px;
padding: 18px 22px;
margin-bottom: 28px;
}
.neis-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
}
.neis-title {
font-size: 14.5px;
color: #1e293b;
}
.neis-source {
font-size: 11.5px;
color: #64748b;
background: #ffffff;
padding: 3px 8px;
border-radius: 6px;
border: 1px solid #e2e8f0;
}
.school-tags-wrap {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.school-tag-pill {
display: inline-flex;
align-items: center;
gap: 6px;
background: #ffffff;
border: 1.5px solid #cbd5e1;
padding: 7px 14px;
border-radius: 999px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
}
.school-tag-pill:hover {
border-color: #2563eb;
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.12);
}
.school-tag-name {
font-size: 13.5px;
font-weight: 800;
color: #0f172a;
}
.school-tag-type {
font-size: 11px;
font-weight: 700;
color: #2563eb;
background: #eff6ff;
padding: 2px 6px;
border-radius: 4px;
}
.schools-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 18px;
gap: 20px;
}
.school-card {
background: var(--bg-card, #ffffff);
border: 1px solid var(--border-color, #e2e8f0);
border-radius: var(--card-radius, 14px);
padding: clamp(18px, 3.5vw, 26px);
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
position: relative;
background-color: #ffffff;
border: 1.5px solid #e2e8f0;
border-radius: 20px;
padding: 26px 24px;
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
}
.school-type-badge {
display: inline-block;
font-size: 0.75rem;
font-size: 12px;
font-weight: 700;
padding: 3px 8px;
border-radius: 4px;
margin-bottom: 10px;
}
.school-type-badge.middle {
background: #e0f2fe;
color: #0369a1;
padding: 4px 10px;
border-radius: 6px;
margin-bottom: 12px;
}
.school-type-badge.high {
background: #fef3c7;
color: #b45309;
background-color: #fef2f2;
color: #dc2626;
border: 1px solid #fecaca;
}
.school-type-badge.middle {
background-color: #ecfdf5;
color: #059669;
border: 1px solid #a7f3d0;
}
.school-type-badge.elem {
background: #f1f5f9;
color: #475569;
background-color: #fffbeb;
color: #d97706;
border: 1px solid #fde68a;
}
.school-name {
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
font-size: 18px;
font-weight: 800;
color: var(--text-color, #0f172a);
margin-bottom: 10px;
letter-spacing: -0.4px;
color: #0f172a;
margin-bottom: 12px;
}
.school-focus {
font-size: clamp(0.82rem, 2vw, 0.92rem);
line-height: 1.6;
font-size: 14px;
color: #334155;
margin-bottom: 14px;
padding-bottom: 12px;
border-bottom: 1px dashed var(--border-color, #e2e8f0);
word-break: keep-all;
line-height: 1.6;
margin-bottom: 16px;
}
.school-checklist {
list-style: none;
display: flex;
flex-direction: column;
gap: 8px;
padding: 0;
margin: 0;
border-top: 1px dashed #e2e8f0;
padding-top: 14px;
}
.school-checklist li {
font-size: clamp(0.8rem, 2vw, 0.9rem);
font-size: 13.5px;
color: #475569;
line-height: 1.5;
word-break: keep-all;
line-height: 1.7;
}
@media (max-width: 640px) {
+808
View File
@@ -0,0 +1,808 @@
[
{
"code": "7430324",
"name": "계룡디지텍고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "삼성동",
"address": "대전광역시 동구 소랑길 64",
"detailAddress": "(삼성동)",
"type": "특성화고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://krdhs.djsch.kr"
},
{
"code": "7430046",
"name": "남대전고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "대사동",
"address": "대전광역시 중구 보문로111번길 63",
"detailAddress": "(대사동, 남대전고등학교)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://ndjhs.djsch.kr/"
},
{
"code": "7430030",
"name": "대덕고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "도룡동",
"address": "대전광역시 유성구 대덕대로556번길 158",
"detailAddress": "(도룡동, 대덕고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://daedeokhs.djsch.kr/"
},
{
"code": "7430310",
"name": "대덕소프트웨어마이스터고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "장동",
"address": "대전광역시 유성구 가정북로 76",
"detailAddress": "(장동, 대덕소프트웨어마이스터고등학교)",
"type": "특목고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://dsmhs.djsch.kr"
},
{
"code": "7430241",
"name": "대전가오고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "가오동",
"address": "대전광역시 동구 신기로 71",
"detailAddress": "(가오동, 대전가오고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://gaohs.djsch.kr"
},
{
"code": "7430031",
"name": "대전고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "대흥동",
"address": "대전광역시 중구 대흥로 110",
"detailAddress": "(대흥동, 대전고등학교)",
"type": "자율고",
"coedu": "남",
"foundation": "공립",
"homepage": "djhs.djsch.kr"
},
{
"code": "7430032",
"name": "대전과학고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "구성동",
"address": "대전광역시 유성구 과학로 46",
"detailAddress": "(구성동, 과학고등학교)",
"type": "특목고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://djshs.djsch.kr"
},
{
"code": "7430033",
"name": "대전관저고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "관저동",
"address": "대전광역시 서구 관저북로 94",
"detailAddress": ", 대전관저고등학교 (관저동, 관저고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://gjhs.djsch.kr"
},
{
"code": "7430237",
"name": "대전괴정고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "괴정동",
"address": "대전광역시 서구 가장로 15",
"detailAddress": "(괴정동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://goejeonghs.djsch.kr"
},
{
"code": "7430150",
"name": "대전구봉고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "관저동",
"address": "대전광역시 서구 관저서로 36",
"detailAddress": ", 대전구봉고등학교 (관저동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://gubonghs.djsch.kr/"
},
{
"code": "7430252",
"name": "대전국제통상고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "문화동",
"address": "대전광역시 중구 서문로 47",
"detailAddress": "(문화동, 대전국제통상고등학교)",
"type": "특성화고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://dimhs.djsch.kr"
},
{
"code": "7430143",
"name": "대전노은고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "노은동",
"address": "대전광역시 유성구 노은동로 99",
"detailAddress": ", 55 (노은동)",
"type": "자율고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://noeunhs.djsch.kr"
},
{
"code": "7430325",
"name": "대전대성고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "목동",
"address": "대전광역시 중구 목동로 23",
"detailAddress": "(목동)",
"type": "자율고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://daeseong.hs.kr/"
},
{
"code": "7430326",
"name": "대전대성여자고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "가양동",
"address": "대전광역시 동구 대성2길 20",
"detailAddress": "(가양동)",
"type": "특성화고",
"coedu": "여",
"foundation": "사립",
"homepage": "http://dsghs.djsch.kr"
},
{
"code": "7430048",
"name": "대전대신고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "복수동",
"address": "대전광역시 서구 오량1길 98",
"detailAddress": "(복수동, 대전대신중·고등학교)",
"type": "자율고",
"coedu": "남",
"foundation": "사립",
"homepage": "dshs.kr"
},
{
"code": "7430351",
"name": "대전도시과학고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "원내동",
"address": "대전광역시 유성구 진잠로42번길 35",
"detailAddress": "(원내동, 대전도시과학고등학교)",
"type": "특성화고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "https://dushs.djsch.kr"
},
{
"code": "7430290",
"name": "대전도안고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "원신흥동",
"address": "대전광역시 유성구 원신흥남로 51",
"detailAddress": "(원신흥동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://doanhs.djsch.kr"
},
{
"code": "7430049",
"name": "대전동산고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "문화동",
"address": "대전광역시 중구 문화로 183",
"detailAddress": "(문화동, 대전동산중고등학교)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://djdongsanhs.djsch.kr"
},
{
"code": "7430295",
"name": "대���동신과학고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "비룡동",
"address": "대전광역시 동구 옥천로 423",
"detailAddress": "(비룡동, 대전동신과학고등학교)",
"type": "특목고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://ddsciencehs.djsch.kr"
},
{
"code": "7430034",
"name": "대전둔산여자고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "갈마동",
"address": "대전광역시 서구 갈마역로 33",
"detailAddress": "(갈마동, 대전둔산여자고등학교)",
"type": "일반고",
"coedu": "여",
"foundation": "공립",
"homepage": "http://djdunsan-ghs.djsch.kr"
},
{
"code": "7430142",
"name": "대전둔원고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "갈마동",
"address": "대전광역시 서구 대덕대로 101",
"detailAddress": "(갈마동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://dunwonhs.djsch.kr"
},
{
"code": "7430035",
"name": "대전만년고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "만년동",
"address": "대전광역시 서구 만년로 6",
"detailAddress": "(만년동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://mannyonhs.djsch.kr"
},
{
"code": "7430238",
"name": "대전반석고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "지족동",
"address": "대전광역시 유성구 지족로 332",
"detailAddress": ", 대전반석고등학교 (지족동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://banseokhs.djsch.kr"
},
{
"code": "7430253",
"name": "대전복수고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "복수동",
"address": "대전광역시 서구 혜천로 66",
"detailAddress": ", 대전복수고등학교 (복수동, 복수고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://boksuhs.djsch.kr"
},
{
"code": "7430329",
"name": "대전생활과학고등학교",
"region": "대전광역시",
"sigungu": "대덕구",
"dong": "오정동",
"address": "대전광역시 대덕구 동산초교로63번길 12",
"detailAddress": "(오정동)",
"type": "특성화고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://djpshs.djsch.kr"
},
{
"code": "7430051",
"name": "대전성모여자고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "대흥동",
"address": "대전광역시 중구 대흥로 62",
"detailAddress": "(대흥동)",
"type": "일반고",
"coedu": "여",
"foundation": "사립",
"homepage": "http://seongmohs.djsch.kr"
},
{
"code": "7430132",
"name": "대전송촌고등학교",
"region": "대전광역시",
"sigungu": "대덕구",
"dong": "송촌동",
"address": "대전광역시 대덕구 선비마을로23번길 11",
"detailAddress": "(송촌동,대전송촌고등학교)",
"type": "자율고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://songchonhs.djsch.kr"
},
{
"code": "7430133",
"name": "대전신일여자고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "부사동",
"address": "대전광역시 중구 부사로 48",
"detailAddress": "(부사동, 대전신일여자고등학교)",
"type": "특성화고",
"coedu": "여",
"foundation": "사립",
"homepage": "http://shinilhs.djsch.kr"
},
{
"code": "7430036",
"name": "대전여자고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "대동",
"address": "대전광역시 동구 용운로1번길 28-37",
"detailAddress": ", 대전여자고등학교 (대동)",
"type": "자율고",
"coedu": "여",
"foundation": "공립",
"homepage": "http://djghs.djsch.kr"
},
{
"code": "7430083",
"name": "대전여자상업고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "선화동",
"address": "대전광역시 중구 대종로550번길 31",
"detailAddress": "(선화동, 대전여자상업고등학교)",
"type": "특성화고",
"coedu": "여",
"foundation": "사립",
"homepage": "aramhs.djsch.kr"
},
{
"code": "7430053",
"name": "대전예술고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "상대동",
"address": "대전광역시 유성구 월드컵대로308번길 33",
"detailAddress": "(상대동,대전예술고등학교)",
"type": "��반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://daejeonartshs.djsch.kr/"
},
{
"code": "7430037",
"name": "대전외국어고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "내동",
"address": "대전광역시 서구 신갈마로 19",
"detailAddress": "(내동)",
"type": "특목고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://djflhs.djsch.kr"
},
{
"code": "7430239",
"name": "대전용산고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "용산동",
"address": "대전광역시 유성구 용산2로 2-16",
"detailAddress": "(용산동, 대전용산고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://dyshs.djsch.kr"
},
{
"code": "7430240",
"name": "대전이문고등학교",
"region": "대전광역시",
"sigungu": "대덕구",
"dong": "석봉동",
"address": "대전광역시 대덕구 석봉로 15",
"detailAddress": "(석봉동,대전이문고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://imunhs.djsch.kr"
},
{
"code": "7430148",
"name": "대전전민고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "전민동",
"address": "대전광역시 유성구 전민로 63",
"detailAddress": "(전민동, 대전전민고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://jeonminhs.djsch.kr"
},
{
"code": "7430311",
"name": "대전전자디자인고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "화암동",
"address": "대전광역시 유성구 대덕대로 939",
"detailAddress": "(화암동, 대전전자디자인고등학교)",
"type": "특성화고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://djedhs.djsch.kr"
},
{
"code": "7430242",
"name": "대전제일고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "도마동",
"address": "대전광역시 서구 배재로46번길 77",
"detailAddress": "(도마동, 대전제일고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "jeilhs.djsch.kr"
},
{
"code": "7430052",
"name": "대전중앙고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "중촌동",
"address": "대전광역시 중구 대종로 634",
"detailAddress": "(중촌동, 대전중앙중.고등학교)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://djjahs.djsch.kr"
},
{
"code": "7430149",
"name": "대전지족고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "지족동",
"address": "대전광역시 유성구 노은서로 202",
"detailAddress": "(지족동, 지족고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://jijokhs.djsch.kr"
},
{
"code": "7430038",
"name": "대전체육고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "원신흥동",
"address": "대전광역시 유성구 원신흥로40번길 6",
"detailAddress": "(원신흥동, 대전체육중고등학교)",
"type": "특목고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "djcheyukhs.djsch.kr"
},
{
"code": "7430138",
"name": "대전한빛고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "안영동",
"address": "대전광역시 중구 대둔산로 119-37",
"detailAddress": "(안영동,대전한빛고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://hanviths.djsch.kr"
},
{
"code": "7430039",
"name": "동대전고등학교",
"region": "대전광역시",
"sigungu": "대덕구",
"dong": "중리동",
"address": "대전광역시 대덕구 청림길 33",
"detailAddress": "(중리동, 동대전고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://ddjhs.djsch.kr"
},
{
"code": "7430244",
"name": "동방고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "관저동",
"address": "대전광역시 서구 계백로 1106",
"detailAddress": "(관저동, 동방고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://dbhs.djsch.kr"
},
{
"code": "7430256",
"name": "동아마이스터고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "자양동",
"address": "대전광역시 동구 충정로 97",
"detailAddress": ", 동아마이스터고등학교 (자양동)",
"type": "특목고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://dongahs.djsch.kr"
},
{
"code": "7430056",
"name": "명석고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "가양동",
"address": "대전광역시 동구 우암로 380",
"detailAddress": ", 명석고등학교 (가양동)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://mshs.djsch.kr/"
},
{
"code": "7430057",
"name": "보문고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "삼성동",
"address": "대전광역시 동구 우암로 57",
"detailAddress": ", 보문고등학교 (삼성동, 보문고등학교,보문중학교)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://bomoonhs.djsch.kr"
},
{
"code": "7430059",
"name": "서대전고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "월평동",
"address": "대전광역시 서구 월평동로 60",
"detailAddress": "(월평동, 서대전고등학교)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://sdjhs.djsch.kr"
},
{
"code": "7430060",
"name": "서대전여자고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "도마동",
"address": "대전광역시 서구 배재로197번길 20",
"detailAddress": "(도마동, 서대전여자고등학교)",
"type": "일반고",
"coedu": "여",
"foundation": "사립",
"homepage": "http://seodaejeonhs.djsch.kr"
},
{
"code": "7430061",
"name": "서일고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "관저동",
"address": "대전광역시 서구 계백로828번길 30",
"detailAddress": "(관저동)",
"type": "일반고",
"coedu": "남",
"foundation": "사립",
"homepage": "http://seoilhs.djsch.kr"
},
{
"code": "7430062",
"name": "서일여자고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "관저동",
"address": "대전광역시 서구 구봉산북로 22",
"detailAddress": "(관저동, 서일여자고등학교)",
"type": "일반고",
"coedu": "여",
"foundation": "사립",
"homepage": "https://seoil-ghs.djsch.kr/"
},
{
"code": "7430041",
"name": "신탄진고등학교",
"region": "대전광역시",
"sigungu": "대덕구",
"dong": "신탄진동",
"address": "대전광역시 대덕구 신탄진북로 14",
"detailAddress": "(신탄진동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://shintanjinhs.djsch.kr"
},
{
"code": "7430140",
"name": "우송고등학교",
"region": "대전광역시",
"sigungu": "동구",
"dong": "자양동",
"address": "대전광역시 동구 동대전로131번길 53",
"detailAddress": ", 우송고등학교 (자양동)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://wshs.djsch.kr"
},
{
"code": "7430042",
"name": "유성고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "구암동",
"address": "대전광역시 유성구 유성대로654번길 130",
"detailAddress": "(구암동,유성고등학교)",
"type": "일반고",
"coedu": "남",
"foundation": "공립",
"homepage": "http://yshs.djsch.kr"
},
{
"code": "7430135",
"name": "유성생명과학고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "구암동",
"address": "대전광역시 유성구 월드컵대로 270",
"detailAddress": "(구암동,유성생명과학고등학교)",
"type": "특성화고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://ysbsths.djsch.kr/"
},
{
"code": "7430064",
"name": "유성여자고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "죽동",
"address": "대전광역시 유성구 은구비로138번길 70",
"detailAddress": ", 유성여자고등학교 (죽동)",
"type": "일반고",
"coedu": "여",
"foundation": "사립",
"homepage": "http://yuseongghs.djsch.kr"
},
{
"code": "7430065",
"name": "중일고등학교",
"region": "대전광역시",
"sigungu": "유성구",
"dong": "관평동",
"address": "대전 유성구 배울2로 68",
"detailAddress": "(관평동,중일고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "사립",
"homepage": "http://jungilhs.djsch.kr"
},
{
"code": "7430066",
"name": "청란여자고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "부사동",
"address": "대전광역시 중구 보문로95번길 40",
"detailAddress": ", 청란여자고등학교 (부사동)",
"type": "일반고",
"coedu": "여",
"foundation": "사립",
"homepage": "https://chranhs.djsch.kr"
},
{
"code": "7430043",
"name": "충남고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "둔산동",
"address": "대전광역시 서구 문정로 171",
"detailAddress": "(둔산동,충남고등학교)",
"type": "자율고",
"coedu": "남",
"foundation": "공립",
"homepage": "http://chungnamhs.djsch.kr"
},
{
"code": "7430073",
"name": "충남기계공업고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "문화동",
"address": "대전광역시 중구 산성로 154",
"detailAddress": "(문화동)",
"type": "특성화고",
"coedu": "남",
"foundation": "공립",
"homepage": "http://chungnam-mhhs.djsch.kr/"
},
{
"code": "7430044",
"name": "충남여자고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "목동",
"address": "대전광역시 중구 선화로43번길 77",
"detailAddress": "(목동,충남여자고등학교)",
"type": "일반고",
"coedu": "여",
"foundation": "공립",
"homepage": "http://cnghs.djsch.kr"
},
{
"code": "7430045",
"name": "한밭고등학교",
"region": "대전광역시",
"sigungu": "서구",
"dong": "갈마동",
"address": "대전광역시 서구 신갈마로141번길 58",
"detailAddress": "(갈마동, 한밭고등학교)",
"type": "일반고",
"coedu": "남여공학",
"foundation": "공립",
"homepage": "http://hanbaths.djsch.kr"
},
{
"code": "7430067",
"name": "호수돈여자고등학교",
"region": "대전광역시",
"sigungu": "중구",
"dong": "용두동",
"address": "대전광역시 중구 선화로 50",
"detailAddress": "(용두동,호수돈여자중.고등학교)",
"type": "일반고",
"coedu": "여",
"foundation": "사립",
"homepage": "http://holstonhs.djsch.kr"
}
]
+339 -7279
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+7 -3
View File
@@ -22,7 +22,7 @@ export default defineNuxtConfig({
public: {
siteName: '쌤인증',
siteDomain: process.env.SITE_DOMAIN || 'https://soohyun.xyz',
naverVerificationKey: process.env.NAVER_VERIFICATION_KEY || 'naver_search_advisor_key_site7'
naverVerificationKey: process.env.NAVER_VERIFICATION_KEY || 'd40ee8cd61dab827dcbd7080e54b095339c44222'
}
},
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
lang: 'ko'
},
link: [
{ rel: 'icon', type: 'image/png', href: '/favicon.ico' },
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
{ rel: 'shortcut icon', href: '/favicon.ico' },
{ rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon-32x32.png' },
{ rel: 'icon', type: 'image/png', sizes: '16x16', href: '/favicon-16x16.png' },
{ rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' },
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
@@ -47,7 +51,7 @@ export default defineNuxtConfig({
{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0' },
{ name: 'format-detection', content: 'telephone=no' },
// 네이버 서치어드바이저 사이트 소유확인 키 메타태그
{ name: 'naver-site-verification', content: process.env.NAVER_VERIFICATION_KEY || 'naver_search_advisor_key_site7' }
{ name: 'naver-site-verification', content: process.env.NAVER_VERIFICATION_KEY || 'd40ee8cd61dab827dcbd7080e54b095339c44222' }
]
}
}
+1 -14
View File
@@ -392,20 +392,6 @@
</div>
</section>
<!-- 하단 직통 전화 문의 & 상담 안내 섹션 -->
<section class="mt-8 mx-4 sm:mx-6 max-w-4xl md:mx-auto p-6 sm:p-8 rounded-3xl bg-white border border-slate-200 text-center shadow-sm">
<div class="inline-flex items-center gap-2 px-3 py-1 bg-red-50 text-red-600 font-bold text-xs rounded-full mb-3">
<i class="fa-solid fa-headset"></i> 실시간 전화 상담 센터
</div>
<h3 class="text-xl sm:text-2xl font-extrabold text-slate-900 mb-2">
문의 번호 : <a href="tel:010-5961-5807" class="text-red-600 hover:underline">010-5961-5807</a>
</h3>
<p class="text-xs sm:text-sm font-medium text-slate-600 max-w-lg mx-auto leading-relaxed">
📢 <strong>안내:</strong> 전화 상담 시 <strong>상담결과를 전달해 주시면</strong> 학생에게 가장 적합한 전담 선생님 배정과 맞춤 커리큘럼 조율이 훨씬 원활하고 신속하게 진행됩니다.
</p>
</section>
</main>
<!-- 하단 모바일 고정 CTA 바 -->
@@ -551,6 +537,7 @@ async function handleSubmit() {
useHead({
title: `${siteName} | 의대·자사고 1등급 초격차 1:1 맞춤과외`,
meta: [
{ name: 'naver-site-verification', content: 'd40ee8cd61dab827dcbd7080e54b095339c44222' },
{ name: 'description', content: `${siteName} - 최상위 1% 도약을 위한 킬러 문항 정복 및 특목·자사고 전과목 올 1등급 마스터 과외.` },
{ property: 'og:title', content: `${siteName} | 전과목 올 1등급 초격차 마스터` },
{ property: 'og:description', content: '의대·자사고 목표! 킬러 문항 5단계 해체 및 최상위 1타 강사진 무료 매칭.' },
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because it is too large Load Diff
+11 -4
View File
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
}
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
export function getShortRegionName(sido: string, dong: string): string {
const shortSido = getShortSido(sido)
return `${shortSido} ${dong || ''}`.trim()
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
const meta = regionsData as any
const prefix = meta.keywordPrefix !== undefined ? meta.keywordPrefix : `${getShortSido(sido)} `
if (prefix === '') {
// 서울 (예: 강남구 개포동)
return `${sigungu ? sigungu + ' ' : ''}${dong || ''}`.trim()
}
// 경기, 인천, 광주, 부산, 대구, 대전 (예: 경기 수원 영통동, 대구 수성구 범어동)
return `${prefix}${sigungu ? sigungu + ' ' : ''}${dong || ''}`.trim()
} ${dong || ''}`.trim()
}
// 지능형 URL 슬러그 파서
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
else detectedTerm = '1:1 맞춤과외'
const shortSido = getShortSido(matchedRegion.sido)
const shortRegionName = `${shortSido} ${matchedRegion.dong}`.trim()
const shortRegionName = getShortRegionName(matchedRegion.sido, matchedRegion.dong, matchedRegion.sigungu)
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
return {