@jjlmoya/utils-nature 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/package.json +2 -1
  2. package/src/index.ts +4 -4
  3. package/src/tests/i18n_coverage.test.ts +36 -0
  4. package/src/tests/slug_uniqueness.test.ts +81 -0
  5. package/src/tests/tool_validation.test.ts +1 -2
  6. package/src/tool/cricketThermometer/i18n/de.ts +181 -0
  7. package/src/tool/cricketThermometer/i18n/id.ts +181 -0
  8. package/src/tool/cricketThermometer/i18n/it.ts +181 -0
  9. package/src/tool/cricketThermometer/i18n/ja.ts +181 -0
  10. package/src/tool/cricketThermometer/i18n/ko.ts +181 -0
  11. package/src/tool/cricketThermometer/i18n/nl.ts +181 -0
  12. package/src/tool/cricketThermometer/i18n/pl.ts +181 -0
  13. package/src/tool/cricketThermometer/i18n/pt.ts +181 -0
  14. package/src/tool/cricketThermometer/i18n/ru.ts +181 -0
  15. package/src/tool/cricketThermometer/i18n/sv.ts +181 -0
  16. package/src/tool/cricketThermometer/i18n/tr.ts +181 -0
  17. package/src/tool/cricketThermometer/i18n/zh.ts +181 -0
  18. package/src/tool/cricketThermometer/index.ts +15 -7
  19. package/src/tool/digitalCarbon/i18n/de.ts +235 -0
  20. package/src/tool/digitalCarbon/i18n/id.ts +235 -0
  21. package/src/tool/digitalCarbon/i18n/it.ts +235 -0
  22. package/src/tool/digitalCarbon/i18n/ja.ts +235 -0
  23. package/src/tool/digitalCarbon/i18n/ko.ts +235 -0
  24. package/src/tool/digitalCarbon/i18n/nl.ts +235 -0
  25. package/src/tool/digitalCarbon/i18n/pl.ts +235 -0
  26. package/src/tool/digitalCarbon/i18n/pt.ts +235 -0
  27. package/src/tool/digitalCarbon/i18n/ru.ts +235 -0
  28. package/src/tool/digitalCarbon/i18n/sv.ts +235 -0
  29. package/src/tool/digitalCarbon/i18n/tr.ts +235 -0
  30. package/src/tool/digitalCarbon/i18n/zh.ts +235 -0
  31. package/src/tool/digitalCarbon/index.ts +15 -7
  32. package/src/tool/digitalCarbon/seo.astro +4 -3
  33. package/src/tool/rainHarvester/i18n/de.ts +185 -0
  34. package/src/tool/rainHarvester/i18n/id.ts +185 -0
  35. package/src/tool/rainHarvester/i18n/it.ts +185 -0
  36. package/src/tool/rainHarvester/i18n/ja.ts +185 -0
  37. package/src/tool/rainHarvester/i18n/ko.ts +185 -0
  38. package/src/tool/rainHarvester/i18n/nl.ts +185 -0
  39. package/src/tool/rainHarvester/i18n/pl.ts +185 -0
  40. package/src/tool/rainHarvester/i18n/pt.ts +185 -0
  41. package/src/tool/rainHarvester/i18n/ru.ts +185 -0
  42. package/src/tool/rainHarvester/i18n/sv.ts +185 -0
  43. package/src/tool/rainHarvester/i18n/tr.ts +185 -0
  44. package/src/tool/rainHarvester/i18n/zh.ts +185 -0
  45. package/src/tool/rainHarvester/index.ts +15 -7
  46. package/src/tool/rainHarvester/seo.astro +4 -3
  47. package/src/tool/seedCalculator/i18n/de.ts +213 -0
  48. package/src/tool/seedCalculator/i18n/id.ts +213 -0
  49. package/src/tool/seedCalculator/i18n/it.ts +213 -0
  50. package/src/tool/seedCalculator/i18n/ja.ts +213 -0
  51. package/src/tool/seedCalculator/i18n/ko.ts +213 -0
  52. package/src/tool/seedCalculator/i18n/nl.ts +213 -0
  53. package/src/tool/seedCalculator/i18n/pl.ts +213 -0
  54. package/src/tool/seedCalculator/i18n/pt.ts +213 -0
  55. package/src/tool/seedCalculator/i18n/ru.ts +213 -0
  56. package/src/tool/seedCalculator/i18n/sv.ts +213 -0
  57. package/src/tool/seedCalculator/i18n/tr.ts +213 -0
  58. package/src/tool/seedCalculator/i18n/zh.ts +213 -0
  59. package/src/tool/seedCalculator/index.ts +15 -7
