8.0 KiB
8.0 KiB
이단 탈퇴자 교리점검표 웹서비스
기독교대한감리회 신앙고백에 따른 이단 탈퇴자를 위한 교리점검표 설문 폼 서비스입니다.
주요 기능
- 접근 인증 - 인증키를 통한 접근 제어 (링크를 받은 사람만 사용 가능)
- 설문응답자 기본 정보 입력 - 이름, 교구, 이단교단 (기타 선택 시 직접 입력)
- 기독교대한감리회 신앙고백 교리 점검 - 8개 문항 (예/아니오/모르겠습니다)
- 이단 일반 교리 점검 - 17개 문항 (예/아니오/모르겠습니다, 7번은 기타의견란 작성)
- 이단 상세 점검 - 선택한 이단에 따라 다른 문항 (예/아니오/모르겠습니다, 일부는 기타의견란 작성)
- 간증문 입력 - 상담 소감 작성
- 워드 문서 자동 생성 - 응답 내용을 워드 문서로 자동 생성 (표 형식)
- 구글 드라이브 자동 업로드 - 생성된 문서를 구글 드라이브에 업로드 (선택사항)
설문 흐름
- 인증 - 인증키 입력
- 1단계: 기본 정보 - 이름, 교구, 이단교단 입력
- 2단계: 감리교 신앙고백 - 8개 문항
- 3단계: 이단 일반 점검 - 17개 문항
- 4단계: 이단 상세 점검 - 이단별 문항 (기타 선택 시 건너뜀)
- 5단계: 간증문 - 상담 소감 작성
- 완료 - 제출 완료 및 로그아웃
설치 방법
1. 의존성 설치
pip install -r requirements.txt
2. 환경 변수 설정
.env 파일을 생성하고 다음 내용을 입력하세요:
SECRET_KEY=your-secret-key-here
ACCESS_KEY=your-access-key-here
GOOGLE_DRIVE_CREDENTIALS_FILE=credentials.json
GOOGLE_DRIVE_TOKEN_FILE=token.json
GOOGLE_DRIVE_FOLDER_ID=your-google-drive-folder-id
인증키 설정:
ACCESS_KEY: 서비스 접근을 위한 인증키입니다.- 기본값:
Kx9mP2vQ7nR4tY8wZ3bC6hJ1fL5dN0sA8uE2iM7o(프로덕션에서는 반드시 변경하세요) - 사용자는 이 인증키를 입력해야만 설문에 접근할 수 있습니다.
.env파일에서ACCESS_KEY를 설정하면 기본값을 덮어씁니다.
3. 구글 드라이브 API 설정 (선택사항)
- Google Cloud Console에서 프로젝트 생성
- Google Drive API 활성화
- OAuth 2.0 클라이언트 ID 생성 (데스크톱 애플리케이션)
credentials.json파일을 프로젝트 루트에 저장- 구글 드라이브에 업로드할 폴더를 생성하고 폴더 ID를
.env에 설정
참고: 구글 드라이브 설정이 없어도 서비스는 정상 작동하며, 로컬에 파일이 저장됩니다.
실행 방법
python app.py
서버가 실행되면 브라우저에서 http://localhost:5000으로 접속하세요.
프로젝트 구조
.
├── app.py # Flask 메인 애플리케이션
├── config.py # 설정 파일 (교구 목록, 이단 목록, 이단별 문항)
├── requirements.txt # Python 의존성
├── .env # 환경 변수 (생성 필요)
├── credentials.json # 구글 드라이브 인증 파일 (선택사항)
├── token.json # 구글 드라이브 토큰 (자동 생성, 선택사항)
├── templates/ # HTML 템플릿
│ ├── base.html
│ ├── auth.html
│ ├── index.html
│ ├── step1.html
│ ├── step2.html
│ ├── step3.html
│ ├── step4.html
│ ├── step5.html
│ └── complete.html
├── static/ # 정적 파일
│ ├── style.css
│ └── script.js
├── word_templates/ # 워드 템플릿 파일 (선택사항)
├── output/ # 생성된 문서 저장 폴더 (자동 생성)
└── utils/ # 유틸리티 모듈
├── word_processor.py
└── google_drive.py
워드 문서 구조
생성되는 워드 문서는 다음과 같은 구조를 가집니다:
-
문서 상단
- 제목: "이단 탈퇴자 교리점검표"
- 기본 정보: 이름 | 교구 | 이단교단
-
별첨 목록
- 별첨1: 감리교 신앙고백서 확인점검
- 별첨2: 이단 일반 점검
- 별첨3: 이단 상세 점검
- 별첨4: 간증문
-
[별첨1] 감리교 신앙고백서 확인점검
- 표 형식 (문항 | 응답)
- 8개 문항
-
[별첨2] 이단 일반 점검
- 표 형식 (문항 | 응답)
- 17개 문항
- 기타의견 (7번 문항 답변 포함)
-
[별첨3] 이단 상세 점검 (기타 선택 시 생략)
- 표 형식 (문항 | 응답)
- 선택한 이단에 따라 다른 문항
- 기타의견 (일부 문항 답변 포함)
-
[별첨4] 간증문
- 간증문 내용
지원하는 이단
- 신천지 (17개 문항)
- 하나님의교회 (9개 문항)
- 다락방 (12개 문항)
- 구원파 (박옥수,이요한,유병언) (13개 문항)
- JMS (14개 문항, 3번은 기타의견란)
- 성락교회 (베뢰아) (10개 문항, 8번은 기타의견란)
- 통일교 (8개 문항)
- 몰몬교 (12개 문항)
- 안식교 (12개 문항)
- 사랑하는교회 (8개 문항)
- 예수중심교회 (이초석) (8개 문항)
- 기타 (위 선택지에 없을 경우) - 직접 입력, 상세 점검 생략
리눅스 서버 배포
1. Gunicorn 설치
pip install gunicorn
2. Gunicorn으로 실행
gunicorn -w 4 -b 0.0.0.0:5000 app:app
3. systemd 서비스로 등록 (선택사항)
/etc/systemd/system/doctrine-check.service 파일 생성:
[Unit]
Description=Doctrine Check Web Service
After=network.target
[Service]
User=your-user
WorkingDirectory=/path/to/doctrine-check
Environment="PATH=/path/to/venv/bin"
ExecStart=/path/to/venv/bin/gunicorn -w 4 -b 0.0.0.0:5000 app:app
[Install]
WantedBy=multi-user.target
서비스 시작:
sudo systemctl start doctrine-check
sudo systemctl enable doctrine-check
4. Nginx 리버스 프록시 설정 (선택사항)
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
주요 기능 상세
세션 관리
- 각 단계의 입력 내용은 세션에 저장됩니다
- 뒤로가기 시 이전 입력 내용이 자동으로 채워집니다
- 제출 완료 후 complete 페이지에서 로그아웃 버튼으로 세션 삭제
파일 관리
- 구글 드라이브 업로드 성공 시: 로컬 파일 자동 삭제
- 구글 드라이브 업로드 실패 시: 로컬 파일 유지 (
output/폴더) - 구글 드라이브 미설정 시: 로컬 파일 유지
검증 기능
- 기타의견란 필수 문항 검증 (step3의 7번, step4의 일부 문항)
- 클라이언트 및 서버 양쪽에서 검증
주의사항
- 프로덕션 환경에서는
SECRET_KEY와ACCESS_KEY를 안전하게 설정하세요 - 인증키는 링크를 받은 사람에게만 전달하세요
- 구글 드라이브 API 인증 정보는 절대 공개하지 마세요
output/디렉토리의 파일은 정기적으로 정리하세요- HTTPS를 사용하여 데이터 보안을 강화하세요
- 서버 환경에서는 구글 드라이브 인증을 로컬에서 먼저 완료하여
token.json을 생성해야 합니다
인증키 관리
- 기본 인증키:
Kx9mP2vQ7nR4tY8wZ3bC6hJ1fL5dN0sA8uE2iM7o - 인증키는
.env파일의ACCESS_KEY로 변경할 수 있습니다 - 사용자는 서비스 접속 시 인증 페이지(
/auth)에서 인증키를 입력해야 합니다 - 인증 후 세션에 저장되며, 로그아웃 시 세션이 삭제됩니다
로깅
서비스는 상세한 로그를 출력합니다:
- 구글 드라이브 초기화 상태
- 구글 드라이브 업로드 시도/성공/실패
- 파일 삭제 상태
- 세션 관리 상태
라이선스
이 프로젝트는 기독교대한감리회를 위한 내부 사용 목적으로 제작되었습니다.