Files
Doctrine-Check/README.md
2025-12-10 13:27:48 +09:00

5.2 KiB

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

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

주요 기능

  1. 설문응답자 기본 정보 입력 - 이름, 생년월일, 연락처, 출신 이단, 재적 기간
  2. 기독교대한감리회 신앙고백 교리 점검 - 삼위일체, 예수 그리스도, 성경, 구원 등
  3. 이단 일반 교리 점검 - 추가 계시, 지도자 신격화, 구원관, 세계관
  4. 출신 이단별 교리 점검 - 각 이단별 특정 교리 점검
  5. 간증문 입력 - 탈퇴 과정과 소감 작성
  6. 워드 문서 자동 생성 - 응답 내용을 워드 템플릿에 자동 입력
  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에 설정

4. 워드 템플릿 준비 (선택사항)

word_templates/ 디렉토리에 각 이단별 템플릿 파일을 준비할 수 있습니다:

  • 신천지_template.docx
  • 구원파_template.docx
  • 하나님의교회_template.docx
  • 통일교_template.docx
  • 기타_template.docx
  • default_template.docx (기본 템플릿)

템플릿 파일이 없으면 자동으로 기본 템플릿이 생성됩니다.

실행 방법

python app.py

서버가 실행되면 브라우저에서 http://localhost:5000으로 접속하세요.

프로젝트 구조

.
├── app.py                 # Flask 메인 애플리케이션
├── config.py             # 설정 파일
├── requirements.txt      # Python 의존성
├── .env                  # 환경 변수 (생성 필요)
├── credentials.json      # 구글 드라이브 인증 파일 (생성 필요)
├── token.json           # 구글 드라이브 토큰 (자동 생성)
├── templates/           # HTML 템플릿
│   ├── base.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. 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;
    }
}

주의사항

  • 프로덕션 환경에서는 SECRET_KEYACCESS_KEY를 안전하게 설정하세요
  • 인증키는 링크를 받은 사람에게만 전달하세요
  • 구글 드라이브 API 인증 정보는 절대 공개하지 마세요
  • output/ 디렉토리의 파일은 정기적으로 정리하세요
  • HTTPS를 사용하여 데이터 보안을 강화하세요

인증키 관리

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

라이선스

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