-
0주차: 프로젝트 일정 수립 및 요구 사항 분석 (1/5 ~ 1/11)
- 프로젝트 일정 수립
- 프로젝트 요구사항 정리 및 요구 사항에 따른 초기 API 스펙 정리
- 필요한 DB 스키마 설계
- 프로젝트 아키텍처 결정
1개월 -프로젝트 설계 및 개발환경 구축 (1/5 ~ 2/1)
1주차: 프로젝트 개발 환경 구축 (1/12 ~ 1/18)
- API 문서화 진행
- FastAPI 내장 Swagger, Redoc을 활용해서 API 스펙 설계
- 개발 환경과 도구 구축 진행
- 백엔드 : FastAPI
- 패키지 버전 관리 : Poetry
- DB : MySQL
- 로컬 개발 환경 : Docker
- 배포 환경 구축
- naver cloud platform을 활용해서 배포 환경 구축
2주차: 사용자 인증 및 보안 (1/19 ~ 1/25)
- 사용자 인증(로그인) 및 권한 부여 로직 구현
- 로그인
- 로그아웃
- 로그인에 따른 권한을 부여하고 해당 권한을 가진 사용자만 예매가 가능하도록 구현
3주차 - 4주차: 영화 및 영화관 리스팅을 위한 API 개발 (1/19 ~ 2/1)
- 영화 및 세부 정보를 나열하기 위한 API 개발
- 영화 및 상영 시간 검색을 위한 API 개발
- 해당 엔드포인트에 대한 단위 테스트 구현
2개월 - 기능 개발 (2/2 ~ 2/29)
5주차 - 8주차: 좌석 선택 및 예매 API 개발 (2/2 ~ 2/29)
- 좌석 선택 및 예매 API 구현한다.
- 로그인을 통해 권한을 부여받은 사용자만 가능하도록 구현
- 좌석 예약 중 경쟁 상황을 방지하기 위한 lock 전략 수립
- 새로운 기능을 포함하도록 단위 테스트를 구현.
- 시뮬레이션된 부하 조건에서 동시성 제어 테스트 진행
- 시스템 최적화 및 개선
- 부하 테스트 진행하면서 해당 시스템 최적화 및 개선
3개월 - 기능 개발 및 마무리
9주차 - 11주차: 결제 시스템 통합 (3/1 ~ 3/21)
- 모의 결제 처리 시스템과 통합
- 거래 처리를 위한 API 개발
- 거래 중에 ACID 속성이 유지되는지 확인
- 사용자가 예약 내역을 확인할 수 있는 API 개발
11주차 - 12주차: 최종 테스트 (3/15 ~ 3/28)
- 모든 단위 테스트 마무리
- 백엔드 로직에 대한 엔드투엔드 테스트 진행
- API 엔드포인트, 예상 동작 및 오류처리 문서화