feat(privacy): /privacy 공개 페이지 추가 — Play Store 등록용 개인정보 처리방침
Deploy momo-erp / deploy (push) Successful in 5m55s

- /privacy 라우트: 인증 미들웨어 면제. 시행일/수집항목/보유기간/제3자/안전성/연락처
- 추적·광고 SDK 없이 ERP 운영 데이터만 다루는 자체 서비스 기준으로 작성
- middleware publicPaths 에 /privacy 추가

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chpark
2026-05-20 10:41:58 +09:00
parent 326b790e4a
commit 80f490e8d6
2 changed files with 129 additions and 0 deletions
+128
View File
@@ -0,0 +1,128 @@
// 개인정보 처리방침 — 인증 미들웨어 면제 (Play Store 등록용 공개 URL).
// 추적/광고 SDK 없이 자체 ERP 운영 데이터만 다룸.
export const metadata = {
title: "개인정보 처리방침 | 모모유통 ERP",
description: "모모유통 ERP 앱의 개인정보 수집·이용·보관·파기에 대한 안내",
};
const EFFECTIVE_DATE = "2026-05-20";
const COMPANY = "모모유통";
const SERVICE = "모모유통 ERP";
const CONTACT_EMAIL = "momo8443@daum.net";
const CONTACT_PHONE = "010-6369-8443";
export default function PrivacyPage() {
return (
<main className="max-w-3xl mx-auto px-5 py-10 text-slate-800 leading-relaxed">
<h1 className="text-2xl font-bold mb-2"> </h1>
<p className="text-xs text-slate-500 mb-8">: {EFFECTIVE_DATE}</p>
<Sec n="1" t="개요">
<p>
{COMPANY}( ) {SERVICE}( ) ·,
. / .
</p>
</Sec>
<Sec n="2" t="수집하는 개인정보 항목">
<ul className="list-disc pl-5 space-y-1">
<li>·로그인: 이메일(), ( ), /</li>
<li> 관리: 전화번호, , , , ()</li>
<li>//결제: 발주 , , , </li>
<li> ( ): , IP, / , ( )</li>
</ul>
<p className="mt-2 text-sm text-slate-600">
(, ) .
</p>
</Sec>
<Sec n="3" t="수집·이용 목적">
<ul className="list-disc pl-5 space-y-1">
<li> ( )</li>
<li>/ , , , , ERP </li>
<li>/ </li>
<li> , </li>
</ul>
</Sec>
<Sec n="4" t="보유 및 이용 기간">
<ul className="list-disc pl-5 space-y-1">
<li> 정보: 회원 . , .</li>
<li> (//): 5 </li>
<li> : 3 </li>
</ul>
</Sec>
<Sec n="5" t="제3자 제공">
<p> . .</p>
<ul className="list-disc pl-5 space-y-1 mt-2">
<li> (: 거래처에 )</li>
<li> </li>
</ul>
</Sec>
<Sec n="6" t="처리 위탁">
<p>
. SMTP (coa-soft.com)
.
</p>
</Sec>
<Sec n="7" t="이용자의 권리">
<p> .</p>
<ul className="list-disc pl-5 space-y-1 mt-2">
<li>··· </li>
<li> ( )</li>
</ul>
<p className="mt-2 text-sm text-slate-600">
14 .
</p>
</Sec>
<Sec n="8" t="개인정보의 안전성 확보">
<ul className="list-disc pl-5 space-y-1">
<li> AES </li>
<li> HTTPS(TLS) </li>
<li> </li>
<li> / SDK </li>
</ul>
</Sec>
<Sec n="9" t="쿠키 사용">
<p>
<code className="font-mono text-xs bg-slate-100 px-1 rounded">plm-session</code> 1 .
· , .
</p>
</Sec>
<Sec n="10" t="개인정보 보호책임자">
<ul className="space-y-1">
<li>이름: 모모유통 </li>
<li>: <a href={`mailto:${CONTACT_EMAIL}`} className="text-blue-600 hover:underline">{CONTACT_EMAIL}</a></li>
<li>: {CONTACT_PHONE}</li>
</ul>
</Sec>
<Sec n="11" t="변경 고지">
<p>
·· 7 . ,
30 .
</p>
</Sec>
<footer className="mt-10 pt-6 border-t border-slate-200 text-xs text-slate-500">
{EFFECTIVE_DATE} .
</footer>
</main>
);
}
function Sec({ n, t, children }: { n: string; t: string; children: React.ReactNode }) {
return (
<section className="mb-6">
<h2 className="text-base font-bold text-slate-900 mb-2">{n}. {t}</h2>
<div className="text-sm">{children}</div>
</section>
);
}
+1
View File
@@ -9,6 +9,7 @@ export function middleware(request: NextRequest) {
"/login",
"/m/login",
"/signup",
"/privacy",
"/api/auth/login",
"/api/auth/signup",
"/api/auth/mobile-login",