곰터뷰
우선 곰터뷰가 어떤 서비스인지 간단한 설명이 필요할 것 같다.
곰터뷰는 시중에 존재하는 면접 서비스와는 다르게 `무료`로 `로그인 없이` 사용할 수 있는 면접 연습 서비스이다!
곰터뷰
www.gomterview.com
로그인 없이 사용할 수 있는 면접 연습 서비스이지만! 서비스에 가입하는 회원에게 돌아가는 혜택도 있어야하지 않는가? 그렇기에 회원에게 촬영한 동영상을 서버에 저장하고 이를 필요할 때마다 다시 볼 수 있는 기능을 제공하고자 했다.
이를 위해 프로젝트 개발 전에 동영상을 어디에 저장하여 서비스할 것인지 결정하는 것이 우선적인 해결 과제였다.
시행 착오
초기 계획
직장인도 아니고, 그렇다고 금수저도 아닌 우리에게 가장 중요한 것은 온라인 스토리지 사용 시의 지출하게 될 금액이었다! 그래서 먼저 동영상을 저장하기 위해 온라인 스토리지를 사용할 때의 비용을 알아봐야 할 필요가 있었다.
● AWS S3
우선 가장 대중적이며 안정적인 스토리지 서비스인 AWS S3를 사용하였을 시의 가격을 확인해보았다.
실제로 서비스를 출시하면 얼마나 많은 데이터를 사용할지 확실히 모르지만, 대략적으로 720p의 3분의 영상을 기준으로 계산을 진행하였다.
720p의 3분 영상은 ChatGPT 기준으로 55MB라고 하고 이를 압축하여 대략 40MB 정도로 하나의 영상을 저장하고, 전송한다고 가정하고 AWS Pricing Calculator를 사용해 확인해보았다.
AWS Pricing Calculator
calculator.aws
영구적으로 1 TB / 40 MB = 1,048,576 MB / 40 MB ≈ 26,214 개의 영상을 저장해두고,
매달 대략 3TB 정도의 데이터가 반환 및 스캔된다고 하면 대략 매달 사용료가 39.82 USD -> 53738.26 KRW라고 한다.
위 계산에서 사용한 추정 사용값이 정확하지 않을 수도 있고, 테스트 시 잘못된 사용, EC2 사용 비용 등 추가적인 비용이 더 있을 수도 있다고 생각한다면 이는 추후에 서비스가 더 확장되었을 시에 감당하기에 너무 벅찬 금액이 될 수도 있다고 판단이 되었고, 그래서 다른 방법을 찾아보게 되었다.
● 구글 드라이브
“저장소 비용이 너무 많이 든다면, 클라이언트 개인이 영상을 저장하게 하면 되지 않을까?”라는 생각에서 시작하게 된 아이디어였다. 실제로 다른 서비스들에서도 구글 드라이브를 온라인 스토리지처럼 사용한다고 한다.
그래서 사용자가 자신의 면접 촬영 영상을 자신의 구글 드라이브에 업로드하고, 각자 업로드한 영상을 다시 보고, 공유도 할 수 있게 구글 드라이브 API를 사용하는 방향으로 결정을 했었다.
Google Drive API | Google for Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 Google Drive API 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google Drive API를
developers.google.com
하지만 다른 서비스에서 많이 사용하더라도, 가격적인 부분에서 부담이 된다면 AWS S3와 동일한 이유로 사용하지 못할 것이었다. 알아본 구글 드라이브 비용은 다음과 같았다.
월 200만 회까지는 무료 사용이 가능한 상황이기에 가격적인 부분에서 전혀 부담이 되지 않아 구글 드라이브를 사용하는 것으로 결정하게 되었다.
문제 발생
그렇게 구글 드라이브 API 사용을 위해 학습을 진행하던 중 또 다른 문제가 발생하게 되었다.
구글 드라이브 API를 서비스에 적용하게 되면 서비스 배포 단계에서 구글에 관련 서류 및 증빙 자료를 제출해야만 했다.
위와 같은 이유들로 로컬 환경에서의 활용은 어렵지 않으나, 배포 직후 인증을 진행한다면 아래의 문제들이 발생하게 될 것으로 예상되었다.
- 인증 절차가 굉장히 느림
- 사업자 등록증과 같은 서류가 있어야 함
만약에 인증이 되지 않았을 때 비디오와 관련되어 구현해둔 서비스 로직을 모두 다른 스토리지 서비스에 맞춰 재작성해야하는 문제가 발생하기에 구글 드라이브를 대체할 또 다른 서비스를 찾아봐야만 했다.
The Best AWS S3 Alternatives | BestBackupReviews.com
Top 10 AWS S3 Alternatives - In this guide we look at 10 of our favourite S3 compatible cloud storage alternatives
www.bestbackupreviews.com
CloudFlare R2, Wasabi, BackBlaze 등 많은 S3 대체 서비스들이 존재했고, 그 중 IDrive e2를 사용하기로 결정하였다.
그래서 왜 IDrive e2인가?
클라우드 분야를 잘 알고 계시는 같은 팀원의 친구분께 조언을 구했더니 아래 서비스를 적극 추천을 하셨다.
S3 Compatible Object Storage - IDrive® e2
Data backup and archival Safeguard your organization's systems, servers, NAS devices, VMs, Veeam, and workstations by storing the data in the cloud. Transfer data from local storage or another cloud storage. Know more -->
www.idrive.com
위에서도 말했듯이 곰터뷰에서 사용할 온라인 스토리지를 결정하는 가장 중요한 요소는 가격이었기에 공식 사이트에서 사용비를 확인해보았다.
IDrive® e2 plans and pricing for cloud storage
Free egress policy Download up to three times of your total storage volume for free! If your monthly downloads exceed the policy limit, you will be charged $0.01/GB/month.
www.idrive.com
다른 서비스 대비 압도적으로 저렴한 가격.. 1년에 2만원도 안된다! 현존최강 가성비라고 볼 수 있다...
이 서비스에 대한 안정성도 확인하고 싶어 관련 글들을 찾아보니 외국 개발자들로부터의 평가도 괜찮았다.
iDrive e2 Review | BestBackupReviews.com
iDrive e2 Review - iDrive e2 is the latest AWS S3 compatible cloud storage service form online cloud drive experts, iDrive
www.bestbackupreviews.com
From the rclone community on Reddit
Explore this post and more from the rclone community
www.reddit.com
이러한 이유들로 곰터뷰에서는 해당 서비스를 사용하여 비디오를 저장하는 것으로 결정을 하였다.
그래서 AWS S3와의 호환성의 문제는 없는가?
기술적으로 가장 걱정했던 부분이었다. 애초에 한국에서 잘 알려져 있는 서비스도 아닐 것이기에 이를 사용하는 방법을 찾기가 어려울 것이며 IDrive e2 자체에서 제공하는 공식 문서도 빠져있는 부분이 많고 설명이 부실했기에 이를 사용하는 것에 큰 어려움을 겪을까봐 걱정이 되었다.
하지만 결론적으로 말하면 전혀 문제가 없다. 애초에 IDrive e2 뿐만 아니라 Naver Cloud Object Storage 등의 S3 대체 서비스들은 AWS S3 API와 완전 호환이 가능하다. 그렇기에 IDrive e2의 공식 문서가 부실하고 참고할 관련 자료가 부족하더라도, 아래 AWS S3의 공식 문서를 참고하면 필요한 기능들을 구현할 수가 있었다!
AWS SDK for JavaScript란 무엇인가요? - AWS SDK for JavaScript
다음과 같은 프레임워크AWSAmplify JavaScript용 SDK와 동일한 브라우저 지원을 제공하지 않을 수 있습니다. 세부 정보는 프레임워크 설명서를 확인합니다.
docs.aws.amazon.com
다음 포스트에서는 AWS SDK for JavaScript와 IDrive e2를 사용하여 어떤 방식으로 곰터뷰에서 비디오를 저장하고 관리하는지 알아보겠다.
'개발 > 곰터뷰🐻' 카테고리의 다른 글
단위 테스트(Unit Test)와 통합 테스트(Integration Test) (0) | 2024.01.27 |
---|---|
테스트 코드는 왜 만들까? (3) | 2024.01.19 |
곰터뷰와 IDrive e2 (3) - AWS S3 SDK for JavaScript를 활용한 IDrive e2 사용법 (0) | 2023.12.13 |
곰터뷰와 IDrive e2 (2) - IDrive e2를 사용한 비디오 저장/조회 로직 (0) | 2023.12.06 |