@@ -0,0 +1,235 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { DigitalCarbonLocaleContent } from '../index';
3
+
4
+ const slug = 'digital-carbon-footprint-calculator';
5
+ const title = 'デジタルカーボンフットプリント計算機';
6
+ const description = 'あらゆるウェブページの環境負荷を分析します。1回のアクセスあたりのエネルギー消費量とCO₂排出量を推定します。';
7
+
8
+ const faqData = [
9
+ {
10
+ question: 'ウェブサイトのカーボンフットプリントとは何ですか?',
11
+ answer: 'ウェブページを読み込んで表示するために、サーバー、通信ネットワーク、およびユーザーのデバイスによって消費されるエネルギーの結果として、大気中に放出される温室効果ガス(主にCO₂)の量のことです。',
12
+ },
13
+ {
14
+ question: 'ウェブサイトの負荷はどのように測定されますか?',
15
+ answer: '通常、1回のアクセスあたりのCO₂換算グラム数(gCO₂e)で測定されます。効率的なウェブサイトはCO₂排出量が0.2g未満ですが、最適化されていないページでは1回の読み込みで2gや3gを超えることがあります。',
16
+ },
17
+ {
18
+ question: 'なぜインターネットが環境を汚染するのですか?',
19
+ answer: 'データセンター、海底ケーブル、WiFiルーター、スマートフォンなどの必要なインフラすべてが、世界の多くの地域で依然として石炭やガスの燃焼によって発電された電気で動いているためです。',
20
+ },
21
+ {
22
+ question: 'ウェブサイトのCO₂を削減するにはどうすればよいですか?',
23
+ answer: '最も効果的な方法はページの軽量化です。画像の最適化(WebP形式)、CSSやJSファイルの圧縮、遅延読み込み(lazy loading)の利用、再生可能エネルギーを使用しているホスティングプロバイダーの選択などが挙げられます。',
24
+ },
25
+ ];
26
+
27
+ const howToData = [
28
+ {
29
+ name: 'URLを入力する',
30
+ text: '分析したいウェブページのURLを入力欄に入力します。',
31
+ },
32
+ {
33
+ name: '分析を開始する',
34
+ text: '分析ボタンをクリックして、ツールのリソース負荷推定を開始します。',
35
+ },
36
+ {
37
+ name: '評価を確認する',
38
+ text: '分析されたウェブサイトのエネルギー効率に基づき、A+からFまでの評価が表示されます。',
39
+ },
40
+ {
41
+ name: '改善策を適用する',
42
+ text: '個別のアドバイスリストを参考に、サイトの軽量化と環境負荷の低減を図ります。',
43
+ },
44
+ ];
45
+
46
+ const faqSchema: WithContext<FAQPage> = {
47
+ '@context': 'https://schema.org',
48
+ '@type': 'FAQPage',
49
+ mainEntity: faqData.map((item) => ({
50
+ '@type': 'Question',
51
+ name: item.question,
52
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
53
+ })),
54
+ };
55
+
56
+ const howToSchema: WithContext<HowToThing> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description,
61
+ step: howToData.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
77
+ inLanguage: 'ja',
78
+ };
79
+
80
+ export const content: DigitalCarbonLocaleContent = {
81
+ slug,
82
+ title,
83
+ description,
84
+ ui: {
85
+ headInputs: 'URL分析',
86
+ headResults: '負荷分析結果',
87
+ headTips: '最適化のアドバイス',
88
+ labelUrl: 'ページのURL',
89
+ btnAnalyze: 'サイトを分析する',
90
+ btnAnalyzing: '分析中...',
91
+ placeholderUrl: 'https://example.jp',
92
+ errorInvalidUrl: '有効なURLを入力してください。',
93
+ errorFetchFailed: 'ウェブサイトを分析できませんでした。別のURLを試してください。',
94
+
95
+ resultTitle: 'デジタルカーボンフットプリント',
96
+ resultSubtitle: '推定ページ効率',
97
+ co2PerVisit: '1アクセスあたりのCO₂',
98
+ energyPerVisit: '消費エネルギー',
99
+ co2Annual: '年間CO₂排出量(10万アクセス想定)',
100
+ impactTitle: '実際の年間負荷',
101
+ impactTrees: '必要な樹木の数',
102
+ impactKm: '自動車走行距離換算(約 km)',
103
+ treesLabel: '本',
104
+ kmLabel: 'キロメートル',
105
+
106
+ ratingExcellent: '素晴らしい評価です。このページは世界平均と比べてエネルギー消費が非常に低く抑えられています。',
107
+ ratingVeryGood: '非常に高い効率です。ページはよく最適化されており、環境負荷は最小限です。',
108
+ ratingGood: '許容範囲内の効率です。改善の余地はありますが、平均よりは優れています。',
109
+ ratingAverage: '平均的です。現在のウェブ標準で想定される程度のエネルギーを消費しています。',
110
+ ratingPoor: '平均を上回っています。画像、スクリプト、フォントの最適化を検討してください。',
111
+ ratingVeryPoor: '高い負荷がかかっています。ページの軽量化が強く推奨されます。',
112
+ ratingCritical: '非常に高い負荷です。ページサイズを大幅に削減できる可能性があります。',
113
+
114
+ tipImages: '画像をWebPまたはAVIF形式に変換することで、画質を維持したままサイズを最大70%削減できます。',
115
+ tipCompression: 'サーバーでBrotliまたはGZIPを有効にし、リソースを圧縮して配信してください。',
116
+ tipLazyLoading: 'ビューポート外の画像や動画には遅延読み込み(lazy loading)を適用してください。',
117
+ tipHosting: '再生可能エネルギーを使用しているホスティング先(Cloudflare、Netlify、Vercelなど)を選択してください。',
118
+ tipThirdParty: '不要な分析スクリプトやサードパーティ製ウィジェットを削除してください。',
119
+ tipFonts: '実際に使用するフォントウェイトのみを読み込むようにしてください。',
120
+ tipCache: 'HTTPキャッシュヘッダーを適切に設定し、不要な再ダウンロードを防いでください。',
121
+ },
122
+ faqTitle: 'よくある質問',
123
+ faq: faqData,
124
+ howTo: howToData,
125
+ bibliographyTitle: 'ウェブ・サステナビリティに関する参考文献',
126
+ seo: [
127
+ {
128
+ type: 'title',
129
+ text: 'デジタルカーボンフットプリント計算機:あなたのサイトが発生させるCO₂排出量を把握する',
130
+ level: 2,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'ウェブページが環境に与える実際の影響を明らかにしましょう。ページの重さを分析し、1アクセスあたりのCO₂排出量を推定することで、デジタル汚染を減らす方法を学べます。',
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: 'ウェブサイトのデジタルカーボンフットプリントとは?',
139
+ level: 2,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: 'ウェブページを開くたびに、あなたのデバイス、ルーター、海底ケーブル、そして地球の裏側にあるサーバーが電力を消費します。その電力の多くは、今なお化石燃料の燃焼によって作られています。その結果、<strong>1回のアクセスごとに一定量のCO₂が放出されている</strong>のです。',
144
+ },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'ウェブサイトの<strong>デジタルカーボンフットプリント</strong>は、1アクセスあたりのCO₂換算グラム数(gCO₂e)で測定されます。平均的なウェブサイトは1回の読み込みで約0.5gのCO₂を発生させます。わずかな量に見えますが、月間10万アクセスのサイトなら年間で600kg以上のCO₂を排出することになり、これはガソリン車で3,000km以上走行するのと同等です。',
148
+ },
149
+ {
150
+ type: 'title',
151
+ text: 'ウェブサイトのCO₂排出量はどう計算されるのか?',
152
+ level: 2,
153
+ },
154
+ {
155
+ type: 'paragraph',
156
+ html: '当ツールは<strong>Sustainable Web Design Model</strong>の基準に基づいており、エネルギー消費を以下の4つの主要セグメントに分類して計算しています。',
157
+ },
158
+ {
159
+ type: 'card',
160
+ title: 'データ転送',
161
+ html: 'ページの総重量によって転送されるデータ量が決まります。ネットワークインフラにおいて<code>0.81 kWh/GB</code>という基準値が設定されています。',
162
+ },
163
+ {
164
+ type: 'card',
165
+ title: 'ユーザーデバイス',
166
+ html: 'ページを受信するPCやスマホもエネルギーを消費します。処理データ量あたり<code>0.52 kWh/GB</code>と推定されています。',
167
+ },
168
+ {
169
+ type: 'card',
170
+ title: '炭素集約度',
171
+ html: 'エネルギー消費量を実際のCO₂排出量に変換するために、世界基準値である<code>442 gCO₂/kWh</code>を使用しています。',
172
+ },
173
+ {
174
+ type: 'card',
175
+ title: 'キャッシュ係数',
176
+ html: 'ユーザーの25%がすでにリソースをキャッシュしていると想定し、<code>0.75</code>の係数を適用しています。',
177
+ },
178
+ {
179
+ type: 'title',
180
+ text: '効率評価の意味するところ',
181
+ level: 2,
182
+ },
183
+ {
184
+ type: 'list',
185
+ items: [
186
+ '<strong>A+ および A:</strong> CO₂排出量0.2g未満。非常に軽量で最適化されたサイトです。',
187
+ '<strong>B:</strong> 0.2g~0.5gの間。世界平均を下回っています。',
188
+ '<strong>C:</strong> 0.5g~1gの間。現在のウェブサイトの平均的な水準です。',
189
+ '<strong>D および E:</strong> 1g~4gの間。負荷が大きく、環境への影響が目立ちます。',
190
+ '<strong>F:</strong> 1アクセスあたり4g以上。非常に高い負荷がかかっています。',
191
+ ],
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: 'ウェブサイトのカーボンフットプリントを減らすには',
196
+ level: 2,
197
+ },
198
+ {
199
+ type: 'card',
200
+ title: '画像の最適化',
201
+ html: '<strong>WebPやAVIF</strong>などの形式を使用することで、見た目の質を落とさずにサイズを最大80%削減できます。',
202
+ },
203
+ {
204
+ type: 'card',
205
+ title: 'サーバー側の圧縮',
206
+ html: '<strong>BrotliやGZIP</strong>を有効にすると、テキストベースのファイルのサイズを最大70%削減できます。',
207
+ },
208
+ {
209
+ type: 'card',
210
+ title: 'サステナブルなホスティング',
211
+ html: '<strong>再生可能エネルギー証書</strong>を持つプロバイダーを選ぶことで、環境負荷をほぼゼロにまで抑えることができます。',
212
+ },
213
+ {
214
+ type: 'card',
215
+ title: 'キャッシュとCDNの活用',
216
+ html: '<strong>長期間のキャッシュヘッダー</strong>を設定し、不要な再ダウンロードを避けるようにしましょう。',
217
+ },
218
+ {
219
+ type: 'title',
220
+ text: 'インターネットが気候に与える実際の影響',
221
+ level: 2,
222
+ },
223
+ {
224
+ type: 'paragraph',
225
+ html: 'インターネットは<strong>世界全体のCO₂排出量の2%から4%</strong>を占めており、これは航空業界にも匹敵する数字です。不要な数キロバイトを削ることは、単にサイトを速くするだけでなく、デジタル汚染を着実に減らすことにつながります。',
226
+ },
227
+ ],
228
+ bibliography: [
229
+ { name: 'Sustainable Web Design Model', url: 'https://sustainablewebdesign.org/' },
230
+ { name: 'Website Carbon Calculator', url: 'https://www.websitecarbon.com/' },
231
+ { name: 'The Green Web Foundation', url: 'https://www.thegreenwebfoundation.org/' },
232
+ { name: 'W3C - Web Sustainability Guidelines', url: 'https://w3c.github.io/sustyweb/' },
233
+ ],
234
+ schemas: [faqSchema, howToSchema, appSchema],
235
+ };
@@ -0,0 +1,235 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { DigitalCarbonLocaleContent } from '../index';
3
+
4
+ const slug = 'digital-carbon-footprint-calculator';
5
+ const title = '디지털 탄소 발자국 계산기';
6
+ const description = '웹 페이지의 환경적 영향을 분석합니다. 방문당 에너지 소비량과 CO₂ 배출량을 추정합니다.';
7
+
8
+ const faqData = [
9
+ {
10
+ question: '웹사이트의 탄소 발자국이란 무엇인가요?',
11
+ answer: '웹 페이지를 로드하고 렌더링하기 위해 서버, 전송 네트워크 및 사용자 장치에서 소비되는 에너지의 결과로 대기 중에 배출되는 이산화탄소(CO₂) 등 온실가스의 양을 말합니다.',
12
+ },
13
+ {
14
+ question: '웹사이트의 영향은 어떻게 측정되나요?',
15
+ answer: '일반적으로 방문당 CO₂ 환산 그램(gCO₂e)으로 측정됩니다. 효율적인 웹사이트는 0.2g 미만의 CO₂를 배출하는 반면, 최적화되지 않은 페이지는 로드당 2g 또는 3g을 초과할 수 있습니다.',
16
+ },
17
+ {
18
+ question: '인터넷이 왜 환경을 오염시키나요?',
19
+ answer: '데이터 센터, 해저 케이블, WiFi 공유기, 스마트폰 등 필요한 모든 인프라가 전기로 작동하며, 전 세계의 많은 지역에서 이 전기는 여전히 석탄이나 가스를 태워 생성되기 때문입니다.',
20
+ },
21
+ {
22
+ question: '웹사이트의 CO₂ 배출을 줄이려면 어떻게 해야 하나요?',
23
+ answer: '가장 효과적인 방법은 페이지 무게를 줄이는 것입니다. 이미지 최적화(WebP), CSS 및 JS 파일 압축, 지연 로딩(lazy loading) 사용, 재생 가능 에너지를 사용하는 호스팅 업체 선택 등이 주요 방법입니다.',
24
+ },
25
+ ];
26
+
27
+ const howToData = [
28
+ {
29
+ name: 'URL 입력하기',
30
+ text: '분석하려는 웹 페이지의 주소를 입력창에 입력합니다.',
31
+ },
32
+ {
33
+ name: '분석 시작하기',
34
+ text: '분석 버튼을 클릭하면 도구가 페이지 리소스의 무게를 추정합니다.',
35
+ },
36
+ {
37
+ name: '등급 확인하기',
38
+ text: '분석된 웹사이트의 에너지 효율에 따라 A+에서 F까지의 등급을 받게 됩니다.',
39
+ },
40
+ {
41
+ name: '개선 사항 적용하기',
42
+ text: '맞춤형 팁 목록을 활용하여 사이트 무게와 환경적 영향을 줄여 보세요.',
43
+ },
44
+ ];
45
+
46
+ const faqSchema: WithContext<FAQPage> = {
47
+ '@context': 'https://schema.org',
48
+ '@type': 'FAQPage',
49
+ mainEntity: faqData.map((item) => ({
50
+ '@type': 'Question',
51
+ name: item.question,
52
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
53
+ })),
54
+ };
55
+
56
+ const howToSchema: WithContext<HowToThing> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description,
61
+ step: howToData.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
77
+ inLanguage: 'ko',
78
+ };
79
+
80
+ export const content: DigitalCarbonLocaleContent = {
81
+ slug,
82
+ title,
83
+ description,
84
+ ui: {
85
+ headInputs: 'URL 분석기',
86
+ headResults: '영향 분석 결과',
87
+ headTips: '최적화 팁',
88
+ labelUrl: '페이지 URL',
89
+ btnAnalyze: '웹사이트 분석하기',
90
+ btnAnalyzing: '분석 중...',
91
+ placeholderUrl: 'https://example.kr',
92
+ errorInvalidUrl: '유효한 URL을 입력해 주세요.',
93
+ errorFetchFailed: '웹사이트를 분석할 수 없습니다. 다른 URL로 시도해 보세요.',
94
+
95
+ resultTitle: '디지털 탄소 발자국',
96
+ resultSubtitle: '추정 페이지 효율성',
97
+ co2PerVisit: '방문당 CO₂',
98
+ energyPerVisit: '소비한 에너지',
99
+ co2Annual: '연간 CO₂ (10만 회 방문 기준)',
100
+ impactTitle: '실제 연간 영향',
101
+ impactTrees: '필요한 나무 수',
102
+ impactKm: '자동차 주행 거리 환산(약 km)',
103
+ treesLabel: '그루',
104
+ kmLabel: '킬로미터',
105
+
106
+ ratingExcellent: '훌륭합니다. 이 페이지는 글로벌 평균에 비해 매우 적은 에너지를 소비합니다.',
107
+ ratingVeryGood: '효율성이 매우 좋습니다. 페이지가 잘 최적화되어 있으며 영향이 미미합니다.',
108
+ ratingGood: '수용 가능한 효율성입니다. 개선의 여지가 있지만 평균보다는 낫습니다.',
109
+ ratingAverage: '평균적입니다. 현재 웹 환경에서 예상되는 수준의 에너지를 소비합니다.',
110
+ ratingPoor: '평균 이상입니다. 이미지, 스크립트 및 폰트 최적화를 고려해 보세요.',
111
+ ratingVeryPoor: '영향이 큽니다. 페이지 무게가 상당하며 줄이는 것이 좋습니다.',
112
+ ratingCritical: '영향이 매우 큽니다. 페이지 크기를 줄일 수 있는 기회가 많습니다.',
113
+
114
+ tipImages: '이미지를 WebP 또는 AVIF로 변환하여 용량을 최대 70%까지 줄이세요.',
115
+ tipCompression: '서버에서 Brotli 또는 GZIP을 활성화하여 리소스를 압축하세요.',
116
+ tipLazyLoading: '뷰포트 밖의 이미지와 영상에 지연 로딩을 사용하세요.',
117
+ tipHosting: '재생 가능 에너지를 사용하는 호스팅(Cloudflare, Netlify, Vercel 등)을 선택하세요.',
118
+ tipThirdParty: '불필요한 분석 스크립트와 타사 위젯을 제거하세요.',
119
+ tipFonts: '실제로 사용하는 폰트 굵기만 로드하세요.',
120
+ tipCache: 'HTTP 캐시 헤더를 구성하여 재다운로드를 방지하세요.',
121
+ },
122
+ faqTitle: '자주 묻는 질문',
123
+ faq: faqData,
124
+ howTo: howToData,
125
+ bibliographyTitle: '웹 지속 가능성 참고 문헌',
126
+ seo: [
127
+ {
128
+ type: 'title',
129
+ text: '디지털 탄소 발자국 계산기: 내 웹사이트가 생성하는 CO₂ 양 확인하기',
130
+ level: 2,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: '모든 웹 페이지의 실제 환경적 영향을 확인해 보세요. 용량을 분석하고 방문당 CO₂ 배출량을 추정하며, 프로젝트의 디지털 오염을 줄이는 방법을 배울 수 있습니다.',
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: '웹사이트의 디지털 탄소 발자국이란?',
139
+ level: 2,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '웹 페이지를 열 때마다 여러분의 장치, 공유기, 해저 케이블, 그리고 지구 반대편의 서버는 전기를 소비합니다. 그 전기는 여전히 산당량 화석 연료를 태워 생성됩니다. 그 결과, <strong>방문할 때마다 실제로 일정량의 CO₂가 대기 중으로 배출</strong>됩니다.',
144
+ },
145
+ {
146
+ type: 'paragraph',
147
+ html: '웹사이트의 <strong>디지털 탄소 발자국</strong>은 방문당 CO₂ 환산 그램(gCO₂e)으로 측정됩니다. 평균적인 웹사이트는 로드당 약 0.5g의 CO₂를 생성합니다. 미미해 보일 수 있지만, 월간 방문자가 10만 명인 사이트는 연간 600kg 이상의 CO₂를 배출할 수 있으며, 이는 가솔린 차로 3,000km 이상을 주행하는 것과 같습니다.',
148
+ },
149
+ {
150
+ type: 'title',
151
+ text: '웹사이트의 CO₂ 배출량은 어떻게 계산되나요?',
152
+ level: 2,
153
+ },
154
+ {
155
+ type: 'paragraph',
156
+ html: '사용된 계산 모델은 에너지 소비를 네 가지 주요 부문으로 나누는 <strong>Sustainable Web Design Model</strong> 표준을 기반으로 합니다.',
157
+ },
158
+ {
159
+ type: 'card',
160
+ title: '데이터 전송',
161
+ html: '페이지의 총 용량이 전송되는 데이터 양을 결정합니다. 표준 모델은 네트워크 인프라에 대해 <code>0.81 kWh/GB</code>를 적용합니다.',
162
+ },
163
+ {
164
+ type: 'card',
165
+ title: '사용자 장치',
166
+ html: '페이지를 수신하는 컴퓨터나 모바일도 에너지를 소비합니다. 처리된 데이터당 <code>0.52 kWh/GB</code>로 추정됩니다.',
167
+ },
168
+ {
169
+ type: 'card',
170
+ title: '탄소 집약도',
171
+ html: '에너지 소비를 실제 탄소 배출량으로 변환하기 위해 글로벌 기준값인 <code>442 gCO₂/kWh</code>를 사용합니다.',
172
+ },
173
+ {
174
+ type: 'card',
175
+ title: '캐싱 요소',
176
+ html: '사용자의 25%가 이미 리소스를 캐시하고 있다고 가정하여 <code>0.75</code>의 계수를 적용합니다.',
177
+ },
178
+ {
179
+ type: 'title',
180
+ text: '효율성 등급의 의미',
181
+ level: 2,
182
+ },
183
+ {
184
+ type: 'list',
185
+ items: [
186
+ '<strong>A+ 및 A:</strong> 0.2g 미만의 CO₂. 매우 가볍고 최적화된 사이트입니다.',
187
+ '<strong>B:</strong> 0.2g~0.5g 사이. 글로벌 평균보다 낮습니다.',
188
+ '<strong>C:</strong> 0.5g~1g 사이. 현재 웹 환경의 평균 수준입니다.',
189
+ '<strong>D 및 E:</strong> 1g~4g 사이. 영향이 큰 무거운 페이지입니다.',
190
+ '<strong>F:</strong> 방문당 4g 이상. 환경적 영향이 매우 큽니다.',
191
+ ],
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: '웹사이트 탄소 발자국을 줄이는 방법',
196
+ level: 2,
197
+ },
198
+ {
199
+ type: 'card',
200
+ title: '이미지 최적화',
201
+ html: '<strong>WebP 또는 AVIF</strong> 형식을 사용하여 눈에 보이는 품질 손실 없이 용량을 최대 80%까지 줄이세요.',
202
+ },
203
+ {
204
+ type: 'card',
205
+ title: '서버 압축',
206
+ html: '<strong>Brotli 또는 GZIP</strong>을 활성화하면 텍스트 파일 용량을 최대 70%까지 줄일 수 있습니다.',
207
+ },
208
+ {
209
+ type: 'card',
210
+ title: '지속 가능한 호스팅',
211
+ html: '<strong>인증된 재생 가능 에너지</strong>를 사용하는 업체를 선택하면 영향을 거의 100% 줄일 수 있습니다.',
212
+ },
213
+ {
214
+ type: 'card',
215
+ title: '캐시 및 CDN',
216
+ html: '불필요한 재다운로드를 방지하기 위해 <strong>캐시 헤더 기간을 길게</strong> 설정하세요.',
217
+ },
218
+ {
219
+ type: 'title',
220
+ text: '인터넷이 기후에 미치는 실제 영향',
221
+ level: 2,
222
+ },
223
+ {
224
+ type: 'paragraph',
225
+ html: '인터넷은 <strong>전 세계 CO₂ 배출량의 2%~4%</strong>를 차지하며, 이는 항공 산업과 맞먹는 수치입니다. 단 몇 킬로바이트라도 줄이는 것은 단순히 웹사이트를 빠르게 만드는 것이 아니라, 디지털 오염을 실질적으로 줄이는 일입니다.',
226
+ },
227
+ ],
228
+ bibliography: [
229
+ { name: 'Sustainable Web Design Model', url: 'https://sustainablewebdesign.org/' },
230
+ { name: 'Website Carbon Calculator', url: 'https://www.websitecarbon.com/' },
231
+ { name: 'The Green Web Foundation', url: 'https://www.thegreenwebfoundation.org/' },
232
+ { name: 'W3C - Web Sustainability Guidelines', url: 'https://w3c.github.io/sustyweb/' },
233
+ ],
234
+ schemas: [faqSchema, howToSchema, appSchema],
235
+ };