본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.




패스트캠퍼스의 '9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online' 강의 수강 40일차!
오늘은 동영상 컨텐츠 서비스 개발 강의의 커리큘럼 설명 및 개발 요구 사항 분석에 대한 학습을 진행하였다.
동영상 컨텐츠 서비스 구성
컨텐츠 서비스 (웹툰, 웹소설, 음악, 비디오 서비스 등)
ㄴ 동영상 컨텐츠 서비스
ㄴ 동영상 정보 (제목, 설명, 업로드 일자, url, 썸네일, 영상 길이 등)
ㄴ 사용자 액션 (구독(채널 단위), 좋아요(비디오 단위), 댓글(비디오 단위))
ㄴ 동영상 전송 (CDN)
컨텐츠 서비스와 커뮤니티 서비스의 비교
| 컨텐츠 생성 | 컨텐츠 조회 | 목록 기준 | 시간이 지난 컨텐츠 조회 | |
| 컨텐츠 서비스 | 적음 | 생성되는 컨텐츠 대비 많음 | 연관성, 랜덤 | 장기간 지속됨 |
| 커뮤니티 서비스 | 많음 | 생성되는 컨텐츠 대비 적음 | 시간순 | 조회가 집중되는 시기가 짧음 |
Redis와 RDBMS의 비교
| 데이터 저장소 | 데이터 저장 방식 | 장점 | 단점 | |
| Redis | Memory | Key-Value | 빠른 조회 속도, 다양한 데이터 구조 | 비싼 메모리 가격, 휘발성 |
| RDBMS | Disk | SQL | 무결성, 복잡한 관계 처리 | 고정된 스키마, 확장의 어려움 |
Redis는 메모리에 저장되기 때문에 조회 속도가 빠르지만 비용이 많이 지불된다.
Key-Value 타입으로 저장되는데, value의 타입이 기본적인 타입 외에도 Hash, List, Set 등 다양하게 제공된다.
하지만 데이터 간의 연관관계를 맺는 것에는 어려움이 있다.
Redis와 RDBMS의 장점을 활용하여 RDBMS에서 조회에 시간이 많이 소요되는 데이터를 Redis가 중간에 가지고 있다가 빠르게 반환해주는 캐시 방식으로 사용할 수 있다.
Chche (캐시)
- 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소
캐시를 사용하면 또 다른 인프라가 추가되는 것이기 때문에 인프라에 대한 관리 비용이 추가되게 된다.
또한 캐시가 셧다운된 경우 복구 비용과 대체 시스템 구축, 셧다운 시에 DB로 몰리는 요청을 감당하게 되는 등 비용적인 문제가 커지게 된다.
이러한 비용을 감수하면서도 캐시 사용을 고려해야 하는 상황은 다음과 같다.
- 접근 시간에 비해 원래 데이터에 접근하는 시간이 오래 걸리는 경우
- 반복적으로 동일한 결과를 돌려주는 경우
생성은 적지만 조회는 많고, 변경이 잘 일어나지 않고, 내부적인 계산을 반복할 필요가 없는 컨텐츠 서비스의 특성상 캐시를 사용하면 이득을 볼 수 있게 된다.
전의 커뮤니티 서비스 강의 수강을 모두 끝내고, 이번에는 동영상 컨텐츠 서비스 강의 수강을 시작하게 되었다.
늘 RDBMS만 사용해보고 Redis 같은 NoSQL은 처음 사용해보는 거여서 굉장히 기대가 된다!