Skip to content

Commit 23bdee9

Browse files
authored
feat: update resort metadata and improve SEO (#62)
1 parent b51035e commit 23bdee9

File tree

4 files changed

+87
-28
lines changed

4 files changed

+87
-28
lines changed

src/app/(web)/[resortId]/page.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ export async function generateMetadata({
1212
const resort = ResortData.find((resort) => resort.id === +resortId);
1313

1414
return {
15-
title: resort ? `${resort.name} - WeSki` : 'WeSki : 스키장 혼잡도 확인 서비스',
16-
description: resort
17-
? `${resort.name}의 실시간 정보를 확인해보세요.`
18-
: '위스키는 웹캠, 날씨, 슬로프 등 실시간 스키장 정보를 탐색할 수 있는 스키장 큐레이션 서비스입니다.',
15+
title: resort?.metadata?.title ?? '전국 스키장 실시간 웹캠 & 날씨 정보 | WeSki',
16+
description:
17+
resort?.metadata?.description ??
18+
'전국 스키장의 실시간 웹캠, 눈 상태, 설질, 혼잡도, 날씨 정보를 한눈에! X5스키장과 시즌권이 있는 모든 리조트의 스키장 정보를 빠르게 확인하세요.',
1919
alternates: {
2020
canonical: `/${resortId}`,
2121
},

src/app/layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import Providers from './_providers';
99

1010
export const metadata: Metadata = {
1111
metadataBase: new URL(process.env.NEXT_PUBLIC_SITE_URL || 'https://www.weski.live'),
12-
title: 'WeSki : 스키장 혼잡도 확인 서비스',
12+
title: '전국 스키장 실시간 웹캠 & 날씨 정보 | WeSki',
1313
description:
14-
'위스키는 웹캠, 날씨, 슬로프 등 실시간 스키장 정보를 탐색할 수 있는 스키장 큐레이션 서비스입니다.',
14+
'전국 스키장의 실시간 웹캠, 눈 상태, 설질, 혼잡도, 날씨 정보를 한눈에! X5스키장과 시즌권이 있는 모든 리조트의 스키장 정보를 빠르게 확인하세요.',
1515
openGraph: {
1616
images: [
1717
{

src/entities/resort/model/constants.ts

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ export const ResortData: ResortInfo[] = [
99
bus: 'https://m.konjiamresort.co.kr/ski/pickupService.dev',
1010
homepage: 'https://www.konjiamresort.co.kr/main.dev',
1111
},
12+
metadata: {
13+
title: '곤지암 스키장 실시간 웹캠 & 날씨 · 혼잡도 | 경기 광주 | 위스키',
14+
description:
15+
'곤지암 스키장의 실시간 웹캠으로 적설량, 날씨, 설질, 리프트 대기 정보를 확인하세요.',
16+
},
1217
},
1318
{
1419
id: 8,
@@ -18,6 +23,11 @@ export const ResortData: ResortInfo[] = [
1823
bus: 'https://skibus.purplebus.co.kr/Yp/',
1924
homepage: 'https://www.yongpyong.co.kr/kor/skiNboard/introduce.do',
2025
},
26+
metadata: {
27+
title: '용평 스키장 실시간 웹캠 & 적설량 · 날씨 | 평창 스키장 | 위스키',
28+
description:
29+
'용평 스키장의 실시간 웹캠으로 슬로프, 적설량, 날씨, 리프트 대기 현황을 한눈에 확인하세요.',
30+
},
2131
},
2232
{
2333
id: 5,
@@ -27,6 +37,11 @@ export const ResortData: ResortInfo[] = [
2737
bus: 'https://www.wellihillipark.com/home/guide/map/shuttle',
2838
homepage: 'https://www.wellihillipark.com/snowpark',
2939
},
40+
metadata: {
41+
title: '웰리힐리파크 실시간 웹캠 & 적설량 · 설질 | 횡성 원주 | 위스키',
42+
description:
43+
'웰리힐리파크 실시간 웹캠으로 슬로프 상태, 적설량, 날씨, 리프트 현황을 확인하세요.',
44+
},
3045
},
3146
{
3247
id: 7,
@@ -36,6 +51,11 @@ export const ResortData: ResortInfo[] = [
3651
bus: 'https://skibus.purplebus.co.kr/Hi/',
3752
homepage: 'https://www.high1.com/ski/index.do',
3853
},
54+
metadata: {
55+
title: '하이원 스키장 실시간 웹캠 & 설질 · 적설량 | 정선 | 위스키',
56+
description:
57+
'하이원 스키장의 실시간 웹캠으로 설질, 적설량, 날씨, 슬로프 상태와 리프트 정보를 확인하세요.',
58+
},
3959
},
4060
{
4161
id: 9,
@@ -45,6 +65,11 @@ export const ResortData: ResortInfo[] = [
4565
bus: 'https://www.mdysresort.com/guide/shuttle_bus.asp',
4666
homepage: 'https://www.mdysresort.com/index.asp',
4767
},
68+
metadata: {
69+
title: '무주덕유산 실시간 웹캠 & 설질 · 날씨 | 전북 무주 스키장 | 위스키',
70+
description:
71+
'무주덕유산 실시간 웹캠으로 설질, 적설량, 날씨와 슬로프·리프트 정보를 확인하세요.',
72+
},
4873
},
4974
{
5075
id: 1,
@@ -54,6 +79,11 @@ export const ResortData: ResortInfo[] = [
5479
bus: 'https://www.jisanresort.co.kr/w/reservation/shuttle/reservation.asp',
5580
homepage: 'https://www.jisanresort.co.kr/m/ski/',
5681
},
82+
metadata: {
83+
title: '지산리조트 실시간 웹캠 & 날씨 · 리프트 대기 | 용인 | 위스키',
84+
description:
85+
'지산리조트 실시간 웹캠으로 날씨, 설질, 슬로프 상태, 리프트 혼잡도를 확인하세요.',
86+
},
5787
},
5888
{
5989
id: 3,
@@ -63,6 +93,11 @@ export const ResortData: ResortInfo[] = [
6393
bus: 'https://www.busline.co.kr/busline_22K28/reservation_input.html?title=%EB%85%B8%EC%84%A0%EC%84%A0%ED%83%9D%20%EB%B0%8F%20%EC%9D%B4%EC%9A%A9%EC%9E%90%EB%93%B1%EB%A1%9D',
6494
homepage: 'https://www.sonohotelsresorts.com/complex_vp',
6595
},
96+
metadata: {
97+
title: '비발디파크 실시간 웹캠 & 슬로프 · 적설량 | 홍천 | 위스키',
98+
description:
99+
'비발디파크 실시간 웹캠으로 슬로프, 날씨, 적설량, 설질, 리프트 혼잡도를 확인하세요.',
100+
},
66101
},
67102
{
68103
id: 4,
@@ -72,6 +107,11 @@ export const ResortData: ResortInfo[] = [
72107
bus: 'https://gs.elysian.co.kr/gangchon/enjoyElysian/roadMap_free_230210_pop.asp',
73108
homepage: 'https://www.elysian.co.kr/',
74109
},
110+
metadata: {
111+
title: '엘리시안 강촌 실시간 웹캠 & 날씨 · 설질 | 강촌 춘천 스키장 | 위스키',
112+
description:
113+
'엘리시안 강촌 실시간 웹캠으로 설질, 적설량, 날씨, 리프트 대기 정보를 빠르게 확인하세요.',
114+
},
75115
},
76116
{
77117
id: 6,
@@ -81,6 +121,11 @@ export const ResortData: ResortInfo[] = [
81121
bus: 'https://skibus.purplebus.co.kr/Pp/',
82122
homepage: 'https://phoenixhnr.co.kr/page/main/pyeongchang?q%5BhmpgDivCd%5D=PP&page=1&size=4',
83123
},
124+
metadata: {
125+
title: '휘닉스평창 실시간 웹캠 & 날씨 · 설질 · 혼잡도 | 평창 스키장 | 위스키',
126+
description:
127+
'휘닉스평창 스키장의 실시간 웹캠으로 슬로프, 설질, 적설량, 날씨, 리프트 혼잡도를 확인하세요.',
128+
},
84129
},
85130
{
86131
id: 10,
@@ -90,6 +135,11 @@ export const ResortData: ResortInfo[] = [
90135
bus: 'http://m.newbusantour.co.kr/goods/goods_detail.asp?g_cd=2183',
91136
homepage: 'https://www.edenvalley.co.kr/ski/View.asp?location=01',
92137
},
138+
metadata: {
139+
title: '에덴밸리 실시간 웹캠 & 날씨 · 설질 | 양산 스키장 | 위스키',
140+
description:
141+
'에덴밸리 스키장의 실시간 웹캠으로 슬로프 상황, 적설량, 날씨, 리프트 정보를 확인하세요.',
142+
},
93143
},
94144
{
95145
id: 11,
@@ -99,6 +149,11 @@ export const ResortData: ResortInfo[] = [
99149
bus: 'https://www.o2resort.com/GDE/trafficBusSeoul.jsp',
100150
homepage: 'https://www.o2resort.com/SKI/basicInfo.jsp',
101151
},
152+
metadata: {
153+
title: '오투리조트 실시간 웹캠 & 날씨 · 슬로프 | 강원 태백 | 위스키',
154+
description:
155+
'오투리조트 실시간 웹캠으로 슬로프 상태, 적설량, 설질, 날씨, 리프트 운영 정보를 확인하세요.',
156+
},
102157
},
103158
{
104159
id: 12,

src/entities/resort/model/model.d.ts

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export type ResortInfo = {
1010
name: string;
1111
map: string;
1212
url: Url;
13+
metadata?: {
14+
title: string;
15+
description: string;
16+
};
1317
};
1418

1519
export type Vote = {
@@ -20,18 +24,18 @@ export type Vote = {
2024
};
2125

2226
export type WeatherResponse = {
23-
resortId: number,
27+
resortId: number;
2428
currentWeather: {
25-
temperature: number,
26-
maxTemperature: number,
27-
minTemperature: number,
28-
feelsLike: number,
29-
description: string,
30-
condition: string
31-
},
32-
hourlyWeather: [],
33-
weeklyWeather: WeeklyWeather[]
34-
}
29+
temperature: number;
30+
maxTemperature: number;
31+
minTemperature: number;
32+
feelsLike: number;
33+
description: string;
34+
condition: string;
35+
};
36+
hourlyWeather: [];
37+
weeklyWeather: WeeklyWeather[];
38+
};
3539

3640
export type WeeklyWeather = {
3741
day: string;
@@ -50,15 +54,15 @@ export type SummarizedWeeklyWeather = {
5054
};
5155

5256
export type Resort = {
53-
resortId: number,
54-
name: string,
55-
status: string,
56-
openingDate: string,
57-
closingDate: string,
58-
openSlopes: number,
57+
resortId: number;
58+
name: string;
59+
status: string;
60+
openingDate: string;
61+
closingDate: string;
62+
openSlopes: number;
5963
currentWeather: {
60-
temperature: number,
61-
description: string
62-
},
63-
weeklyWeather: SummarizedWeeklyWeather[]
64-
}
64+
temperature: number;
65+
description: string;
66+
};
67+
weeklyWeather: SummarizedWeeklyWeather[];
68+
};

0 commit comments

Comments
 (0)