해당 프로젝트는 2023/01/25 ~ 2023/03/12 내에 진행되는
아카데미 내 수강생들끼리 팀을 나누어 진행한 모의 프로젝트입니다.
팀원은 5명이었으며, 프로젝트 리더를 맡았습니다.
03.06 추가
개발언어 : Spring-framework(MVC) 5.2.18 RELEASE - Mybatis 3.5.4 mybatis - spring
DB : MySQL 8.0.28
프론트 : HTML5 / CSS3 / JavaScript, J-Query / JSP
서버 : 톰캣 9.0.71
주제 선정
주어진 RFP는 총 네가지였다.
1. E-commerse
2. LMS
3. ERP
4. OTT시스템
주제 선정에 가장 큰 갈림길 두 가지는 완성도와 도전가치(난이도가 높은)였으며, 팀원 간에 회의 끝에 완성은 어떻게든 해내고, 난이도도 높다고 생각 되는 OTT 시스템을 선정하였다.
선정된 주제의 RFP는 다음과 같다.
학원 내 모의 프로젝트이기 때문에 약간의 예능요소는 넘어가길 바란다.
공고 : OTT 시스템을 제작할 Slave 입찰공고
Spring Framework를 사용하여 OTT 시스템을 만들 개발팀을 찾고 있습니다.
이 시스템을 통해 사용자는 비디오 콘텐츠를 스트리밍하고 다운로드할 수 있으며 콘텐츠 관리,
사용자 관리 및 결제 처리와 같은 기능이 포함됩니다. 이 시스템은 확장성, 보안 및 손쉬운 유지 관리를 위해 설계됩니다.
목적:
이 프로젝트의 목표는 사용자가 비디오 콘텐츠를 스트리밍하고
다운로드할 수 있는 포괄적이고 사용자 친화적인 OTT 시스템을 개발하는 것
시스템은 Spring Framework를 사용하여 구축되어야 하며
확장성, 보안 및 손쉬운 유지 관리를 위해 설계되어야 함.
작업 범위:
Spring Framework를 이용한 OTT 시스템 설계 및 개발
사용자 등록 및 로그인 기능 구현
비디오 콘텐츠 업로드, 관리 및 스트리밍을 위한 콘텐츠 관리 시스템 구현
사용자 계정 및 가입 관리를 위한 사용자 관리 시스템 구현
사용자 결제 처리를 위한 결제 처리 시스템 구현
사용자 데이터 보호를 위한 확장성 및 보안 기능 구현
클라우드 기반 호스팅 플랫폼에 OTT 시스템 배포
지속적인 유지 보수 및 지원
산출물:
완전한 기능을 갖춘 OTT 시스템
소스 코드 및 문서
배포 및 유지 관리 가이드
일정:
프로젝트 일정은 담당사와 협의해야 하지만 시작일로부터 2023-03-13을 초과해서는 안됨.
자격:
중꺾마 가능자.
하늘을 뚫어버릴 근성을 가진자
천지신명도 감동할 서비스를 만들수 있는자
맨땅에 헤딩을 잘하는 자
예산:
5억
제출:
구체적인 사업 계획, 팀 자격, 예산 등을 포함하여 제안서를 abc@gmail.com으로 제출해 주시기 바랍니다.
제안서는 프로젝트 계획, 팀 자격 및 예산에 따라 평가됩니다.
기능적 요구사항
콘텐츠 분류 및 필터링: 시스템은 사용자가 장르, 언어 등과 같은 다양한 범주를 기반으로 콘텐츠를 쉽게 필터링하고 찾아볼 수 있도록 해야 합니다.
개인화된 추천: 시스템은 머신 러닝 알고리즘을 사용하여 시청 기록 및 선호도를 기반으로 사용자에게 콘텐츠를 추천해야 합니다.
다국어 지원: 시스템은 다른 지역의 사용자를 수용하기 위해 여러 언어를 지원해야 합니다.
다중 장치 지원: 스마트폰, 태블릿, 스마트 TV, 게임 콘솔 등과 같은 다양한 장치를 통해 시스템에 액세스할 수 있어야 합니다.
라이브 스트리밍: 시스템은 이벤트 및 쇼의 라이브 스트리밍을 허용해야 합니다.
대화형 기능: 시스템에는 소셜 공유, 댓글 및 평가와 같은 대화형 기능이 포함되어야 합니다.
구독 관리: 시스템에는 사용자에 대한 구독 및 청구를 관리할 수 있는 기능이 있어야 합니다.
고급 분석: 시스템은 사용자 행동, 시청 기록 및 콘텐츠 성능에 대한 자세한 분석을 제공해야 합니다.
이 목록은 완전하지 않으며 프로젝트의 특정 요구 사항에 따라 다른 요구 사항이 필요할 수 있음을 명심하십시오.
다중 언어 지원: 시스템은 사용자 인터페이스, 자막 및 오디오 트랙에서 다중 언어를 지원해야 합니다.
서비스 품질(QoS): 시스템은 사용자의 인터넷 연결 속도 및 장치 성능에 따라 비디오 품질을 조정할 수 있어야 합니다.
다중 비트 전송률 스트리밍: 시스템은 다양한 인터넷 속도를 가진 사용자에게 다양한 비디오 품질 옵션을 제공하기 위해 다중 비트 전송률 스트리밍을 지원해야 합니다.
적응형 비트레이트 스트리밍(ABR): 시스템은 적응형 비트레이트 스트리밍(ABR)을 지원하여 다양한 인터넷 속도를 가진 사용자에게 원활한 스트리밍 경험을 제공해야 합니다.
가상 현실(VR) 및 증강 현실(AR) 통합: 시스템은 VR 및 AR 콘텐츠를 지원하고 몰입형 스트리밍 경험을 제공할 수 있어야 합니다.
다양한 장치와의 호환성: 시스템은 스마트폰, 태블릿, 스마트 TV, 게임 콘솔 등과 같은 다양한 장치와 호환되어야 합니다.
사용자 생성 콘텐츠(UGC): 시스템은 비디오 및 댓글과 같은 사용자 생성 콘텐츠를 지원하고 사용자가 자신의 비디오를 업로드할 수 있도록 하는 기능을 갖추어야 합니다.
폐쇄 자막 및 오디오 설명 지원: 시스템은 시각 또는 청각 장애가 있는 사용자에게 접근성을 제공하기 위해 폐쇄 자막 및 오디오 설명을 지원해야 합니다.
분석: 시스템은 사용자 행동, 시청 기록 및 콘텐츠 성능에 대한 자세한 분석을 제공해야 합니다.
A/B 테스트: 시스템은 A/B 테스트를 허용하여 서로 다른 디자인 및 기능 변형을 테스트하여 어떤 것이 가장 잘 수행되는지 확인해야 합니다.
광고 지원: 시스템은 콘텐츠를 수익화하기 위해 비디오 광고의 통합을 지원해야 합니다.
동적 광고 삽입: 시스템에는 비디오 재생 중에 동적으로 비디오 광고를 삽입할 수 있는 기능이 있어야 합니다.
구독 기반 및 유료 시청 모델: 시스템은 구독 기반 및 유료 시청을 포함하여 다양한 수익 창출 모델을 지원해야 합니다.
제휴 프로그램 지원: 시스템은 제3자 웹사이트가 서비스를 홍보하고 판매할 수 있도록 제휴 프로그램을 지원해야 합니다.
고객 지원: 시스템에는 사용자가 지원 팀에 도움을 요청할 수 있는 고객 지원 기능이 있어야 합니다.
다른 플랫폼과의 통합: 시스템에는 소셜 미디어, CRM 및 분석과 같은 다른 플랫폼과 통합할 수 있는 기능이 있어야 합니다.
사용자 피드백 및 평가 시스템: 시스템에는 사용자가 콘텐츠에 대한 피드백을 평가하고 제공할 수 있는 피드백 및 평가 시스템이 있어야 합니다.
사용자 지정 가능한 브랜딩: 시스템에는 회사 브랜드와 일치하도록 플랫폼의 브랜딩 및 모양을 사용자 지정할 수 있는 기능이 있어야 합니다.
후원을 통한 수익 창출: 시스템은 브랜드가 특정 콘텐츠나 채널을 후원할 수 있도록 하여 후원을 통한 수익 창출을 지원해야 합니다.
제안요청서 : RFP(Request For Proposal)
프로젝트를 담당할 업체를 선정하기 전에, 요구사항을 정리하여 후보 업체들에게 전달하는 문서
프로젝트의 주제, 목적, 목표, 운영방안, 기대효과 등 프로젝트에 대한 자세한 내용이 담기지만 고객의 모든 니즈를 파악할 수는 없다 (고객들은 우리가 생각하는 것만큼 친절하지 않다)
1차 회의 진행
주제 선정을 포함하여 1차 회의를 진행하였다.
회의 안건
1. 주제 선정 (위의 OTT)
2. 사이트 정책 결정
3. 기능 요구사항의 대략적 분석
4. 대략적 역할 분담
정책 결정
1. 관리자는 admin 하나로 통일하며, 전반적인 작업이 끝난 뒤 추가 작업으로 관리자 등급부여 및 관리자 페이지를
따로 생성하고, 관리자 DB를 생성하여 관리하기로 한다.
2. 로그인을 완료한 사용자는 정상적으로 영상에 접근할 수 있다.
3. 결제 여부를 회원 DB에서 관리를 하며, 결제를 진행한 사용자에게는 결제 전용 페이지를 제공한다.
기능 요구 사항 분석
회의를 통한 1차적인 분석이며, 클라이언트의 요구사항을 파악하기 위해 분석하였다.
프로젝트를 진행하며 계속 공부해 나가면서 차후 틀린 부분이 있을 시 수정 후 기능 구현 예정이다.
기능 요구 사항 분석
- 콘텐츠 분류 및 필터링 : 카테고리 구현
- 개인화된 추천 : 샤키라DB를 이용한 알고리즘 구현
- 다국어 지원 : 번역하기
- 다중 장치 지원 : 반응형 웹 만들기
- 라이브 스트리밍 : 버튼 클릭 시 모달 창 혹은 새로운 창을 띄우기
- 대화형 기능: 해당 영상 창 아래에 상호 의사소통이 가능한 댓글 구현
- 구독 관리: 구독 버튼 및 기능(청구화면)이 필요함. 잔여 구독 일수 및 재 구독이 용이하도록
구독 관리 페이지도 필요할 것으로 보임
- 고급 분석: 개인화된 추천과 같은 방식으로 구현
- 다중 언어 지원 : 인터페이스의 다중 언어 지원 구현
- 서비스 품질(QoS): 비디오의 화질 구현으로 구현 가능 여부가 불확실하므로
우선 버튼 구현 후 차후에 가능여부 결정
- 다중 비트 전송률 스트리밍: 로그인 한 사용자의 국가 정보를 받아 해당 국가의 평균 인터넷 속도를 기반으로
해당 속도 별 화질이 영상 재생 시 기본 화질이 되도록 구현
- 다양한 장치와의 호환성: 반응형 웹 구현
- 사용자 생성 콘텐츠(UGC): 위의 대화형 기능에 사용자의 영상 업로드 기능을 추가
- 폐쇄 자막 및 오디오 설명 지원: 장애 여부를 확인한 뒤 장애인의 사이트 이용에 편의를 제공
- 분석: 개인화된 추천과 동일
- A/B 테스트: 사용자에게 A와 B 두 UI를 사용할 수 있게 사이트의 테마를 두 가지 만들어야 하며
얼추 사이트의 구현이 끝난 뒤 시도해 볼 예정
- 광고 지원: 비디오 재생 중 일정 시간이 지나면 자동으로 광고가 표시되는 기능 구현
- 동적 광고 삽입: 광고 지원 기능에 추가로 사이트에 광고 배너 게시
- 구독 기반 및 유료 시청 모델: 구독자 전용 페이지 구현
- 제휴 프로그램 지원: 사이트 API 구현
- 고객 지원: QNA 기능 구현
- 다른 플랫폼과의 통합: API 구현
- 사용자 피드백 및 평가 시스템: 영상 DB에 댓글 및 추천 비추천 현황을 담을 예정
- 사용자 지정 가능한 브랜딩: 사이트의 이름
- 후원을 통한 수익 창출: 후원 페이지 만들어서 특정 브랜드가 채널이나 콘텐츠 작성자와
커뮤니케이션 가능할 수 있어야 함.
역할 분담
분석까지 끝내고 난 뒤, 나를 포함한 ERD 설계에 자신이 있는 세 명을 추려내어 ERD 설계를 시작하였다.
나머지 세 명에게는 간략하게 OTT 사이트들을 조사하며 분석하여 공통으로 필요한 사항들을 추려낸 뒤 UI 기초작업을 진행하라는 임무를 주었다. ERD 설계가 완료되면 UI 설계 팀에게 전달하여 세부 UI 설계 초안을 완성시킬 계획이었다.
이번 프로젝트에서 PL으로서의 목표는 팀원 간에 커뮤니케이션 활성화를 통해 한 몸처럼 움직일 수 있게 하는 것이 최우선 사항이다. 노션 및 단톡방의 활성화를 계속 요구하는 중이며, 사소한 사항이라도 서로 대화를 주고받자고 요구하고 있다.
또한 완성도 높은 결과물을 어떻게든 만들어내어 나에게도 도움이 되겠지만 팀원들에게 조금이나마 향후 진로에 도움이 되고 싶다.
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!