Oh-Manager (신인 배우 오디션 중계 플랫폼)

FastAPI SQLAlchemy Clean Architecture Domain-Driven Design Dependency Injector MySQL Docker

목차

  1. 프로젝트 개요
    1. 팀 구성 및 정보
  2. 기술 구현 상세
    1. 기술 스택 및 개발 환경
    2. 주요 기능
    3. 개발 성과

프로젝트 개요

서비스 소개기획사 소속이 없는 무소속 신인 및 지망생 배우들에게 공정하고 안전한 오디션 매칭과 중계 기회를 제공하는 매칭 플랫폼임.
핵심 목표 1배우 지망생 정보(신체조건, 프로필 이미지, 포트폴리오 등)를 통합 관리하고, 기획사와 안전하게 매칭을 조율할 수 있는 신뢰성 있는 채널을 확보하는 것을 목표로 함.
핵심 목표 2무소속 지망생들을 위해 불공정 거래나 사기/유해 오디션 유입을 사전 감지 및 필터링할 수 있는 규격화된 스크리닝 기능 제공을 목표로 함.

팀 구성 및 정보

항목내용
참여 인원총 2명 (PO/PM 1명, BE 1명)
진행 기간2024.02 ~ 2024.04 (약 2개월)
담당 역할백엔드 API 개발 및 오디션 매칭 코어 비즈니스 도메인 설계 수행
협업 도구Slack: 팀 내부 소통 및 실시간 알림 연동
Jira: Sprint 기반 일정 및 세부 태스크 관리
Notion: 기획 안, 스펙 명세, 개발 및 API 문서 통합 관리

기술 구현 상세

기술 스택 및 개발 환경

항목내용
담당 역할백엔드 API 개발 및 오디션 매칭 코어 비즈니스 도메인 설계 수행
기술 스택Python 3.x, FastAPI, SQLAlchemy, MySQL, Docker, Slack SDK
InfrastructureDocker 가상화 및 AWS 환경을 활용함
FastAPI: Docker를 도입하여 런타임 환경 일관성을 확보하고 배포 자동화를 수립함
RDS: MySQL 인스턴스를 통해 오디션 및 프로필 데이터베이스 관리 효율성을 제고함
RepositoryOh-Manager-API Repo

주요 기능

기능상세 내용
관심 분야 기반 공고 추천유저 관심사(연령대, 성별, 역할 등) 조건에 특화된 오디션 정보 필터링 및 매칭 조회 기능을 개발함
지망생 프로필 및 포트폴리오 관리배우 지망생의 신체조건 정보, 주소지 및 SNS 채널 링크, 프로필 이미지를 체계적으로 업로드 관리하는 기능을 제공함
오디션 지원 및 지원 상태 관리온라인 오디션 원스톱 접수 및 지원서 작성, 실시간 접수 현황 상태 가공 API를 구축함
이메일 인증 및 JWT 세션 관리회원가입 시 이메일 유효 코드를 검증하고, bcrypt 암호화 알고리즘과 JWT 기반 안전한 세션 인증 수명 주기를 제어함

개발 성과

특징상세 내용
커스텀 트랜잭션 라우터 구현문제: 각 API 엔드포인트마다 세션 커밋, 롤백, 세션 종료 코드가 중복해서 들어가 코드 가독성을 해치고 예외 발생 시 트랜잭션 누수가 우려됨.
해결: FastAPI의 내부 라우팅 동작을 확장한 커스텀 TransactionRoute를 자체 구현하여, HTTP 요청 단위로 트랜잭션 수명 주기를 데코레이터 단에서 일괄 관리함.
성과: 비즈니스 유스케이스 레이어에서 영속성 세션 관련 코드를 완전히 몰아내어 코드 순수성과 가독성을 대폭 향상시킴.
의존성 주입 기반 클린/DDD 아키텍처문제: 비즈니스 서비스 로직이 데이터베이스 라이브러리와 외부 SDK(Slack 등)에 직접 의존하여 구현 세부사항 변경에 유연하지 못함.
해결: dataclasses 엔티티로 핵심 규칙을 격리하고, Dependency Injector DI 컨테이너 및 patch_ioc를 설계하여 런타임에 동적으로 인프라 어댑터를 주입하도록 구성함.
성과: 외부 프레임워크나 데이터베이스 종류가 바뀌어도 비즈니스 논리 변경 없이 독립적인 레이어 모의 테스트 및 기능 확장이 가능함.