인도 람강가 저속 회선을 뚫다 — 드림인도신학교(DITS) 한·영·벵골 3개국어 LMS & Zero-CDN 설계기

외부 네트워크 호출 0건, 523KB 서브셋 로컬 폰트, HMAC-SHA256 서명 영상 스트리밍과 3겹 출석 검증 아키텍처

성용 (드림소프트) · 2026. 10. 24. · 읽는 시간 7분 · 조회 5 · 댓글 0
인도 람강가 저속 회선을 뚫다 — 드림인도신학교(DITS) 한·영·벵골 3개국어 LMS & Zero-CDN 설계기
▲ 인도 람강가 저속 회선을 뚫다 — 드림인도신학교(DITS) 한·영·벵골 3개국어 LMS & Zero-CDN 설계기 (실제 운영 화면)
“한국에서는 0.2초 만에 열리는 웹페이지가, 인도 람강가(Ramganga) 강의실에서는 왜 30초 넘게 멈춰 있을까?”
2025년 개교한 드림인도신학교(DITS) 학사관리시스템(LMS)을 설계하며 가장 먼저 마주한 질문이었습니다.

1. 외부 CDN 0건(Zero-CDN) 원칙과 523KB 자체 폰트 서브셋

일반적인 웹사이트는 Google Fonts, 외부 CSS 프레임워크 CDN, 분석 스크립트 등 수십 개의 외부 도메인에 연결합니다. 하지만 인도 외곽 지역의 불안정한 회선에서는 외부 DNS 조회와 TLS 핸드셰이크 하나하나가 치명적인 병목이 됩니다. 게다가 개인정보처리방침상 제3자 국외 이전이나 추적 쿠키를 원천 배제해야 했습니다.

그래서 DITS LMS는 외부 네트워크 호출을 단 1건도 허용하지 않는 Zero-CDN 아키텍처로 설계되었습니다.

  • 로컬 서브셋 폰트 3종 (합계 523KB): Noto Sans Bengali DITS, Noto Serif KR DITS, Newsreader DITS를 자체 서브셋팅하여 서버에서 직접 서빙
  • 로컬 이진 탐색 GeoIP (geo_ranges.php): 외부 IP 조회 API 없이 한국(KR → 한국어)과 인도(IN → 벵골어) IP 대역을 로컬에서 즉시 판별
  • 인라인 SVG 학교 문장(crest()): 고해상도 이미지 다운로드 없이 벡터 그래픽으로 즉시 렌더링

2. 한·영·벵골(ko·en·bn) 출력 가로채기 번역 파이프라인

한국 파송 교수진은 한국어로 강의와 문제를 출제하고, 인도 현지 행정처와 신학생들은 영어와 벵골어(Bengali)로 학사 시스템을 이용합니다. 템플릿을 3벌로 나누면 유지보수 중 반드시 학사 로직이 어긋나게 됩니다.

ARCHITECTURE / CODE
[단일 PHP 학사 뷰 렌더링] ──► ob_start() 출력 버퍼 캡처
       │
       ├──► <x-nt> 보호 영역 (학생·교수 이름, 시험 답안, Q&A 원문) 분리 보존
       ├──► inc/i18n.php 사전 (문자열 길이 내림차순 정렬) 일괄 치환
       └──► 최종 ko / en / bn HTML 응답 반환

특히 배포 전 Git pre-receive 관문에서 i18n_guard.php가 자동 실행되어, 사전에 등록되지 않은 신규 문구가 있거나 정의서(spec_guard.py)와 어긋나면 배포 자체를 차단하도록 이중 안전장치를 두었습니다.

3. 아에타(AETA) 인준 기준 준수와 3겹 출석·하트비트 검증

2025년 12월 아에타(AETA) 정식 인준 학위과정(DIPLOMA, B.Th, M.Div) 운영을 위해 학사 데이터의 무결성을 서버가 직접 보장합니다.

  • 출석 3겹 원칙: ① 종이 자필 서명부 스캔본 보존 → ② 강의실 화면의 30초 회전 6자리 입·퇴실 코드 체크 → ③ 교수의 최종 확정(prof.php)이 있어야만 출석으로 인정됩니다.
  • 서버 시계 기반 하트비트 측정: 클라이언트 타이머 조작을 막기 위해 30초 간격 하트비트를 오직 서버 시각으로만 계산하며, 10분 이상 무응답 시 자리비움으로 간주합니다.
  • HMAC-SHA256 서명 미디어 게이트: 강의 영상 원본은 웹루트 밖에 격리하고, 서명 및 저작권 상태 검증을 통과한 요청만 Nginx X-Accel-Redirect로 안전하게 스트리밍합니다.
💡
엔지니어링 요약: 가장 앞선 기술은 화려한 프레임워크가 아니라, 현장의 가장 열악한 네트워크 환경에서도 학생이 배움을 멈추지 않게 만드는 단단한 기본기입니다.
💬 댓글 0

💬 댓글 0 (로그인 없이 누구나 댓글을 남길 수 있습니다)