•
서비스 둘러보기 (PC 환경)
유저 및 강사 페이지
관리자 페이지
페이지 이용 가이드
•
Github 주소:
•
아키텍처
기술적 의사 결정
MySQL | 관계형 데이터베이스를 통해 정형화된 데이터를 저장하고, 테이블 간 관계, 제약조건을 설정하여 데이터 중복을 줄이기 위해 사용 |
Redis | 사용자 로그인 시 refresh token의 경우, 영구적으로 필요한 데이터가 아니므로 상대적으로 빠르고 가벼운 인 메모리 상태에서 처리하기 위해 사용 |
S3 | 사이트 트래픽이 증가할 경우 워크샵 이미지와 영상 컨텐츠를 등록 시 서버를 증설할 필요 없이 저장 용량을 늘릴 수 있어 사용 |
CloudFront | Edge Location에 캐싱 데이터를 업로드하여 일정한 속도로 정적 파일(워크샵 이미지 및 영상)을 불러올 수 있고 HTTPS로 보안성을 높이기 위해 사용 |
Lambda | 백엔드에서 이미지 리사이징을 처리하는 경우, 가상 메모리를 많이 소비하게 되므로 서버리스 방식을 사용 |
Elemental MediaConvert | 워크샵 등록 시 업로드 되는 영상의 해상도를 여러 가지로 컨버팅하여, 다양한 네트워크 환경에서도 안정적으로 영상이 재생될 수 있도록 사용 |
트러블 슈팅
이미지 리사이징 시 발생하는 서버 부담 및 S3 CreateObject 이벤트 핸들링에 대한 문제
영상 시청 시 클라이언트 네트워크 상태에 따른 화질 조정