@@ -17,11 +17,52 @@ const NewsSectionDynamic = dynamic(() => import("./_ui/NewsSection"), {
1717 loading : ( ) => < NewsSectionSkeleton /> ,
1818} ) ;
1919
20+ const baseUrl = process . env . NEXT_PUBLIC_WEB_URL || "https://solid-connection.com" ;
21+ const ogImageUrl = `${ baseUrl } /opengraph-image.png` ;
22+
2023export const metadata : Metadata = {
21- title : "솔리드 커넥션 – 교환학생의 첫 걸음" ,
22- description : "교환학생 준비를 위한 모든 정보가 여기에!" ,
24+ title : "교환학생 사이트 | 솔리드 커넥션 – 교환학생 커뮤니티" ,
25+ description :
26+ "교환학생 사이트 솔리드커넥션. 교환학생 커뮤니티에서 학교 검색, 성적 입력, 지원 현황 확인까지 한 번에. 교환학생 준비를 위한 모든 정보를 제공합니다." ,
2327 alternates : {
24- canonical : "https://solid-connection.com/" ,
28+ canonical : `${ baseUrl } /` ,
29+ } ,
30+ openGraph : {
31+ title : "교환학생 사이트 | 솔리드 커넥션 – 교환학생 커뮤니티" ,
32+ description :
33+ "교환학생 사이트 솔리드커넥션. 교환학생 커뮤니티에서 학교 검색, 성적 입력, 지원 현황 확인까지 한 번에. 교환학생 준비를 위한 모든 정보를 제공합니다." ,
34+ url : `${ baseUrl } /` ,
35+ siteName : "솔리드커넥션" ,
36+ locale : "ko_KR" ,
37+ type : "website" ,
38+ images : [
39+ {
40+ url : ogImageUrl ,
41+ width : 1200 ,
42+ height : 630 ,
43+ alt : "솔리드 커넥션 - 교환학생 커뮤니티" ,
44+ } ,
45+ ] ,
46+ } ,
47+ twitter : {
48+ card : "summary_large_image" ,
49+ title : "교환학생 사이트 | 솔리드 커넥션 – 교환학생 커뮤니티" ,
50+ description : "교환학생 사이트 솔리드커넥션. 교환학생 커뮤니티에서 학교 검색, 성적 입력, 지원 현황 확인까지." ,
51+ images : [ ogImageUrl ] ,
52+ } ,
53+ } ;
54+
55+ // Structured Data (JSON-LD) for SEO - 교환학생 사이트, 커뮤니티 키워드 강화
56+ const structuredData = {
57+ "@context" : "https://schema.org" ,
58+ "@type" : "WebSite" ,
59+ name : "솔리드커넥션" ,
60+ url : `${ baseUrl } /` ,
61+ description : "교환학생 학교 검색, 성적 입력, 지원 현황 확인까지 가능한 교환학생 플랫폼." ,
62+ potentialAction : {
63+ "@type" : "SearchAction" ,
64+ target : `${ baseUrl } /university?searchText={search_term_string}` ,
65+ "query-input" : "required name=search_term_string" ,
2566 } ,
2667} ;
2768
@@ -33,71 +74,77 @@ const HomePage = async () => {
3374 const allRegionsUniversityList = await getCategorizedUniversities ( ) ;
3475
3576 return (
36- < div className = "w-full" >
37- < FindLastYearScoreBar />
38- < div className = "flex flex-col gap-2.5 px-5 py-3.5" >
39- < div className = "flex gap-2" >
40- < Link
41- className = "h-26 bg-bg-accent-blue flex flex-1 flex-col gap-2 rounded-lg p-2.5"
42- href = "/university/search"
43- >
44- < div className = "flex flex-col" >
45- < span className = "typo-bold-5 text-secondary" > 학교 검색하기</ span >
46- < span className = "typo-medium-4 text-k-700" > 모든 학교 목록을 확인해보세요</ span >
47- </ div >
48- < div className = "flex justify-end" >
49- < IconMagnifyingGlass />
50- </ div >
51- </ Link >
52- < Link className = "h-26 bg-bg-accent-sky flex flex-1 flex-col gap-2 rounded-lg p-2.5" href = "/university/score" >
53- < div className = "flex flex-col" >
54- < span className = "typo-bold-5 text-sub-a" > 성적 입력하기</ span >
55- < span className = "typo-medium-4 text-k-700" > 성적을 입력해보세요</ span >
56- </ div >
57- < div className = "flex justify-end" >
58- < IconPaper />
59- </ div >
60- </ Link >
77+ < >
78+ < script type = "application/ld+json" dangerouslySetInnerHTML = { { __html : JSON . stringify ( structuredData ) } } />
79+ < div className = "w-full" >
80+ < FindLastYearScoreBar />
81+ < div className = "flex flex-col gap-2.5 px-5 py-3.5" >
82+ < div className = "flex gap-2" >
83+ < Link
84+ className = "h-26 bg-bg-accent-blue flex flex-1 flex-col gap-2 rounded-lg p-2.5"
85+ href = "/university/search"
86+ >
87+ < div className = "flex flex-col" >
88+ < span className = "typo-bold-5 text-secondary" > 학교 검색하기</ span >
89+ < span className = "typo-medium-4 text-k-700" > 모든 학교 목록을 확인해보세요</ span >
90+ </ div >
91+ < div className = "flex justify-end" >
92+ < IconMagnifyingGlass />
93+ </ div >
94+ </ Link >
95+ < Link
96+ className = "h-26 bg-bg-accent-sky flex flex-1 flex-col gap-2 rounded-lg p-2.5"
97+ href = "/university/score"
98+ >
99+ < div className = "flex flex-col" >
100+ < span className = "typo-bold-5 text-sub-a" > 성적 입력하기</ span >
101+ < span className = "typo-medium-4 text-k-700" > 성적을 입력해보세요</ span >
102+ </ div >
103+ < div className = "flex justify-end" >
104+ < IconPaper />
105+ </ div >
106+ </ Link >
107+ </ div >
108+ < div className = "flex gap-2" >
109+ < Link
110+ className = "h-26 bg-bg-accent-orange flex flex-1 flex-col gap-2 rounded-lg p-2.5"
111+ href = "/university/application/apply"
112+ >
113+ < div className = "flex flex-col" >
114+ < span className = "typo-bold-5 text-accent-custom-orange" > 학교 지원하기</ span >
115+ < span className = "typo-medium-4 text-k-700" > 학교를 지원해주세요</ span >
116+ </ div >
117+ < div className = "flex justify-end" >
118+ < IconMuseum />
119+ </ div >
120+ </ Link >
121+ < Link
122+ className = "h-26 bg-bg-accent-green flex flex-1 flex-col gap-2 rounded-lg p-2.5"
123+ href = "/university/application"
124+ >
125+ < div className = "flex flex-col" >
126+ < span className = "typo-bold-5 text-accent-custom-green" > 지원자 현황 확인</ span >
127+ < span className = "typo-medium-4 text-k-700" > 경쟁률을 바로 분석해드려요</ span >
128+ </ div >
129+ < div className = "flex justify-end" >
130+ < IconIdCard />
131+ </ div >
132+ </ Link >
133+ </ div >
61134 </ div >
62- < div className = "flex gap-2" >
63- < Link
64- className = "h-26 bg-bg-accent-orange flex flex-1 flex-col gap-2 rounded-lg p-2.5"
65- href = "/university/application/apply"
66- >
67- < div className = "flex flex-col" >
68- < span className = "typo-bold-5 text-accent-custom-orange" > 학교 지원하기</ span >
69- < span className = "typo-medium-4 text-k-700" > 학교를 지원해주세요</ span >
70- </ div >
71- < div className = "flex justify-end" >
72- < IconMuseum />
73- </ div >
74- </ Link >
75- < Link
76- className = "h-26 bg-bg-accent-green flex flex-1 flex-col gap-2 rounded-lg p-2.5"
77- href = "/university/application"
78- >
79- < div className = "flex flex-col" >
80- < span className = "typo-bold-5 text-accent-custom-green" > 지원자 현황 확인</ span >
81- < span className = "typo-medium-4 text-k-700" > 경쟁률을 바로 분석해드려요</ span >
82- </ div >
83- < div className = "flex justify-end" >
84- < IconIdCard />
85- </ div >
86- </ Link >
135+
136+ < div className = "border-t-[5px] border-k-50 py-5 pl-5" >
137+ < div className = "typo-sb-7 mb-2 flex items-center gap-1.5 font-serif text-k-700" > 실시간 인기있는 파견학교</ div >
138+ < PopularUniversitySection universities = { recommendedUniversities } />
87139 </ div >
88- </ div >
89140
90- < div className = "border-t-[5px] border-k-50 py-5 pl-5" >
91- < div className = "typo-sb-7 mb-2 flex items-center gap-1.5 font-serif text-k-700" > 실시간 인기있는 파견학교</ div >
92- < PopularUniversitySection universities = { recommendedUniversities } />
93- </ div >
141+ < div className = "p-5" >
142+ < UniversityList allRegionsUniversityList = { allRegionsUniversityList } />
143+ </ div >
94144
95- < div className = "p-5" >
96- < UniversityList allRegionsUniversityList = { allRegionsUniversityList } />
145+ < NewsSectionDynamic newsList = { newsList } />
97146 </ div >
98-
99- < NewsSectionDynamic newsList = { newsList } />
100- </ div >
147+ </ >
101148 ) ;
102149} ;
103150
0 commit comments