Skip to content

Commit c9f6502

Browse files
committed
feat(legal): add privacy policy and terms of service pages
1 parent 19d593e commit c9f6502

File tree

6 files changed

+314
-3
lines changed

6 files changed

+314
-3
lines changed

prerender.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export default {
66
"/about",
77
"/quiz",
88
"/reactionSpeed",
9+
"/privacy",
10+
"/terms",
911
],
1012
outDir: "prerendered",
1113
serveDir: "dist",

public/sitemap.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,10 @@
1818
<url>
1919
<loc>https://fearless-lab.github.io/reactionSpeed/</loc>
2020
</url>
21+
<url>
22+
<loc>https://fearless-lab.github.io/privacy/</loc>
23+
</url>
24+
<url>
25+
<loc>https://fearless-lab.github.io/terms/</loc>
26+
</url>
2127
</urlset>

src/App.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import BanPickSimulation from "./pages/BanPickSimulation";
1212
import About from "./pages/About";
1313
import Quiz from "@/pages/Quiz";
1414
import ReactionSpeed from "@/pages/ReactionSpeed";
15+
import Privacy from "@/pages/Privacy";
16+
import Terms from "@/pages/Terms";
1517

1618
gsap.registerPlugin(ScrollTrigger, SplitText);
1719

@@ -29,6 +31,8 @@ function App() {
2931
<Route path="/about" element={<About />} />
3032
<Route path="/quiz" element={<Quiz />} />
3133
<Route path="/reactionSpeed" element={<ReactionSpeed />} />
34+
<Route path="/privacy" element={<Privacy />} />
35+
<Route path="/terms" element={<Terms />} />
3236

3337
<Route path="*" element={<NotFound />} />
3438
</Routes>

src/components/Footer.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,16 @@ const Footer = () => {
77
<div>
88
© {new Date().getFullYear()} Jinyoung Kim. All rights reserved.
99
</div>
10-
<div>
11-
<Link to="/about" className="text-[#027b96] hover:underline">
12-
Contact & Who’s This For?
10+
<div className="flex justify-center gap-4 my-2">
11+
<Link to="/privacy" className="text-white hover:underline">
12+
개인정보처리방침
13+
</Link>
14+
<span className="text-gray-600">|</span>
15+
<Link to="/terms" className="text-white hover:underline">
16+
이용약관
1317
</Link>
18+
</div>
19+
<div>
1420
<p className="my-2">
1521
This site is not affiliated with or endorsed by Riot Games, Inc.
1622
</p>

src/pages/Privacy.tsx

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
const Privacy = () => {
2+
return (
3+
<>
4+
<title>개인정보처리방침 | Fearless</title>
5+
<meta
6+
name="description"
7+
content="Fearless 개인정보처리방침. Google Analytics, Google AdSense 사용 및 쿠키 정책에 대해 안내합니다."
8+
/>
9+
<link rel="canonical" href="https://fearless-lab.github.io/privacy" />
10+
11+
<meta property="og:type" content="website" />
12+
<meta property="og:title" content="개인정보처리방침 - Fearless" />
13+
<meta
14+
property="og:description"
15+
content="Fearless 개인정보처리방침 및 쿠키 정책 안내"
16+
/>
17+
<meta property="og:url" content="https://fearless-lab.github.io/privacy" />
18+
19+
<div className="min-h-[100dvh] flex flex-col items-center justify-center px-6 py-32 text-white">
20+
<div className="max-w-3xl w-full">
21+
<h1 className="text-3xl md:text-4xl font-bold mb-8 text-center bg-gradient-to-r from-cyan-400 via-blue-400 to-purple-400 bg-clip-text text-transparent">
22+
개인정보처리방침
23+
</h1>
24+
25+
<div className="space-y-8 text-gray-300 leading-relaxed">
26+
<section>
27+
<h2 className="text-xl font-semibold text-white mb-3">
28+
1. 수집하는 정보
29+
</h2>
30+
<p>Fearless는 다음과 같은 정보를 수집합니다:</p>
31+
<ul className="list-disc list-inside mt-2 space-y-1 text-gray-400">
32+
<li>
33+
<strong>자동 수집 정보:</strong> 서비스 이용 통계 (Google
34+
Analytics)
35+
</li>
36+
<li>
37+
<strong>서비스 이용 정보:</strong> 밴픽 기록 (서비스 기능 제공
38+
목적으로만 사용)
39+
</li>
40+
</ul>
41+
</section>
42+
43+
<section>
44+
<h2 className="text-xl font-semibold text-white mb-3">
45+
2. 정보 이용 목적
46+
</h2>
47+
<ul className="list-disc list-inside space-y-1 text-gray-400">
48+
<li>
49+
<strong>Google Analytics:</strong> 서비스 이용 통계 분석 및
50+
서비스 개선
51+
</li>
52+
<li>
53+
<strong>Google AdSense:</strong> 광고 제공
54+
</li>
55+
<li>
56+
<strong>밴픽 기록:</strong> 사용자의 밴픽 시뮬레이션 기능 제공
57+
(다른 목적으로 활용되지 않음)
58+
</li>
59+
</ul>
60+
</section>
61+
62+
<section>
63+
<h2 className="text-xl font-semibold text-white mb-3">
64+
3. 쿠키(Cookie) 사용
65+
</h2>
66+
<p>
67+
본 웹사이트는 Google Analytics와 Google AdSense에서 쿠키를
68+
사용합니다. 브라우저 설정에서 쿠키를 거부할 수 있습니다.
69+
</p>
70+
</section>
71+
72+
<section>
73+
<h2 className="text-xl font-semibold text-white mb-3">
74+
4. 제3자 서비스
75+
</h2>
76+
<p>본 서비스는 다음 제3자 서비스를 사용합니다:</p>
77+
<ul className="list-disc list-inside mt-2 space-y-1 text-gray-400">
78+
<li>
79+
<strong>Google Analytics:</strong> 웹사이트 트래픽 분석
80+
</li>
81+
<li>
82+
<strong>Google AdSense:</strong> 광고 제공
83+
</li>
84+
<li>
85+
<strong>Firebase:</strong> 밴픽 기록 저장
86+
</li>
87+
</ul>
88+
<p className="mt-2">
89+
Google의 개인정보 처리에 대한 자세한 내용은{" "}
90+
<a
91+
href="https://policies.google.com/privacy"
92+
target="_blank"
93+
rel="noopener noreferrer"
94+
className="text-cyan-400 hover:underline"
95+
>
96+
Google 개인정보처리방침
97+
</a>
98+
을 참조하세요.
99+
</p>
100+
</section>
101+
102+
<section>
103+
<h2 className="text-xl font-semibold text-white mb-3">
104+
5. 이용자의 권리
105+
</h2>
106+
<p>
107+
이용자는 언제든지 브라우저 설정을 통해 쿠키 수집을 거부하거나
108+
저장된 쿠키를 삭제할 수 있습니다.
109+
</p>
110+
</section>
111+
112+
<section>
113+
<h2 className="text-xl font-semibold text-white mb-3">
114+
6. 문의처
115+
</h2>
116+
<p>개인정보 관련 문의사항은 아래 이메일로 연락해 주세요:</p>
117+
<p className="mt-2">
118+
<a
119+
href="mailto:[email protected]"
120+
className="text-cyan-400 hover:underline"
121+
>
122+
123+
</a>
124+
</p>
125+
</section>
126+
127+
<section className="pt-4 border-t border-white/10">
128+
<p className="text-sm text-gray-500">
129+
본 개인정보처리방침은 2025년 1월 22일부터 적용됩니다.
130+
</p>
131+
</section>
132+
</div>
133+
</div>
134+
</div>
135+
</>
136+
);
137+
};
138+
139+
export default Privacy;

src/pages/Terms.tsx

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
const Terms = () => {
2+
return (
3+
<>
4+
<title>이용약관 | Fearless</title>
5+
<meta
6+
name="description"
7+
content="Fearless 서비스 이용약관. 서비스 이용 조건, Riot Games 관련 고지, 면책 조항을 안내합니다."
8+
/>
9+
<link rel="canonical" href="https://fearless-lab.github.io/terms" />
10+
11+
<meta property="og:type" content="website" />
12+
<meta property="og:title" content="이용약관 - Fearless" />
13+
<meta property="og:description" content="Fearless 서비스 이용약관 안내" />
14+
<meta property="og:url" content="https://fearless-lab.github.io/terms" />
15+
16+
<div className="min-h-[100dvh] flex flex-col items-center justify-center px-6 py-32 text-white">
17+
<div className="max-w-3xl w-full">
18+
<h1 className="text-3xl md:text-4xl font-bold mb-8 text-center bg-gradient-to-r from-cyan-400 via-blue-400 to-purple-400 bg-clip-text text-transparent">
19+
이용약관
20+
</h1>
21+
22+
<div className="space-y-8 text-gray-300 leading-relaxed">
23+
<section>
24+
<h2 className="text-xl font-semibold text-white mb-3">
25+
제1조 (목적)
26+
</h2>
27+
<p>
28+
본 약관은 Fearless(이하 "서비스")가 제공하는 웹 서비스의 이용
29+
조건 및 절차에 관한 사항을 규정함을 목적으로 합니다.
30+
</p>
31+
</section>
32+
33+
<section>
34+
<h2 className="text-xl font-semibold text-white mb-3">
35+
제2조 (서비스의 내용)
36+
</h2>
37+
<p>본 서비스는 다음과 같은 기능을 제공합니다:</p>
38+
<ul className="list-disc list-inside mt-2 space-y-1 text-gray-400">
39+
<li>리그 오브 레전드 모의 밴픽 시뮬레이션</li>
40+
<li>아이템 퀴즈 게임</li>
41+
<li>반응속도 테스트</li>
42+
</ul>
43+
</section>
44+
45+
<section>
46+
<h2 className="text-xl font-semibold text-white mb-3">
47+
제3조 (Riot Games 관련 고지)
48+
</h2>
49+
<p>
50+
본 서비스는 Riot Games, Inc.와 제휴하거나 보증받지 않았습니다.
51+
</p>
52+
<p className="mt-2">
53+
League of Legends 및 모든 관련 자산은 Riot Games, Inc.의 상표
54+
또는 등록 상표입니다.
55+
</p>
56+
<p className="mt-2">
57+
본 서비스에서 사용되는 챔피언 이미지, 아이템 이미지 등은 Riot
58+
Games의 Data Dragon API를 통해 제공되며, Riot Games의 커뮤니티
59+
정책에 따라 사용됩니다.
60+
</p>
61+
</section>
62+
63+
<section>
64+
<h2 className="text-xl font-semibold text-white mb-3">
65+
제4조 (이용자의 의무)
66+
</h2>
67+
<ul className="list-disc list-inside space-y-1 text-gray-400">
68+
<li>서비스를 이용함에 있어 관련 법령을 준수해야 합니다.</li>
69+
<li>
70+
다른 이용자의 서비스 이용을 방해하는 행위를 해서는 안 됩니다.
71+
</li>
72+
<li>
73+
서비스의 안정적 운영을 방해하는 행위를 해서는 안 됩니다.
74+
</li>
75+
</ul>
76+
</section>
77+
78+
<section>
79+
<h2 className="text-xl font-semibold text-white mb-3">
80+
제5조 (면책 조항)
81+
</h2>
82+
<ul className="list-disc list-inside space-y-1 text-gray-400">
83+
<li>
84+
본 서비스는 "있는 그대로" 제공되며, 어떠한 명시적 또는 묵시적
85+
보증도 하지 않습니다.
86+
</li>
87+
<li>
88+
서비스 이용으로 인해 발생하는 손해에 대해 책임을 지지
89+
않습니다.
90+
</li>
91+
<li>
92+
서비스에서 제공하는 게임 데이터의 정확성을 보장하지 않습니다.
93+
</li>
94+
</ul>
95+
</section>
96+
97+
<section>
98+
<h2 className="text-xl font-semibold text-white mb-3">
99+
제6조 (서비스의 변경 및 중단)
100+
</h2>
101+
<p>
102+
서비스 제공자는 사전 통지 없이 서비스의 내용을 변경하거나
103+
서비스를 중단할 수 있습니다.
104+
</p>
105+
</section>
106+
107+
<section>
108+
<h2 className="text-xl font-semibold text-white mb-3">
109+
제7조 (광고)
110+
</h2>
111+
<p>
112+
본 서비스는 Google AdSense를 통해 광고를 게재할 수 있습니다.
113+
광고와 관련된 개인정보 처리는 개인정보처리방침을 참조하세요.
114+
</p>
115+
</section>
116+
117+
<section>
118+
<h2 className="text-xl font-semibold text-white mb-3">
119+
제8조 (약관의 변경)
120+
</h2>
121+
<p>
122+
본 약관은 필요에 따라 변경될 수 있으며, 변경된 약관은 서비스 내
123+
공지를 통해 효력을 발생합니다.
124+
</p>
125+
</section>
126+
127+
<section>
128+
<h2 className="text-xl font-semibold text-white mb-3">
129+
제9조 (문의처)
130+
</h2>
131+
<p>서비스 이용 관련 문의사항은 아래 이메일로 연락해 주세요:</p>
132+
<p className="mt-2">
133+
<a
134+
href="mailto:[email protected]"
135+
className="text-cyan-400 hover:underline"
136+
>
137+
138+
</a>
139+
</p>
140+
</section>
141+
142+
<section className="pt-4 border-t border-white/10">
143+
<p className="text-sm text-gray-500">
144+
본 이용약관은 2025년 1월 22일부터 적용됩니다.
145+
</p>
146+
</section>
147+
</div>
148+
</div>
149+
</div>
150+
</>
151+
);
152+
};
153+
154+
export default Terms;

0 commit comments

Comments
 (0)