O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

How to use Python in Video streaming service - PyCon Korea 2020

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 50 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a How to use Python in Video streaming service - PyCon Korea 2020 (20)

Anúncio

Mais recentes (20)

How to use Python in Video streaming service - PyCon Korea 2020

  1. 1. 

  2. 2. Connecting Content and Creator to Global Audience
  3. 3. Connecting Content and Creator to Global Audience
  4. 4. PHP Backend WP Database Python Backend WP Database
  5. 5. 블로그를 위한 구조에 스트리밍 서비스 관련 모델을 담은 형태 Program Episode Actor Category Program’s meta Episode’s meta Actor’s meta
  6. 6.
  7. 7. 기능 추가에 유연한 코드 (서비스별 맞춤 서비스를 제공해야 하므로) 모두가 참여할 수 있는 낮은 진입 장벽 재사용 용이, 기술 부채 방어
  8. 8. 파이썬을 파이써닉하게 문법, 컨벤션 등 기본에 충실한 코드 의존성 낮출 수 있도록 단순한 책임 구조
  9. 9. Django REST Framework 의 권장 구조 활용 DRF 역시 기본에 충실한 코드 정제된 데이터 모델 정의 > 준비된 모듈, 적은 코드로 많은 기능 구현 Model(Data structure) - Serializer(Data mapping) - ViewSets(CRUD) - Router
  10. 10. Test Coverage 96% 안정적인 리펙토링 / 배포 가능 내부 테스트 작성 활성화를 위해 이해를 돕는 라이트닝 토크 진행
  11. 11. HLS(HTTP Live Streaming) Apple에서 2009년에 내놓은 라이브 스트리밍 프로토콜 - 스트리밍 데이터를 시간 단위로 잘게 쪼개서 전송 - m3u8 파일을 이용하여 재생 파일 리스트를 전달 *.m3u8 재생할 ts 파일들의 리스트 1.ts 2.ts 3.ts
  12. 12. 입력-변환-저장까지의 비디오 파이프라인 구축을 위한 도구 * Python의 파이프라인 구축 모듈인 Luigi 의 구조를 참고하여 구현 * PyCon.KR 2017 라이트닝 토크에서 소개된 적이 있음 비디오 관련 도메인은 로우 레벨로 갈수록 복잡하고 어려운 부분이 많아, 이 를 최대한 Python 으로 래핑하여 누구나 파이프라인 구축/유지보수에 참여할 수 있도록 함
  13. 13. 입력-변환-저장까지의 비디오 파이프라인 구축을 위한 도구 * Python의 파이프라인 구축 모듈인 Luigi 의 구조를 참고하여 구현 * PyCon.KR 2017 라이트닝 토크에서 소개된 적이 있음 비디오 관련 도메인은 로우 레벨로 갈수록 복잡하고 어려운 부분이 많아, 이 를 최대한 Python 으로 래핑하여 누구나 파이프라인 구축/유지보수에 참여할 수 있도록 함
  14. 14. Job 생성 순서 Job 실행 순서
  15. 15. Job 실행 순서
  16. 16. Django REST Framework 기반의 비디오 관련 API 제공 기능 - 비디오 파이프라인 현황 - 내부 고객을 위한 영상 에셋 조회, 관리 기능 등 (Admin API)
  17. 17. 배치 작업의 복잡한 파이프라인 구축에 도움을 주는 python module 파이프라인 개발에 필연적으로 발생하는 이슈인 의존성, 워크플로우 관리, 시각화, 실패 처리와 같은 문제를 해결하기 위해 사용 spotify/luigi 대표적인 도구로 Airflow, Luigi 가 꼽힘
  18. 18. 규모가 크지 않은 팀에는 개발 효율성이 중요했음 직접 짜야하거나 비교적 복잡한 부분이 많은 Airflow 보다는 Luigi가 적당하다고 판단
  19. 19. 외부 데이터 형식이 바뀜 루이지 코드에 에러가 있음 설정 문제 (무한 pending) 로그 파일이 아직 생성되지 않음
  20. 20. 외부 데이터 형식이 바뀜 루이지 코드에 에러가 있음 설정 문제 (무한 pending) 로그 파일이 아직 생성되지 않음
  21. 21. Test Output Expected Output Generate test output Validate test output with expected output Return result Input
  22. 22. Unittest 사용 - BigQuery 데이터를 이용하는 특성상 커스터마이징하여 작성 통합 테스트 뿐 아니라 다양한 unit test 가 추가되고 있음
  23. 23. Unittest 사용 - BigQuery 데이터를 이용하는 특성상 커스터마이징하여 작성 통합 테스트 뿐 아니라 다양한 unit test 가 추가되고 있음
  24. 24. 
 
 
 


×