feat: 지역별 고등학교 나이스 연동, sitemap 생성 및 파비콘 설정 완료
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
|
|||||||
lang: 'ko'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
||||||
|
|||||||
@@ -398,20 +398,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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-blue-50 text-blue-700 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-blue-700 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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
|
|||||||
lang: 'ko'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
||||||
|
|||||||
@@ -396,20 +396,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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-emerald-50 text-emerald-700 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-emerald-700 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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
|
|||||||
lang: 'ko'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
||||||
|
|||||||
@@ -396,20 +396,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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-sky-50 text-sky-700 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-sky-700 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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -0,0 +1,925 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"code": "7140327",
|
||||||
|
"name": "고려고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "삼각동",
|
||||||
|
"address": "전남광주통합특별시 북구 설죽로 369",
|
||||||
|
"detailAddress": "(삼각동) 고려고등학교",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://korea.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140328",
|
||||||
|
"name": "광덕고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "화정동",
|
||||||
|
"address": "전남광주통합특별시 서구 화정로 202",
|
||||||
|
"detailAddress": "(화정동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://gwangdeok.jge.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140329",
|
||||||
|
"name": "광일고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "임곡동",
|
||||||
|
"address": "전남광주통합특별시 광산구 고봉로 812",
|
||||||
|
"detailAddress": ", (임곡동, 광일고등학교) (임곡동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://kwangil.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140330",
|
||||||
|
"name": "광주경신여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "용봉동",
|
||||||
|
"address": "전남광주통합특별시 북구 금호로40번길 40",
|
||||||
|
"detailAddress": "(용봉동, 경신여고)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://gshin.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140319",
|
||||||
|
"name": "광주고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "동구",
|
||||||
|
"dong": "계림동",
|
||||||
|
"address": "전남광주통합특별시 동구 중앙로 302",
|
||||||
|
"detailAddress": "(계림동)",
|
||||||
|
"type": "자율고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://gwangju.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140373",
|
||||||
|
"name": "광주공업고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "매곡동",
|
||||||
|
"address": "전남광주통합특별시 북구 설죽로315번길 14",
|
||||||
|
"detailAddress": ", 광주공업고등학교 (매곡동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://gt.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140320",
|
||||||
|
"name": "광주과학고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "오룡동",
|
||||||
|
"address": "전남광주통합특별시 북구 첨단과기로 215",
|
||||||
|
"detailAddress": "(오룡동)",
|
||||||
|
"type": "특목고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://www.gsa.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140331",
|
||||||
|
"name": "광주대동고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "매월동",
|
||||||
|
"address": "전남광주통합특별시 서구 전평길 50",
|
||||||
|
"detailAddress": ", (매월동, 광주대동고등학교) ",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://k-dd.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140368",
|
||||||
|
"name": "광주동성고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "진월동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로627번길 20",
|
||||||
|
"detailAddress": ", 광주동성고등학교 (진월동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "Gwangjudongsung.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140332",
|
||||||
|
"name": "광주동신고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "풍향동",
|
||||||
|
"address": "전남광주통합특별시 북구 동문대로 50",
|
||||||
|
"detailAddress": ", 광주동신고등학교 (풍향동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://kds.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140333",
|
||||||
|
"name": "광주동신여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "풍향동",
|
||||||
|
"address": "전남광주통합특별시 북구 동문대로 50",
|
||||||
|
"detailAddress": "(풍향동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://kdsg.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140334",
|
||||||
|
"name": "광주서석고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "화정동",
|
||||||
|
"address": "전남광주통합특별시 서구 화정로253번길 27",
|
||||||
|
"detailAddress": ", 광주서석고등학교 (화정동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://seoseok.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140335",
|
||||||
|
"name": "광주석산고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "백운동",
|
||||||
|
"address": "전남광주통합특별시 남구 백운로26번길 20",
|
||||||
|
"detailAddress": "(백운동,석산고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://seoksan.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140392",
|
||||||
|
"name": "광주소프트웨어마이스터고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "송정동",
|
||||||
|
"address": "전남광주통합특별시 광산구 상무대로 312",
|
||||||
|
"detailAddress": "(송정동)",
|
||||||
|
"type": "특목고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://gsm.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140336",
|
||||||
|
"name": "광주수피아여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "양림동",
|
||||||
|
"address": "전남광주통합특별시 남구 백서로 13",
|
||||||
|
"detailAddress": ", (양림동, 광주수피아여고) ",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://speer.jge.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140337",
|
||||||
|
"name": "광주숭일고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "일곡동",
|
||||||
|
"address": "전남광주통합특별시 북구 모룡대길 40",
|
||||||
|
"detailAddress": ", 광주숭일고등학교 (일곡동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://soongil.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140321",
|
||||||
|
"name": "광주여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "화정동",
|
||||||
|
"address": "전남광주통합특별시 서구 상무대로1014번길 43",
|
||||||
|
"detailAddress": ", 광주여자고등학교 (화정동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://kwangju-g.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140359",
|
||||||
|
"name": "광주여자상업고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "진월동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로627번길 20",
|
||||||
|
"detailAddress": ", 광주여자상업고등학교 (진월동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://ggc.jge.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140322",
|
||||||
|
"name": "광주예술고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "매곡동",
|
||||||
|
"address": "전남광주통합특별시 북구 서하로 72",
|
||||||
|
"detailAddress": "(매곡동)",
|
||||||
|
"type": "특목고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "kj-art.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140338",
|
||||||
|
"name": "광주인성고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "송하동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로 390",
|
||||||
|
"detailAddress": ", 광주인성고등학교 (송하동 4-15)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://inseong.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140396",
|
||||||
|
"name": "광주자동화설비마이스터고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "우산동",
|
||||||
|
"address": "전남광주통합특별시 광산구 사암로92번길",
|
||||||
|
"detailAddress": ", 136-26 (우산동)",
|
||||||
|
"type": "특목고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://gat.jge.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140369",
|
||||||
|
"name": "광주자연과학고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "오치동",
|
||||||
|
"address": "전남광주통합특별시 북구 능안로 30",
|
||||||
|
"detailAddress": "(오치동,광주자연과학고등학교)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://kns.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140357",
|
||||||
|
"name": "광주전자공업고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "월계동",
|
||||||
|
"address": "전남광주통합특별시 광산구 첨단중앙로 7",
|
||||||
|
"detailAddress": "(월계동, 광주전자공업고등학교)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://get.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140323",
|
||||||
|
"name": "광주제일고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "누문동",
|
||||||
|
"address": "전남광주통합특별시 북구 독립로237번길 33",
|
||||||
|
"detailAddress": ", 144 (누문동)",
|
||||||
|
"type": "자율고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://ilgo.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140339",
|
||||||
|
"name": "광주진흥고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "신창동",
|
||||||
|
"address": "전남광주통합특별시 광산구 왕버들로 307",
|
||||||
|
"detailAddress": ", 광주진흥고등학교 (신창동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://jinheung.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140324",
|
||||||
|
"name": "광주체육고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "운암동",
|
||||||
|
"address": "전남광주통합특별시 북구 하서로 55",
|
||||||
|
"detailAddress": "(운암동184번지)",
|
||||||
|
"type": "특목고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://gwangju-p.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140391",
|
||||||
|
"name": "광주푸른꿈창작학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "주월동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로749번길 12",
|
||||||
|
"detailAddress": "(주월동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "기타",
|
||||||
|
"homepage": "http://ypureunkkum.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140340",
|
||||||
|
"name": "국제고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "삼각동",
|
||||||
|
"address": "전남광주통합특별시 북구 설죽로 433",
|
||||||
|
"detailAddress": "(삼각동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://kukje.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140360",
|
||||||
|
"name": "금파공업고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "운암동",
|
||||||
|
"address": "전남광주통합특별시 북구 금호로 80",
|
||||||
|
"detailAddress": ", 금파공업고등학교 (운암동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "https://kumpa.jge.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140341",
|
||||||
|
"name": "금호고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "운암동",
|
||||||
|
"address": "전남광주통합특별시 북구 금호로 100",
|
||||||
|
"detailAddress": "(운암동, 금호고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "kumho.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140389",
|
||||||
|
"name": "금호중앙여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "운암동",
|
||||||
|
"address": "전남광주통합특별시 북구 금호로 100",
|
||||||
|
"detailAddress": "(운암동, 금호중앙여자고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "k-ja.jge.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140342",
|
||||||
|
"name": "대광여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "주월동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로 742번길 13",
|
||||||
|
"detailAddress": ", (주월동, 대광여고) ",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "daegwang.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140343",
|
||||||
|
"name": "대성여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "진월동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로663번길 37",
|
||||||
|
"detailAddress": ", 대성여자고등학교 (진월동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://daesung.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140382",
|
||||||
|
"name": "돈보스코학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로749번마길 12",
|
||||||
|
"detailAddress": "돈보스코학교",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "기타",
|
||||||
|
"homepage": "http://www.db.sc.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140370",
|
||||||
|
"name": "동명고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "서봉동",
|
||||||
|
"address": "전남광주통합특별시 광산구 사이동길 16",
|
||||||
|
"detailAddress": "(서봉동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://kdm.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140344",
|
||||||
|
"name": "동아여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "봉선동",
|
||||||
|
"address": "전남광주통합특별시 남구 오방로 16-10",
|
||||||
|
"detailAddress": "(봉선동,동아여자고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://donga.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140390",
|
||||||
|
"name": "동일미래과학고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "방림동",
|
||||||
|
"address": "전남광주통합특별시 남구 천변좌로 604",
|
||||||
|
"detailAddress": ", 번길 12 (방림동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://k-dongil.jge.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140388",
|
||||||
|
"name": "명진고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "수완동",
|
||||||
|
"address": "전남광주통합특별시 광산구 수완로12번길 21",
|
||||||
|
"detailAddress": ", 명진고등학교 (수완동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://gmj.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140345",
|
||||||
|
"name": "문성고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "봉선동",
|
||||||
|
"address": "전남광주통합특별시 남구 제석로 73",
|
||||||
|
"detailAddress": ", (봉선동, 문성고등학교) ",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://munseong.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140379",
|
||||||
|
"name": "문정여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "오치동",
|
||||||
|
"address": "전남광주통합특별시 북구 능안로30번길 33",
|
||||||
|
"detailAddress": ", 문정여자고등학교 (오치동, 5-12)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://munjeong.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140375",
|
||||||
|
"name": "보문고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "운수동",
|
||||||
|
"address": "전남광주통합특별시 광산구 어등대로529번길 37",
|
||||||
|
"detailAddress": "(운수동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "bomun.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140394",
|
||||||
|
"name": "비아고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "월계동",
|
||||||
|
"address": "전남광주통합특별시 광산구 첨단중앙로181번길 42-26",
|
||||||
|
"detailAddress": "(월계동, 비아고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://bia.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140383",
|
||||||
|
"name": "빛고을고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "신용동",
|
||||||
|
"address": "전남광주통합특별시 북구 첨단연신로133번길 16",
|
||||||
|
"detailAddress": "(신용동, 빛고을고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "bitgoeul.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140346",
|
||||||
|
"name": "살레시오고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "일곡동",
|
||||||
|
"address": "전남광주통합특별시 북구 모룡대길 67",
|
||||||
|
"detailAddress": "(일곡동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://salesio.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140347",
|
||||||
|
"name": "살레시오여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "동구",
|
||||||
|
"dong": "지산동",
|
||||||
|
"address": "전남광주통합특별시 동구 필문대로273번길 21",
|
||||||
|
"detailAddress": ", (지산동, 살레시오여자고등학교) (지산동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://salesio-g.gen.hs.kr/main/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140371",
|
||||||
|
"name": "상무고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "쌍촌동",
|
||||||
|
"address": "전남광주통합특별시 서구 상무민주로32번길 28",
|
||||||
|
"detailAddress": "(쌍촌동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://sangmu.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140378",
|
||||||
|
"name": "상일여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "쌍촌동",
|
||||||
|
"address": "전남광주통합특별시 서구 내방로 217",
|
||||||
|
"detailAddress": "(쌍촌동)",
|
||||||
|
"type": "자율고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://sangil.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140384",
|
||||||
|
"name": "새날학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "삼도동",
|
||||||
|
"address": "전남광주통합특별시 광산구 평동로 29",
|
||||||
|
"detailAddress": "(삼도동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "기타",
|
||||||
|
"homepage": "http://"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140348",
|
||||||
|
"name": "서강고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "운암동",
|
||||||
|
"address": "전남광주통합특별시 북구 서강로 1",
|
||||||
|
"detailAddress": ", 서강고등학교 (운암동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://seokang.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140376",
|
||||||
|
"name": "서진여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "주월동",
|
||||||
|
"address": "전남광주통합특별시 남구 서문대로742번길 20",
|
||||||
|
"detailAddress": "(주월동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://seojin.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140352",
|
||||||
|
"name": "설월여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "방림동",
|
||||||
|
"address": "전남광주통합특별시 남구 천변좌로604번길 12",
|
||||||
|
"detailAddress": ", 설월여자고등학교 (방림동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "https://seolwol.gen.hs.kr:453"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140386",
|
||||||
|
"name": "성덕고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "장덕동",
|
||||||
|
"address": "전남광주통합특별시 광산구 장덕로 75",
|
||||||
|
"detailAddress": "(장덕동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://seongdeok.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140349",
|
||||||
|
"name": "송원고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "송하동",
|
||||||
|
"address": "전남광주통합특별시 남구 송암로 73",
|
||||||
|
"detailAddress": "(송하동, 송원고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "songwon.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140399",
|
||||||
|
"name": "송원미래인재고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "송하동",
|
||||||
|
"address": "전남광주통합특별시 남구 송암로 73",
|
||||||
|
"detailAddress": ", 송원여자상업고등학교 (송하동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "songwon-gc.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140350",
|
||||||
|
"name": "송원여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "송하동",
|
||||||
|
"address": "전남광주통합특별시 남구 송암로 73",
|
||||||
|
"detailAddress": ", (송하동, 송원여자고등학교) (송하동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "songwon-g.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140381",
|
||||||
|
"name": "수완고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "수완동",
|
||||||
|
"address": "전남광주통합특별시 광산구 장덕로 155",
|
||||||
|
"detailAddress": ", 수완고등학교 (수완동)",
|
||||||
|
"type": "자율고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://suwan.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140351",
|
||||||
|
"name": "숭덕고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "월계동",
|
||||||
|
"address": "전남광주통합특별시 광산구 월계로 117-8",
|
||||||
|
"detailAddress": "(월계동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://sdok.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140393",
|
||||||
|
"name": "숭의과학기술고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "방림동",
|
||||||
|
"address": "전남광주통합특별시 남구 오방로 34-13",
|
||||||
|
"detailAddress": "(방림동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://sst.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140374",
|
||||||
|
"name": "운남고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "운남동",
|
||||||
|
"address": "전남광주통합특별시 광산구 임방울대로165번길 17",
|
||||||
|
"detailAddress": ", 운남고등학교 (운남동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://unnam.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140380",
|
||||||
|
"name": "장덕고등학교",
|
||||||
|
"region": "전남광주통합특���시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "장덕동",
|
||||||
|
"address": "전남광주통합특별시 광산구 수등로 45",
|
||||||
|
"detailAddress": "(장덕동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://jangdeok.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140325",
|
||||||
|
"name": "전남고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "치평동",
|
||||||
|
"address": "전남광주통합특별시 서구 상무공원로 32",
|
||||||
|
"detailAddress": "(치평동)",
|
||||||
|
"type": "자율고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://jeonnam.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140358",
|
||||||
|
"name": "전남공업고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "신창동",
|
||||||
|
"address": "전남광주통합특별시 광산구 왕버들로322번길 26",
|
||||||
|
"detailAddress": "(신창동)",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://kiram.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7380029",
|
||||||
|
"name": "전남대학교사범대학부설고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "용봉동",
|
||||||
|
"address": "전남광주통합특별시 북구 용봉로 45",
|
||||||
|
"detailAddress": "(용봉동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "국립",
|
||||||
|
"homepage": "http://bugo.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140326",
|
||||||
|
"name": "전남여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "동구",
|
||||||
|
"dong": "장동",
|
||||||
|
"address": "전남광주통합특별시 동구 제봉로158번길 8",
|
||||||
|
"detailAddress": "(장동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://chonnam-g.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140361",
|
||||||
|
"name": "전남여자상업고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "북구",
|
||||||
|
"dong": "삼각동",
|
||||||
|
"address": "전남광주통합특별시 북구 설죽로 433",
|
||||||
|
"detailAddress": ", (삼각동, 전남여자상업고등학교) ",
|
||||||
|
"type": "특성화고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://cgch.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140353",
|
||||||
|
"name": "정광고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "소촌동",
|
||||||
|
"address": "전남광주통합특별시 광산구 소촌로 90-36",
|
||||||
|
"detailAddress": "(소촌동, 정광고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://jg.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140354",
|
||||||
|
"name": "조선대학교부속고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "동구",
|
||||||
|
"dong": "학동",
|
||||||
|
"address": "전남광주통합특별시 동구 의재로33번길 33",
|
||||||
|
"detailAddress": ", (학동, 조선대학교부속고등학교) (학동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://chosun.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140355",
|
||||||
|
"name": "조선대학교여자고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "동구",
|
||||||
|
"dong": "지산동",
|
||||||
|
"address": "전남광주통합특별시 동구 지산로 36",
|
||||||
|
"detailAddress": ", 조선대학교여자고등학교 (지산동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "여",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://chosun-g.gen.hs.kr/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140377",
|
||||||
|
"name": "첨단고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "광산구",
|
||||||
|
"dong": "월계동",
|
||||||
|
"address": "전남광주통합특별시 광산구 산월로 12-17",
|
||||||
|
"detailAddress": "(월계동,첨단고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://cheomdan.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140372",
|
||||||
|
"name": "풍암고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "서구",
|
||||||
|
"dong": "풍암동",
|
||||||
|
"address": "전남광주통합특별시 서구 풍암신흥로39번길 20",
|
||||||
|
"detailAddress": ", 풍암고��학교 (풍암동)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "공립",
|
||||||
|
"homepage": "http://pungam.gen.hs.kr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "7140356",
|
||||||
|
"name": "호남삼육고등학교",
|
||||||
|
"region": "전남광주통합특별시(광주)",
|
||||||
|
"sigungu": "남구",
|
||||||
|
"dong": "주월동",
|
||||||
|
"address": "전남광주통합특별시 남구 회서로 30",
|
||||||
|
"detailAddress": "(주월동,삼육중고등학교)",
|
||||||
|
"type": "일반고",
|
||||||
|
"coedu": "남여공학",
|
||||||
|
"foundation": "사립",
|
||||||
|
"homepage": "http://samyook.gen.hs.kr"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
|
|||||||
lang: 'ko'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
||||||
|
|||||||
@@ -396,20 +396,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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-orange-50 text-orange-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-indigo-700 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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
|
|||||||
lang: 'ko'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
||||||
|
|||||||
@@ -395,20 +395,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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-purple-50 text-purple-700 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-purple-700 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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default defineNuxtConfig({
|
|||||||
public: {
|
public: {
|
||||||
siteName: '티처브릿지',
|
siteName: '티처브릿지',
|
||||||
siteDomain: process.env.SITE_DOMAIN || 'https://soohyun.store',
|
siteDomain: process.env.SITE_DOMAIN || 'https://soohyun.store',
|
||||||
naverVerificationKey: process.env.NAVER_VERIFICATION_KEY || 'naver_search_advisor_key_site6'
|
naverVerificationKey: process.env.NAVER_VERIFICATION_KEY || 'dfb36e971115b72176e1c1e37c6ca27a95e855e3'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -32,7 +32,11 @@ export default defineNuxtConfig({
|
|||||||
lang: 'ko'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ 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: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0' },
|
||||||
{ name: 'format-detection', content: 'telephone=no' },
|
{ name: 'format-detection', content: 'telephone=no' },
|
||||||
// 네이버 서치어드바이저 사이트 소유확인 키 메타태그
|
// 네이버 서치어드바이저 사이트 소유확인 키 메타태그
|
||||||
{ name: 'naver-site-verification', content: process.env.NAVER_VERIFICATION_KEY || 'naver_search_advisor_key_site6' }
|
{ name: 'naver-site-verification', content: process.env.NAVER_VERIFICATION_KEY || 'dfb36e971115b72176e1c1e37c6ca27a95e855e3' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -396,20 +396,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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-orange-50 text-orange-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-orange-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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
@@ -555,6 +541,7 @@ async function handleSubmit() {
|
|||||||
useHead({
|
useHead({
|
||||||
title: `${siteName} | 공부 정체기 극복 & 메타인지 1:1 맞춤 코칭`,
|
title: `${siteName} | 공부 정체기 극복 & 메타인지 1:1 맞춤 코칭`,
|
||||||
meta: [
|
meta: [
|
||||||
|
{ name: 'naver-site-verification', content: 'dfb36e971115b72176e1c1e37c6ca27a95e855e3' },
|
||||||
{ name: 'description', content: `${siteName} - 공부 슬럼프 및 성적 정체기 극복을 위한 메타인지 1:1 학습 코칭 및 정밀 진단 무료 신청.` },
|
{ name: 'description', content: `${siteName} - 공부 슬럼프 및 성적 정체기 극복을 위한 메타인지 1:1 학습 코칭 및 정밀 진단 무료 신청.` },
|
||||||
{ property: 'og:title', content: `${siteName} | 메타인지 1:1 학습 코칭` },
|
{ property: 'og:title', content: `${siteName} | 메타인지 1:1 학습 코칭` },
|
||||||
{ property: 'og:description', content: '공부 방법만 바꿔도 성적이 오른다! 메타인지 정밀 진단과 전담 코치 무료 매칭.' },
|
{ property: 'og:description', content: '공부 방법만 바꿔도 성적이 오른다! 메타인지 정밀 진단과 전담 코치 무료 매칭.' },
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</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 v-if="isHigh" class="schools-grid">
|
||||||
<div class="school-card">
|
<div class="school-card">
|
||||||
@@ -94,6 +115,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import schoolsIndex from '../data/schools_index.json'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
regionDong: {
|
regionDong: {
|
||||||
@@ -118,6 +140,38 @@ const targetSchoolType = computed(() => {
|
|||||||
if (isMiddle.value) return '중학교'
|
if (isMiddle.value) return '중학교'
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -134,103 +188,168 @@ const targetSchoolType = computed(() => {
|
|||||||
|
|
||||||
.section-badge {
|
.section-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
font-size: 13px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--primary-color, #1e3a8a);
|
color: #2563eb;
|
||||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
background-color: #eff6ff;
|
||||||
padding: 5px 12px;
|
padding: 4px 14px;
|
||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #bfdbfe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: clamp(1.3rem, 3.8vw, 1.95rem);
|
font-size: 26px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #1e293b);
|
color: #0f172a;
|
||||||
letter-spacing: -0.6px;
|
letter-spacing: -0.02em;
|
||||||
word-break: keep-all;
|
margin-bottom: 10px;
|
||||||
line-height: 1.35;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-desc {
|
.section-desc {
|
||||||
font-size: clamp(0.85rem, 2.2vw, 0.98rem);
|
font-size: 15px;
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
margin-top: 8px;
|
|
||||||
word-break: keep-all;
|
|
||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: 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 {
|
.schools-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 18px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-card {
|
.school-card {
|
||||||
background: var(--bg-card, #ffffff);
|
background-color: #ffffff;
|
||||||
border: 1px solid var(--border-color, #e2e8f0);
|
border: 1.5px solid #e2e8f0;
|
||||||
border-radius: var(--card-radius, 14px);
|
border-radius: 20px;
|
||||||
padding: clamp(18px, 3.5vw, 26px);
|
padding: 26px 24px;
|
||||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge {
|
.school-type-badge {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 0.75rem;
|
font-size: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 3px 8px;
|
padding: 4px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
}
|
|
||||||
|
|
||||||
.school-type-badge.middle {
|
|
||||||
background: #e0f2fe;
|
|
||||||
color: #0369a1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.high {
|
.school-type-badge.high {
|
||||||
background: #fef3c7;
|
background-color: #fef2f2;
|
||||||
color: #b45309;
|
color: #dc2626;
|
||||||
|
border: 1px solid #fecaca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-type-badge.middle {
|
||||||
|
background-color: #ecfdf5;
|
||||||
|
color: #059669;
|
||||||
|
border: 1px solid #a7f3d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-type-badge.elem {
|
.school-type-badge.elem {
|
||||||
background: #f1f5f9;
|
background-color: #fffbeb;
|
||||||
color: #475569;
|
color: #d97706;
|
||||||
|
border: 1px solid #fde68a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-name {
|
.school-name {
|
||||||
font-size: clamp(1.05rem, 2.6vw, 1.25rem);
|
font-size: 18px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-color, #0f172a);
|
color: #0f172a;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 12px;
|
||||||
letter-spacing: -0.4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-focus {
|
.school-focus {
|
||||||
font-size: clamp(0.82rem, 2vw, 0.92rem);
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
|
||||||
color: #334155;
|
color: #334155;
|
||||||
margin-bottom: 14px;
|
line-height: 1.6;
|
||||||
padding-bottom: 12px;
|
margin-bottom: 16px;
|
||||||
border-bottom: 1px dashed var(--border-color, #e2e8f0);
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist {
|
.school-checklist {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
display: flex;
|
padding: 0;
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
gap: 8px;
|
border-top: 1px dashed #e2e8f0;
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.school-checklist li {
|
.school-checklist li {
|
||||||
font-size: clamp(0.8rem, 2vw, 0.9rem);
|
font-size: 13.5px;
|
||||||
color: #475569;
|
color: #475569;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
word-break: keep-all;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -22,7 +22,7 @@ export default defineNuxtConfig({
|
|||||||
public: {
|
public: {
|
||||||
siteName: '쌤인증',
|
siteName: '쌤인증',
|
||||||
siteDomain: process.env.SITE_DOMAIN || 'https://soohyun.xyz',
|
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'
|
lang: 'ko'
|
||||||
},
|
},
|
||||||
link: [
|
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.googleapis.com' },
|
||||||
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
||||||
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css' },
|
{ 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: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0' },
|
||||||
{ name: 'format-detection', content: 'telephone=no' },
|
{ 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' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -392,20 +392,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</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>
|
</main>
|
||||||
|
|
||||||
<!-- 하단 모바일 고정 CTA 바 -->
|
<!-- 하단 모바일 고정 CTA 바 -->
|
||||||
@@ -551,6 +537,7 @@ async function handleSubmit() {
|
|||||||
useHead({
|
useHead({
|
||||||
title: `${siteName} | 의대·자사고 1등급 초격차 1:1 맞춤과외`,
|
title: `${siteName} | 의대·자사고 1등급 초격차 1:1 맞춤과외`,
|
||||||
meta: [
|
meta: [
|
||||||
|
{ name: 'naver-site-verification', content: 'd40ee8cd61dab827dcbd7080e54b095339c44222' },
|
||||||
{ name: 'description', content: `${siteName} - 최상위 1% 도약을 위한 킬러 문항 정복 및 특목·자사고 전과목 올 1등급 마스터 과외.` },
|
{ name: 'description', content: `${siteName} - 최상위 1% 도약을 위한 킬러 문항 정복 및 특목·자사고 전과목 올 1등급 마스터 과외.` },
|
||||||
{ property: 'og:title', content: `${siteName} | 전과목 올 1등급 초격차 마스터` },
|
{ property: 'og:title', content: `${siteName} | 전과목 올 1등급 초격차 마스터` },
|
||||||
{ property: 'og:description', content: '의대·자사고 목표! 킬러 문항 5단계 해체 및 최상위 1타 강사진 무료 매칭.' },
|
{ property: 'og:description', content: '의대·자사고 목표! 킬러 문항 5단계 해체 및 최상위 1타 강사진 무료 매칭.' },
|
||||||
|
|||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@@ -87,9 +87,16 @@ export function getShortSido(sido: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
// 축약 지역명 생성 (예: '대구 황금동', '서울 대치동', '경기 정발산동')
|
||||||
export function getShortRegionName(sido: string, dong: string): string {
|
export function getShortRegionName(sido: string, dong: string, sigungu?: string): string {
|
||||||
const shortSido = getShortSido(sido)
|
const meta = regionsData as any
|
||||||
return `${shortSido} ${dong || ''}`.trim()
|
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 슬러그 파서
|
// 지능형 URL 슬러그 파서
|
||||||
@@ -171,7 +178,7 @@ export function parseRouteSlug(slugInput: string | string[]): ParsedRouteParams
|
|||||||
else detectedTerm = '1:1 맞춤과외'
|
else detectedTerm = '1:1 맞춤과외'
|
||||||
|
|
||||||
const shortSido = getShortSido(matchedRegion.sido)
|
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}`
|
const fullKeyword = `${shortRegionName} ${detectedGrade} ${detectedSubjectName} ${detectedTerm}`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||