Untie(가제) 웹소설 플랫폼

Featured
Untie(가제) 웹소설 플랫폼

기술 스택

Django DRF AWS MySQL Celery Redis

프로젝트 개요

Untie(가제) 프로젝트는 웹소설 플랫폼의 백엔드 시스템으로, 디지털 콘텐츠 유통에 특화된 복합적인 비즈니스 로직을 처리합니다.
프로젝트 내에서 엄격한 사용자 정보 인증 및 관리, 주문 및 결제 시스템을 담당하여 실시간 사용자 상호작용을 안정적으로 처리하는 시스템을 구축했습니다.

🎯 핵심 성과 요약

TDD 적용한 안정적 시스템 구축
JWT 기반 다중 인증 시스템 구축 (일반/게스트/SSO)
이중 암호화 개인정보 보호 시스템 구현
다각화된 주문 처리 오케스트레이션


사용자 관리 시스템

🔐 JWT 기반 멀티 레이어 인증 아키텍처

문제 상황:

웹소설 플랫폼 특성상 일반 회원, 게스트, 외부 플랫폼 연동 사용자의 통합 관리와 성인 콘텐츠 접근 제어 필요

해결 방법:

디바이스 바인딩 기반 보안 강화 인증 시스템

  • 디바이스 UUID 바인딩: 토큰 탈취 시에도 다른 디바이스에서 사용 불가
  • Redis 기반 토큰 추적: 실시간 토큰 무효화 및 동시 접속 제한
  • 스코프 기반 권한(Scope Validation): 특정 API별 토큰 권한 세분화

🌐 외부 인증 시스템 연동

KCB 본인인증 시스템

문제 상황:

성인 콘텐츠 접근을 위한 법정 본인인증 요구사항

해결 방법:

  • 환경별 동적 엔드포인트: 개발/운영 환경 자동 분기
  • 암호화된 세션 관리: Redis 기반 임시 인증 데이터 저장
  • 시간 제한 토큰: 5분 만료로 보안성 확보

밀리의 서재 SSO 연동

요구사항:

기존 밀리의 서재 서비스 사용자의 원활한 서비스 전환

OAuth2 인증 플로우 설계참여:

  • 보안 요구사항 분석:
  • 플로우 설계

OAuth2 PKCE 구현:

  • RSA 키 페어 암호화: 사용자 데이터 안전한 전송
  • 동적 리다이렉트: 다양한 클라이언트 환경 지원
  • 토큰 교환 플로우: 외부 토큰을 내부 JWT로 안전하게 변환

개인정보 보호 및 보안 시스템

🛡️ 다층 암호화 아키텍처

문제 상황:

대규모 서비스에서 처리하는 휴대폰 번호, 환불 계좌 등 민감 정보의 강력한 보호 필요

해결 방법:

Custom Model Field를 활용한 ORM 레벨 투명 암호화

이중 암호화 전략

1
2
3
4
5
6
7
8
9
보안 레벨별 암호화 적용
├── 1차 암호화 (AESCipher)
│   ├── AES-256 CBC 모드
│   ├── 고정 Key/IV 기반
│   └── 휴대폰, 이메일 등 일반 개인정보
└── 2차 암호화 (AESRandIVCipher)
   ├── 별도 Key/IV로 추가 암호화
   ├── 환불 계좌, 예금주명 등 금융정보
   └── 이중 보안으로 데이터 유출 시에도 보호

Django ORM 완전 통합 (투명 암호화 구현)

  • 자동 암호화: get_prep_value()로 저장 시 자동 처리
  • 자동 복호화: from_db_value()로 조회 시 자동 처리
  • 예외 안전성: 복호화 실패 시 graceful degradation

결제 시스템

💳 다중 플랫폼 결제 아키텍처 및 복잡한 주문 처리 엔진

문제 상황:

웹소설 플랫폼의 특수한 비즈니스 요구사항들

  • 다중 플랫폼 결제 지원
  • 소장/대여/무료/미리보기 타입별 차등 가격 체계
  • 충전 캐시와 보너스 캐시의 우선순위 기반 차감 로직
  • 단계별 할인 차등 적용 규칙
  • 에피소드별/작품별/전권 구매 시 복잡한 할인 계산
  • 다양한 쿠폰 타입과 프로모션의 중첩 적용
  • 데이터 일관성 보장

다중 플랫폼 결제 연동

  • TossPayments (web)
  • Apple App Store (app)
  • Google Play (app)

데이터 일관성 보장

  • 트랜잭션 격리: 결제 단위별 원자성 확보
  • 보상 트랜잭션: 실패 시 이전 상태 완전 복구
  • 상태 추적: 모든 결제 단계 상세 로그 기록

정교한 가격 계산 엔진 (4단계 검증 및 처리 파이프라인 설계)

1단계: 비즈니스 룰 검증

  • 성인 콘텐츠 접근 제어
  • 중복 구매 방지
  • 무료 에피소드 필터링
  • 단계별 할인 적용 (전체/개별 프로모션, 쿠폰, etc.)
  • 전권 할인 조건

2단계: 쿠폰 할인 정밀 분배 알고리즘

  • 1원 단위까지 정확한 할인 분배로 회계 정확성 확보

3단계: 효율적 데이터 생성

  • 한 번의 DB 호출로 대량 데이터 생성하도록 구성
  • 충전 캐시의 우선순위 기반 선택 로직 (만료일 우선, 이벤트 캐시 후순위, 금액 오름차순)

4단계: 복합 정산 시스템

  • CP업체 별 다양한 정산 로직 케이스 처리

© 2025 Jayson Hwang • Built with Jekyll & GitHub Pages