프로젝트 배경
1) 예상 리스크 및 대응 계획 - 결제-예약-알림 부분 실패 시 보상 트랜잭션 설계: Toss Payments 결제 성공 후 Whereby API 장애로 룸 생성이 실패하는 등 외부 API 부분 실패 상황에서, 결제 취소와 예약 롤백을 자동 수행하는 보상 트랜잭션 플로우를 설계합니다. - Celery ETA 태스크 중복 실행 방지: 예약 변경 시 기존 리마인더 ETA 태스크를 취소하고 새 시각으로 재등록
프로젝트 성과
분산 트랜잭션 기반 예약-결제-룸 생성 플로우 구현
예약 확정 시 Toss Payments 결제, Whereby 룸 생성, SMS 발송을 하나의 플로우로 묶고, 단계별 실패 시 보상 트랜잭션(compensation)으로 롤백하는 구조를 구현합니다.
Celery Beat 시간 기반 리마인더 스케줄러 설계
예약 생성 시점이 아닌 상담 D-1 18시, 당일 1시간 전 시각에 알림이 발송되도록 Celery Beat ETA 태스크를 동적으로 등록하는 스케줄러 구조를 설계합니다.
상담 노트 AES-256 암호화 저장 구조
Django 모델 저장 시 상담 노트를 AES-256-GCM으로 자동 암호화하고, 내담자 공개 범위에 따라 복호화 레벨을 제어하는 데이터 보안 레이어를 구현합니다.
ISR + SWR 하이브리드 데이터 페칭 구조
Next.js ISR로 상담사 목록의 SEO 캐싱을 유지하면서, SWR 폴링으로 가용 슬롯 수를 30초마다 갱신하는 하이브리드 데이터 페칭 아키텍처를 설계합니다.
PostgreSQL Full Text Search 기반 상담사 매칭 쿼리
고민 유형 태그와 상담사 전문 분야를 PostgreSQL tsvector로 인덱싱하고, 태그 일치도·가용 슬롯 수 기반 가중치 정렬 쿼리로 맞춤 추천 결과를 제공하는 매칭 로직을 구현합니다.
핵심 기능
진행 단계
상담 도메인 플로우 & 결제 정책 정의
2026.03.
내담자-상담사 매칭 기준, 예약 취소·환불 정책, 화상 상담 룸 생성 시점 등 비즈니스 규칙 문서화 및 API 명세 확정
프로젝트 상세
1) 포트폴리오 소개 심리상담센터의 온라인 예약·상담사 매칭 플랫폼을 Next.js + Django REST Framework 기반으로 설계·구현합니다. 내담자 자가 매칭 설문, 상담사별 가용 시간 예약, 화상 상담 연동 링크 발급, SMS/이메일 리마인더 자동화 등 법률 예약 시스템의 핵심 기술을 전문직 상담 도메인에 적용한 구현 데모입니다. 2) 작업 범위 - 상담사 메인 & 매칭 허브: 내담자가







