-
[회고록] 프로젝트 기획: 기술 선택카테고리 없음 2024. 11. 18. 20:43
라이브 스트리밍 서비스를 넣으려고 한다.
그러나 팀원 모두가 스트리밍 서비스에 문외한이라, 어떤 기술을 사용하는지 각자 알아오기로 했다.
그렇게
1. Amazon IVS(Interactive Video Service)
2. WebRTC 기반 P2P 스트리밍
3. Nginx + RTMP 모듈
기술로 간추려졌다.
1번은 AWS의 S3와 CloudFront를 사용해서 간편하게 구현할 수 있다.
또한 AWS 인프라를 사용하기 때문에 대규모 스트리밍을 안정적으로 지원받을 수 있다.
(느낌 상 그냥.. AWS에 있는 스트리밍 기술 가져다 쓰는 것 같았다)
2번은 브라우저 간의 P2P 연결을 통해 스트리밍되기 때문에 거의 실시간에 가까운 낮은 지연 시간을 보장한다.
그러나 양날의 검.. 대규모로는 쓰기 어렵다. (만 명이 들어오면 만 개의 P2P 연결이 필요.. 네트워크 부담..)
3번은 Nginx를 무료로 사용할 수 있다. 그리고 실시간 스트리밍 프로토콜인 RTMP를 사용하여 안정적이고 다양한 스트리밍 플랫폼과 호환 가능하다.
그러나 설정이 복잡하고 자체 서버를 운영하는 것이기 때문에 추가적인 인프라 관리가 필요하다는 단점이 있다.
이렇게 기술들의 각기 장단이 있다.
우린 이 중 1번과 3번을 고민했다.
2번이 제해진 이유는
우린 인터넷 방송처럼 1:N 스트리밍을 만드려고 하는데,
WebRTC 기반의 스트리밍 서비스는 1:1 상황에서 더 적합하다고 생각했기 때문이다.
그럼 이 1번과 3번 중에는 3번을 선택하게 됐는데,
그 이유는
1. 비용 절감..
- Amazon IVS 서비스 사용?
다들 알겠지만.. AWS는 잠깐 서버 켜놨다고 몇 천원 홀라당 나간다..
비디오 스트림 전송한다? 이거.. 안 써봐서 모르겠다만.. 매우 많은 돈이 나갈 것 같다는 생각이 들었다..
2. 배울 점
- 위에 썼 듯이, 스트리밍 기술을 아예 모르는 상태에서, 단순히 AWS 기술을 사용한다면
물론 편하긴 하겠지만.. 우리가 배워갈 점이 있을까? 라는 생각이었다.
그래서, 우리는 우선 Nginx로 자체 스트리밍 서버를 구축하면서 스트리밍에 대한 기술 경험을 하고
후에 쓸 일이 있다면, 그때 가서 Amazon IVS를 배워 쓰면 되지 않을까 라고 생각한다. (그때가 되면 우리도 스트리밍 서버를 구축한 경험이 있기 때문에, 배우는 것에도 큰 힘이 들지 않을 거라고 생각한다.)
프로젝트 기획은 아직 진행 중이다.
프로젝트는 돌맹이 쌓기 같다.
밑 부분에서 잘 다듬어야 쌓기 쉬운 것처럼
기획에 많은 시간을 들여야 개발 단계에서 큰 어려움이 없을 거라 생각한다.