프로젝트 개요
SI Waacn Edu는 학원(아카데미) 운영을 위한 통합 관리 백엔드 시스템입니다. 학원 등록부터 수강생 관리, 강사 배정, 시설 예약, 결제 처리, 알림톡/이메일 발송까지 학원 운영에 필요한 전반적인 기능을 API로 제공합니다.
NestJS 모노레포 구조로 core 공통 라이브러리와 academy-app 애플리케이션을 분리하여 도메인 모델의 재사용성을 높였습니다. TypeORM을 통한 데이터 접근 계층과 @toss/nestjs-aop를 활용한 AOP 기반 횡단 관심사 처리, BFF(Backend For Frontend) 패턴을 적용하여 클라이언트 최적화된 API를 제공합니다.
기능 플로우
주요 기능
- 학원 등록 및 프로필 관리: 학원 기본 정보(명칭, 주소, 연락처)를 등록하고 관리합니다. 카테고리별 분류와 외부 링크(SNS, 홈페이지) 연동을 지원하여 학원 정보를 체계적으로 구성합니다.
- 회원 인증 시스템:
@nestjs/jwt기반 JWT 토큰 인증과bcrypt암호화를 적용한 안전한 로그인 시스템을 제공합니다. 회원가입 시 이메일 인증 프로세스를 거쳐 계정 보안을 강화합니다. - 수강생 및 수강 관리: 수강생 등록, 수강 신청, 수강 이력 조회 등 수강 관련 전체 라이프사이클을 관리합니다. 수강 상태 변경 시 이벤트를 발행하여 관련 모듈에 자동으로 알림을 전달합니다.
- 강사 관리: 강사 프로필 등록과 수업 배정 기능을 제공합니다. 강사별 담당 과목과 일정을 관리하여 효율적인 수업 운영을 지원합니다.
- 시설 예약 관리: 학원 내 강의실, 연습실 등 시설 정보를 등록하고 예약 상태를 관리합니다. 시설별 사용 가능 시간과 수용 인원을 설정하여 중복 예약을 방지합니다.
- 결제 수단 관리: 수강료 결제를 위한 결제 수단 등록과 결제 이력을 관리합니다. 결제 상태 추적과 영수증 발급 기능을 포함합니다.
- 알림 발송 시스템:
AWS SES를 통한 이메일 발송과 알림톡 연동으로 수강생에게 수업 일정, 결제 안내, 공지사항 등을 자동으로 전달합니다.AWS SQS를 활용한 비동기 메시지 큐 처리로 발송 안정성을 확보합니다. - 파일 업로드:
AWS S3Presigned URL 방식으로 이미지 및 문서 업로드를 지원합니다. 학원 프로필 사진, 강사 사진, 교재 자료 등을 효율적으로 관리합니다. - 관리자 요금제 (Admin Plan): 학원 규모에 따른 요금제를 관리합니다. 요금제별 기능 제한과 수강생 수 상한을 설정하여 서비스 등급을 차등 적용합니다.
- BFF API 제공: 클라이언트 화면에 최적화된 BFF(Backend For Frontend) API를 별도로 구성합니다. 여러 도메인의 데이터를 하나의 응답으로 조합하여 클라이언트 측 요청 횟수를 최소화합니다.



