2025-12-12 16:43:57 +09:00
2025-12-11 11:12:20 +09:00
2025-12-12 16:38:03 +09:00
2025-12-11 11:12:20 +09:00
2025-12-12 16:43:57 +09:00
2025-12-10 13:27:48 +09:00

이단 탈퇴자 교리점검표 웹서비스

기독교대한감리회 신앙고백에 따른 이단 탈퇴자를 위한 교리점검표 설문 폼 서비스입니다.

주요 기능

  1. 접근 인증 - 인증키를 통한 접근 제어 (링크를 받은 사람만 사용 가능)
  2. 설문응답자 기본 정보 입력 - 이름, 교구, 이단교단 (기타 선택 시 직접 입력)
  3. 기독교대한감리회 신앙고백 교리 점검 - 8개 문항 (예/아니오/모르겠습니다)
  4. 이단 일반 교리 점검 - 17개 문항 (예/아니오/모르겠습니다, 7번은 기타의견란 작성)
  5. 이단 상세 점검 - 선택한 이단에 따라 다른 문항 (예/아니오/모르겠습니다, 일부는 기타의견란 작성)
  6. 간증문 입력 - 상담 소감 작성
  7. 워드 문서 자동 생성 - 응답 내용을 워드 문서로 자동 생성 (표 형식)
  8. 구글 드라이브 자동 업로드 - 생성된 문서를 구글 드라이브에 업로드 (선택사항)

설문 흐름

  1. 인증 - 인증키 입력
  2. 1단계: 기본 정보 - 이름, 교구, 이단교단 입력
  3. 2단계: 감리교 신앙고백 - 8개 문항
  4. 3단계: 이단 일반 점검 - 17개 문항
  5. 4단계: 이단 상세 점검 - 이단별 문항 (기타 선택 시 건너뜀)
  6. 5단계: 간증문 - 상담 소감 작성
  7. 완료 - 제출 완료 및 로그아웃

설치 방법

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 설정 (선택사항)

  1. Google Cloud Console에서 프로젝트 생성
  2. Google Drive API 활성화
  3. OAuth 2.0 클라이언트 ID 생성 (데스크톱 애플리케이션)
  4. credentials.json 파일을 프로젝트 루트에 저장
  5. 구글 드라이브에 업로드할 폴더를 생성하고 폴더 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. 별첨 목록

    • 별첨1: 감리교 신앙고백서 확인점검
    • 별첨2: 이단 일반 점검
    • 별첨3: 이단 상세 점검
    • 별첨4: 간증문
  3. [별첨1] 감리교 신앙고백서 확인점검

    • 표 형식 (문항 | 응답)
    • 8개 문항
  4. [별첨2] 이단 일반 점검

    • 표 형식 (문항 | 응답)
    • 17개 문항
    • 기타의견 (7번 문항 답변 포함)
  5. [별첨3] 이단 상세 점검 (기타 선택 시 생략)

    • 표 형식 (문항 | 응답)
    • 선택한 이단에 따라 다른 문항
    • 기타의견 (일부 문항 답변 포함)
  6. [별첨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_KEYACCESS_KEY를 안전하게 설정하세요
  • 인증키는 링크를 받은 사람에게만 전달하세요
  • 구글 드라이브 API 인증 정보는 절대 공개하지 마세요
  • output/ 디렉토리의 파일은 정기적으로 정리하세요
  • HTTPS를 사용하여 데이터 보안을 강화하세요
  • 서버 환경에서는 구글 드라이브 인증을 로컬에서 먼저 완료하여 token.json을 생성해야 합니다

인증키 관리

  • 기본 인증키: Kx9mP2vQ7nR4tY8wZ3bC6hJ1fL5dN0sA8uE2iM7o
  • 인증키는 .env 파일의 ACCESS_KEY로 변경할 수 있습니다
  • 사용자는 서비스 접속 시 인증 페이지(/auth)에서 인증키를 입력해야 합니다
  • 인증 후 세션에 저장되며, 로그아웃 시 세션이 삭제됩니다

로깅

서비스는 상세한 로그를 출력합니다:

  • 구글 드라이브 초기화 상태
  • 구글 드라이브 업로드 시도/성공/실패
  • 파일 삭제 상태
  • 세션 관리 상태

라이선스

이 프로젝트는 기독교대한감리회를 위한 내부 사용 목적으로 제작되었습니다.

Description
기독교대한감리회 선한목자교회 아버지의마음국 교리점검표 자동화 서비스
https://doctrinecheck.peregr1nus.me
Readme 138 KiB
Languages
Python 47.4%
HTML 44.3%
CSS 7.7%
JavaScript 0.6%