프로젝트 개요
오다위드(Odawith)는 소셜 커머스 서비스를 위한 백엔드 시스템입니다. NestJS 모노레포 구조로 관리자 앱(Admin App)과 클라이언트 앱(Client App)을 하나의 코드베이스에서 분리 운영하며, 공유 도메인 라이브러리(core)와 유틸리티 라이브러리(uds)를 통해 코드 재사용성을 극대화합니다.
카카오·애플 소셜 로그인과 포트원(PortOne) 결제 연동을 기본 인프라로 제공하며, JWT 기반 인증, 커스텀 예외 처리, Swagger 문서 자동화 등 엔터프라이즈급 백엔드 아키텍처를 갖추고 있습니다.
기능 플로우
주요 기능
- NestJS 모노레포 아키텍처:
nest-cli.json기반으로admin-app,client-app두 개의 독립 애플리케이션과core(도메인),uds(유틸리티) 두 개의 공유 라이브러리로 구성됩니다. 각 앱은 독립적으로 빌드·배포할 수 있습니다. - 소셜 로그인 연동:
카카오와애플OAuth 2.0 소셜 로그인을 지원합니다. 각 플랫폼별 전용 클라이언트와 서비스 모듈로 분리되어, 추가 소셜 플랫폼 확장이 용이합니다. - 포트원 결제 연동:
PortOneAPI를 통한 결제 및 본인 인증(Certification) 기능을 제공합니다. 결제 검증과 응답 DTO가 타입 안전하게 구성되어 있습니다. - JWT 인증 체계: Access Token 기반
JWT인증 가드를 제공하며, 관리자(AdminGuard)와 일반 사용자(UserGuard)를 분리하여 역할 기반 접근 제어(RBAC)를 구현합니다. - 커스텀 예외 처리: 글로벌 예외 필터(
CustomHttpExceptionFilter,UnidentifiedHttpExceptionFilter)를 통해 일관된 에러 응답 형식을 보장합니다. 에러 리포트 서비스 인터페이스로 외부 모니터링 연동이 가능합니다. - TypeORM 데이터베이스 연동:
TypeORM을 사용하여PostgreSQL데이터베이스와 연동합니다.@js-joda기반의 커스텀 컬럼 타입(LocalDate,LocalTime,ZonedDateTime)으로 시간대 처리를 정교하게 관리합니다. - 입력 검증 시스템:
class-validator기반 커스텀 데코레이터(IsStrictString,IsStrictInt,IsLocalDate등)를 제공하여 API 요청 데이터의 타입 안전성을 강화합니다. - Swagger API 문서:
@nestjs/swagger를 통해 커스텀 응답 엔티티 데코레이터와 예외 문서화를 지원하며, 프론트엔드 개발자와의 협업 효율을 높입니다.



