개인정보처리방침 추가 및 회원가입 UI 개선

This commit is contained in:
CPABONG 2025-08-03 12:30:21 +09:00
parent 1693501d1c
commit d44c4fe510
10 changed files with 270 additions and 25 deletions

View File

@ -2,6 +2,7 @@ import re
from django import forms
from django.contrib.auth.models import User
from .models import Person
from .peopleinfo import PEOPLE
def format_phone_number(phone):
"""전화번호에서 대시 제거"""
@ -14,16 +15,20 @@ def format_phone_with_dash(phone):
return f"{phone[:3]}-{phone[3:7]}-{phone[7:]}"
return phone
# 허가된 사람들의 정보 (실제 데이터로 교체 필요)
PEOPLE = [
{'이름': '김봉수', '연락처': '01033433319'},
# ... 더 많은 사람들
]
# peopleinfo.py에서 PEOPLE 데이터를 가져와서 허가된 사람들의 정보로 변환
ALLOWED_PEOPLE = []
for person in PEOPLE:
# 전화번호에서 대시 제거
phone_without_dash = format_phone_number(person['연락처'])
ALLOWED_PEOPLE.append({
'이름': person['이름'],
'연락처': phone_without_dash
})
def is_allowed_person(name, phone):
"""허가된 사람인지 확인"""
formatted_phone = format_phone_number(phone)
for person in PEOPLE:
for person in ALLOWED_PEOPLE:
if person['이름'] == name and person['연락처'] == formatted_phone:
return True
return False
@ -55,11 +60,11 @@ def is_already_registered(name, phone):
def get_allowed_names():
"""허가된 모든 이름 목록 반환"""
return [person['이름'] for person in PEOPLE]
return [person['이름'] for person in ALLOWED_PEOPLE]
def get_phone_by_name(name):
"""이름으로 전화번호 찾기"""
for person in PEOPLE:
for person in ALLOWED_PEOPLE:
if person['이름'] == name:
return person['연락처']
return None
@ -137,7 +142,7 @@ class Step2AccountForm(forms.Form):
)
privacy_agreement = forms.BooleanField(
required=True,
label='정보공개 동의',
label='정보공개 및 개인정보처리방침 동의',
widget=forms.CheckboxInput(attrs={
'class': 'w-4 h-4 text-blue-600 bg-gray-700 border-gray-600 rounded focus:ring-blue-500 focus:ring-2'
})
@ -147,10 +152,14 @@ class Step2AccountForm(forms.Form):
cleaned_data = super().clean()
password1 = cleaned_data.get('password1')
password2 = cleaned_data.get('password2')
privacy_agreement = cleaned_data.get('privacy_agreement')
if password1 and password2 and password1 != password2:
raise forms.ValidationError('비밀번호가 일치하지 않습니다.')
if not privacy_agreement:
raise forms.ValidationError('정보공개 및 개인정보처리방침 동의는 필수입니다.')
return cleaned_data
def save(self, name, phone, request, commit=True):

View File

@ -102,12 +102,12 @@
<label for="{{ form2.privacy_agreement.id_for_label }}" class="block text-base font-semibold text-white cursor-pointer mb-2">
{{ form2.privacy_agreement.label }}
</label>
</div>
</div>
{% if form2.privacy_agreement.help_text %}
<div class="text-sm text-gray-300 leading-relaxed text-left mt-3 ml-3">
<div class="text-sm text-gray-300 leading-relaxed text-left mt-3 -ml-8">
<div class="bg-gray-800 bg-opacity-50 p-3 rounded-lg border border-gray-600 max-h-40 overflow-y-auto text-xs">
<div class="text-gray-300 leading-relaxed">
<p class="mb-2"><strong>1. 정보공개 동의</strong></p>
<p class="mb-2 text-left">다음 정보의 공개에 동의합니다:</p>
<ul class="list-disc list-inside space-y-1 text-gray-300 text-left">
<ul class="list-disc list-inside space-y-1 text-gray-300 text-left mb-3">
<li>이름</li>
<li>생년월일</li>
<li>소속</li>
@ -116,9 +116,27 @@
<li>주소</li>
<li>사진</li>
</ul>
<p class="mt-3 text-yellow-300 font-medium text-left">※ 위 정보는 신라 AMP 제8기 수강생들 간에 공유됩니다.</p>
<p class="mb-3 text-yellow-300 font-medium text-left">※ 위 정보는 신라 AMP 제8기 수강생들 간에 공유됩니다.</p>
<p class="mb-2"><strong>2. 개인정보처리방침 동의</strong></p>
<p class="mb-2"><strong>신라 AMP</strong>은 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.</p>
<ul class="list-disc list-inside space-y-1 mb-2">
<li>회원 가입의사 확인, 회원에 대한 서비스 제공에 따른 본인 식별·인증</li>
<li>회원자격 유지·관리, 서비스 이용에 따른 본인확인</li>
<li>신라 AMP 제8기 수강생들 간의 정보 공유 및 커뮤니케이션</li>
<li>서비스 이용에 대한 통계 및 분석</li>
</ul>
<p class="mb-2"><strong>수집하는 개인정보 항목:</strong></p>
<ul class="list-disc list-inside space-y-1 mb-2">
<li><strong>필수항목</strong>: 이름, 전화번호, 소속, 직책, 주소, 생년월일, 사진</li>
</ul>
<p class="mb-2"><strong>보유기간</strong>: 회원의 회원탈퇴 및 파기요청시 지체없이 파기</p>
<p class="text-yellow-300 font-medium">※ 자세한 내용은 <a href="{% url 'privacy_policy' %}" target="_blank" class="text-blue-400 hover:text-blue-300 underline">개인정보처리방침</a>을 참조하세요.</p>
</div>
</div>
</div>
</div>
</div>
{% endif %}
</div>
<button type="submit" class="w-full py-3 bg-blue-600 hover:bg-blue-700 active:bg-blue-800 rounded-xl text-white font-semibold text-base transition duration-200 shadow-md hover:shadow-lg">

View File

@ -13,6 +13,7 @@ urlpatterns = [
path('withdraw/', views.withdraw, name='withdraw'),
path('session_logout/', views.session_logout, name='session_logout'),
path('signup/', views.signup_view, name='signup'),
path('privacy-policy/', views.privacy_policy, name='privacy_policy'),
]
if settings.DEBUG:

View File

@ -371,3 +371,7 @@ def signup_view(request):
request.session['signup_step'] = 1
request.session['signup_verified'] = False
return redirect('signup')
def privacy_policy(request):
"""개인정보처리방침 페이지"""
return render(request, 'privacy_policy.html')

Binary file not shown.

1
tatus Normal file
View File

@ -0,0 +1 @@
* master

View File

@ -0,0 +1,212 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>개인정보처리방침 | 신라 AMP</title>
<style>
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.6;
color: #333;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f5;
}
.container {
background: white;
padding: 40px;
border-radius: 12px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
h1 {
color: #1f2937;
border-bottom: 3px solid #3b82f6;
padding-bottom: 10px;
margin-bottom: 30px;
}
h2 {
color: #374151;
margin-top: 30px;
margin-bottom: 15px;
font-size: 1.25rem;
}
h3 {
color: #4b5563;
margin-top: 20px;
margin-bottom: 10px;
font-size: 1.1rem;
}
p {
margin-bottom: 15px;
text-align: justify;
}
ul {
margin-bottom: 15px;
padding-left: 20px;
}
li {
margin-bottom: 8px;
}
.highlight {
background-color: #fef3c7;
padding: 15px;
border-radius: 8px;
border-left: 4px solid #f59e0b;
margin: 20px 0;
}
.contact-info {
background-color: #e0f2fe;
padding: 20px;
border-radius: 8px;
border-left: 4px solid #0288d1;
margin: 20px 0;
}
.footer {
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #e5e7eb;
text-align: center;
color: #6b7280;
font-size: 0.9rem;
}
</style>
</head>
<body>
<div class="container">
<h1>개인정보처리방침</h1>
<p><strong>신라 AMP</strong>('신라 AMP'이하 '신라 AMP')은 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.</p>
<h2>1. 개인정보의 처리 목적</h2>
<p>신라 AMP은 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.</p>
<ul>
<li>회원 가입의사 확인, 회원에 대한 서비스 제공에 따른 본인 식별·인증</li>
<li>회원자격 유지·관리, 서비스 이용에 따른 본인확인</li>
<li>신라 AMP 제8기 수강생들 간의 정보 공유 및 커뮤니케이션</li>
<li>서비스 이용에 대한 통계 및 분석</li>
</ul>
<h2>2. 개인정보의 처리 및 보유 기간</h2>
<p>① 신라 AMP은 정보주체로부터 개인정보를 수집할 때 동의 받은 개인정보 보유·이용기간 또는 법령에 따른 개인정보 보유·이용기간 내에서 개인정보를 처리·보유합니다.</p>
<p>② 구체적인 개인정보 처리 및 보유 기간은 다음과 같습니다.</p>
<ul>
<li><strong>회원 가입 및 관리</strong>: 회원가입 및 서비스 이용을 통한 관리</li>
<li><strong>보유 기간</strong>: 회원 탈퇴 시, 즉시 삭제</li>
</ul>
<h2>3. 정보주체와 법정대리인의 권리·의무 및 그 행사방법</h2>
<p>이용자는 개인정보주체로써 다음과 같은 권리를 행사할 수 있습니다.</p>
<p>① 정보주체는 신라 AMP에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.</p>
<ul>
<li>개인정보 열람요구</li>
<li>오류 등이 있을 경우 정정 요구</li>
<li>삭제요구</li>
<li>처리정지 요구</li>
</ul>
<h2>4. 처리하는 개인정보의 항목</h2>
<p>① 신라 AMP은 다음의 개인정보 항목을 처리하고 있습니다.</p>
<div class="highlight">
<h3>신라 AMP에서 수집하는 개인정보 항목</h3>
<p>신라 AMP 회원 가입 시, 제공 동의를 해주시는 개인정보 수집 항목입니다.</p>
<h4>■ 회원 가입 시(회원)</h4>
<ul>
<li><strong>필수항목</strong>: 이름, 전화번호, 비밀번호</li>
<li><strong>선택항목</strong>: 이메일, 소속, 직책, 주소, 생년월일, 사진, 키워드</li>
<li><strong>수집목적</strong>: 신라 AMP 회원관리 및 수강생 간 정보 공유</li>
<li><strong>보유기간</strong>: 회원 탈퇴 또는 동의철회 시 지체없이 파기</li>
</ul>
</div>
<p>② 신라 AMP은 만 14세 미만 아동의 개인정보를 보호하기 위하여 회원가입은 만14세 이상만 가능하도록 함으로써 아동의 개인정보를 수집하지 않습니다.</p>
<h2>5. 개인정보의 파기</h2>
<p>신라 AMP은 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.</p>
<h3>- 파기절차</h3>
<p>이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.</p>
<h3>- 파기기한</h3>
<p>이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.</p>
<h2>6. 개인정보 자동 수집 장치의 설치·운영 및 거부에 관한 사항</h2>
<p>① 신라 AMP은 개별적인 맞춤서비스를 제공하기 위해 이용정보를 저장하고 수시로 불러오는 '쿠키(cookie)'를 사용합니다.</p>
<p>② 쿠키는 웹사이트를 운영하는데 이용되는 서버(https)가 이용자의 컴퓨터 브라우저에게 보내는 소량의 정보이며 이용자들의 PC 컴퓨터내의 하드디스크에 저장되기도 합니다.</p>
<ul>
<li><strong>쿠키의 사용 목적</strong>: 이용자가 방문한 각 서비스와 웹 사이트들에 대한 방문 및 이용형태, 인기 검색어, 보안접속 여부, 등을 파악하여 이용자에게 최적화된 정보 제공을 위해 사용됩니다.</li>
<li><strong>쿠키의 설치·운영 및 거부</strong>: 웹브라우저 상단의 도구>인터넷 옵션>개인정보 메뉴의 옵션 설정을 통해 쿠키 저장을 거부 할 수 있습니다.</li>
<li><strong>쿠키 저장을 거부할 경우</strong> 맞춤형 서비스 이용에 어려움이 발생할 수 있습니다.</li>
</ul>
<h2>7. 개인정보 보호책임자</h2>
<p>① 신라 AMP은 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.</p>
<div class="contact-info">
<h3>▶ 개인정보 보호책임자</h3>
<p><strong>성명</strong>: 신라 AMP 관리자<br>
<strong>직책</strong>: 관리자<br>
<strong>연락처</strong>: admin@sillaamp.com</p>
</div>
<p>② 신라 AMP의 서비스를 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자로 문의하실 수 있습니다.</p>
<p>신라 AMP은 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.</p>
<h2>8. 개인정보 처리방침 변경</h2>
<p>① 이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.</p>
<h2>9. 개인정보의 안전성 확보 조치</h2>
<p>신라 AMP은 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.</p>
<h3>① 개인정보 취급 직원의 최소화 및 교육</h3>
<p>개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.</p>
<h3>② 해킹 등에 대비한 기술적 대책</h3>
<p>신라 AMP은 해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로그램을 설치하고 주기적인 갱신·점검을 하며 외부로부터 접근이 통제된 구역에 시스템을 설치하고 기술적/물리적으로 감시 및 차단하고 있습니다.</p>
<h3>③ 개인정보의 암호화</h3>
<p>이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의 별도 보안기능을 사용하고 있습니다.</p>
<h3>④ 접속기록의 보관 및 위변조 방지</h3>
<p>개인정보처리시스템에 접속한 기록을 최소 6개월 이상 보관, 관리하고 있으며, 접속 기록이 위변조 및 도난, 분실되지 않도록 보안기능 사용하고 있습니다.</p>
<h3>⑤ 개인정보에 대한 접근 제한</h3>
<p>개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.</p>
<h2>10. 정보주체의 권익침해에 대한 구제방법</h2>
<p>아래의 기관은 신라 AMP과는 별개의 기관으로서, 신라 AMP의 자체적인 개인정보 불만처리, 피해구제 결과에 만족하지 못하시거나 보다 자세한 도움이 필요하시면 문의하여 주시기 바랍니다.</p>
<div class="contact-info">
<h3>▶ 개인정보 침해신고센터 (한국인터넷진흥원 운영)</h3>
<ul>
<li><strong>소관업무</strong>: 개인정보 침해사실 신고, 상담 신청</li>
<li><strong>홈페이지</strong>: privacy.kisa.or.kr</li>
<li><strong>전화</strong>: (국번없이) 118</li>
<li><strong>주소</strong>: (58324) 전남 나주시 진흥길 9(빛가람동 301-2) 3층 개인정보침해신고센터</li>
</ul>
<h3>▶ 개인정보 분쟁조정위원회</h3>
<ul>
<li><strong>소관업무</strong>: 개인정보 분쟁조정신청, 집단분쟁조정 (민사적 해결)</li>
<li><strong>홈페이지</strong>: www.kopico.go.kr</li>
<li><strong>전화</strong>: (국번없이) 1833-6972</li>
<li><strong>주소</strong>: (03171)서울특별시 종로구 세종대로 209 정부서울청사 4층</li>
</ul>
<h3>▶ 대검찰청 사이버범죄수사단</h3>
<p><strong>전화</strong>: 02-3480-3573 (www.spo.go.kr)</p>
<h3>▶ 경찰청 사이버안전국</h3>
<p><strong>전화</strong>: 182 (http://cyberbureau.police.go.kr)</p>
</div>
<div class="footer">
<p><strong>시행일자</strong>: 2024년 1월 1일</p>
<p>본 개인정보처리방침은 신라 AMP 서비스 이용과 관련된 개인정보 보호에 대한 정책을 담고 있습니다.</p>
</div>
</div>
</body>
</html>