PlaynPlay
PlaynPlay

개발 리드

연동 범위와 유지보수 부담을
계약 전에 가늠하는 자리

개발 리드는 채널마다 연동 방식을 고르고, Callback URL 서버를 설계하고, 오픈 뒤에는 SDK와 PlaynPlay App 업데이트를 따라갑니다. 방식별 요구 사항, 서버 설계에서 놓치기 쉬운 규칙, 평가 단계에서 열어 볼 원문 위치를 작업 순서대로 모았습니다.

최종 수정

개발 리드 업무를 표현한 PlaynPlay 일러스트
Responsibilities

개발 리드가 책임지는 범위

재생을 붙이는 코드는 짧아도, 서버 응답 규칙과 오류 처리, 버전 추종은 서비스가 살아 있는 동안 계속 남는 일입니다.

  • 방식 선택

    채널별 연동 방식

    웹 강의실은 Agent로 PlaynPlay App을 띄우고, 자사 앱은 SDK를 넣습니다. PC 학습 화면 전체를 앱 안에 둘지는 커스텀 페이지로 정합니다.

  • 빌드 요건

    플랫폼 최소 사양

    Android SDK는 API 수준 25(Android 7.1) 이상, iOS SDK는 Minimum Deployment 13.0, PlaynPlay App은 Windows 10·macOS 11 이상입니다.

  • 서버

    Callback URL 서버

    하나의 주소로 오는 8종 요청을 type 값으로 나눠 처리합니다. 그중 두 종류의 응답이 재생 허용 여부를 바꿉니다.

  • 오류

    원인별 사용자 안내

    오류 이름이 플랫폼마다 다르므로 같은 원인을 같은 문구로 묶는 대응표를 만들고 관리합니다.

  • 업데이트

    버전 추종

    SDK는 고객사 앱에 포함되어 앱을 다시 배포해야 반영되고, PC 쪽은 최소 버전 값으로 사용자 업데이트를 유도합니다.

  • 식별자

    환경별 키 관리

    App ID, 패키지 이름·Bundle ID, Authorization 문자열을 운영·테스트 환경별로 나눠 보관합니다.

Integration Options

연동 방식별 고객사 코드와 준비 조건

네 방식 모두 콘솔에서 만든 App의 ID로 DRM을 설정하고, 같은 Callback URL 규격으로 보고합니다.

방식고객사 코드가 하는 일준비 조건
Agent설정 파일을 agent.js보다 먼저 불러온 뒤 playnplay.launch()에 실행 타입(재생·다운로드·커스텀 페이지)과 MediaItem, 창 크기를 넘깁니다. 여러 편 다운로드는 playnplay.download(), 접속 기기 정보는 getDeviceInfo()로 받습니다.사용자 PC에 PlaynPlay App 설치. CDNetworks 고객사는 전용 도메인 스크립트 사용
커스텀 페이지playnplay.startService()로 보안 서비스를 시작하고 video 요소의 open()으로 재생합니다. 거부 원인은 onSessionError로 받습니다.페이지와 같은 경로에 서비스 워커 스크립트. 기존 서비스 워커가 있으면 그 파일에 추가
Android SDK앱 시작 때 startMediaPlayerService()에 App ID를 넣고, 미디어마다 withDrmConfiguration()을 붙여 presentMediaPlayer()로 엽니다.aar와 Media3 등 의존성, 디슈가링과 Java 11, 매니페스트 권한·수신기·서비스 선언
iOS SDKAppDelegate에서 MediaPlaybackService.initialize(appId:)를 부르고, DrmConfiguration.Builder로 만든 설정을 붙여 present(mediaItems:startIndex:configuration:)로 엽니다.NPlayerSDK 추가, Background Modes의 Audio, AirPlay, and Picture in Picture, 다운로드 시 백그라운드 세션 처리

방식별 단계는 웹 연동 가이드와 앱 연동 가이드, 플랫폼별 차이는 플랫폼 비교에 있습니다.

Callback Server

Callback URL 서버 설계 포인트

서버가 늦거나 잘못 답하면 정상 사용자가 막힙니다. 문서에 정해진 규칙과 설계 권장을 칸을 나눠 적었습니다.

항목문서에 정해진 규칙설계 권장
요청 형식콘솔에 등록한 주소로 JSON POST가 오고 type으로 종류를 구분합니다.수신 주소 하나에서 종류별 처리기로 분기
호출 인증Authorization은 선택 항목이며, 등록하면 Bearer 헤더로 실려 옵니다.등록하고 서버에서 검사, 교체 절차 마련
재생을 바꾸는 응답CheckAccessRights는 Ok·Expired·NoRights·DeviceLimitExceeded로 답하고 Ok일 때 expiresOn(Unix epoch time)을 보냅니다. NotifyPlaybackProgress는 Ok 또는 PlaybackLimitExceeded입니다.판정은 미리 계산해 둔 값으로 바로 응답하고 무거운 집계는 따로 실행
기록용 보고상태·종료·다운로드·오프라인 로그·북마크 업데이트 보고에는 Ok로 답합니다.sessionId 기준으로 같은 보고가 두 번 와도 한 번만 반영
보고 주기진행 보고는 콘솔 Interval마다 옵니다. 2026년 8월 25일 SDK부터 진행 상태가 그대로면 생략됩니다.보고 공백을 이탈로 해석하지 않기
북마크useBookmarkCallback이 true면 GetBookmarks에 목록으로 응답하고 변경은 UpdateBookmarks로 받습니다.기존 북마크 테이블을 응답에 그대로 사용
식별값8종 요청 모두에 userId와 userData가 들어 있습니다.userData에 수강 신청·차시 ID

필드 해석은 진도 데이터 설계, 응답별 화면 처리는 오류 처리 가이드에 있습니다.

Evaluation

평가 단계에서 열어 볼 원문

개발 공수는 데모보다 문서와 샘플이 더 정확히 알려 줍니다. 질문마다 확인할 원문 위치입니다.

질문원문 위치
우리 앱의 최소 지원 버전과 맞나요?Android 시작하기, iOS 시작하기
어떤 외부 라이브러리를 추가하나요?Android 프로젝트 설정. SDK가 업데이트되면 의존성이 달라질 수 있다고 문서에 적혀 있습니다.
지금 쓰는 Media3 플레이어를 살릴 수 있나요?Android 사용 방법의 MediaPlayer(innerPlayer)
플레이어 UI를 직접 만들 수 있나요?Android MediaPlayerBaseView, iOS MediaPlayerBaseViewController
거부 원인은 몇 가지로 오나요?Android 예외 17종, iOS 오류 18종, PC 세션 오류 12종
샘플과 디버깅 도구가 있나요?데스크톱 샘플(서버 사이드 샘플 포함), 디버깅 툴, Android·iOS 문서 첫 화면의 샘플 다운로드
Rollout

연동 기간의 작업 순서

문제가 생겼을 때 앱 쪽인지 서버 쪽인지 바로 가를 수 있도록 확인된 부분을 하나씩 늘려 가는 순서입니다.

  1. 식별자와 환경 분리

    콘솔에 App을 만들고 운영·테스트 빌드의 패키지 이름·Bundle ID를 모두 등록합니다. 빠진 빌드는 앱 번들 미등록 오류로 재생이 거부됩니다.

  2. 샘플로 재생 확인

    공개 샘플과 테스트 페이지로 DRM 파일 재생부터 확인해 두면, 이후 생기는 문제를 우리 코드 쪽으로 좁힐 수 있습니다.

  3. 권한 검사부터 구현

    CheckAccessRights에 Ok와 expiresOn을 돌려주는 최소 서버를 먼저 띄우고, 나머지 보고는 저장만 하는 단계로 시작합니다.

  4. 채널별 연동과 오류 대응표

    웹·Android·iOS의 오류 이름을 원인별로 묶습니다. 서버가 PlaybackLimitExceeded로 답한 경우는 세 채널 모두 같은 이름의 재생 제한 초과 오류로 처리됩니다.

  5. 경계값·부하 시험

    만료 직전과 직후, 기기 기준 경계, 보고 주기를 짧게 둔 동시 재생으로 서버 응답 시간과 판정을 확인합니다.

Maintenance

오픈 뒤 유지보수 업무

공개 변경 이력은 Android SDK, iOS SDK, PlaynPlay App, Callback URL 네 가지입니다. 배포 점검 목록에 넷을 함께 넣으세요.

  • 의존성

    빌드 설정 대조

    2026년 1월 30일 Android SDK는 media3-datasource-okhttp 의존성 추가를 요구했습니다. 올릴 때마다 프로젝트 설정 문서와 대조합니다.

  • PC 앱

    최소 버전 올리기

    minVersion 이상인 앱에는 업데이트 알림이 가지 않습니다. 1.0.32의 WebView2 대응처럼 재생 오류를 바로잡은 버전이 배포되면 이 값을 그 번호로 올릴지 판단합니다.

  • OS 대응

    OS 버전별 수정

    iOS 18 탐색 버퍼링 수정(2026년 8월), Android 9.0 이하 재생 실패 수정(2026년 6월)처럼 특정 OS 문의와 연결되는 이력을 따로 표시해 둡니다.

  • 서버

    Callback 응답 지표

    권한 검사는 라이선스 발급 과정에서 호출되므로 응답 시간과 실패 건수를 따로 지표로 둡니다.

  • 규격

    보고 방식 변경

    북마크 업데이트 보고(2025년 2월), 진행 보고 생략(2026년 8월)처럼 서버 로직에 닿는 변경은 이력에서 먼저 찾아 대응합니다.

  • 문의

    기술 문의 창구

    재현 절차와 플랫폼·SDK 날짜를 붙여 help@newin.co.kr로 보냅니다.

날짜별 변경 요약은 업데이트 기록에 있습니다.

Read Next

설계 문서를 쓰기 전에 읽을 자료

개발 범위 산정과 서버 설계 리뷰에 바로 쓰는 페이지입니다.

  • 가이드

    웹 연동

    Agent와 커스텀 페이지 구성 순서입니다.

    가이드 보기
  • 가이드

    앱 연동

    Android·iOS 프로젝트 설정부터 재생 호출까지입니다.

    가이드 보기
  • 가이드

    접근 권한 설계

    권한 검사 응답 규칙을 표로 정리하는 방법입니다.

    가이드 보기
  • 가이드

    오프라인 학습

    다운로드, 오프라인 기한, 사후 보고 처리입니다.

    가이드 보기
  • 가이드

    도입 실행

    단계별 완료 기준과 오픈 전 테스트 시나리오입니다.

    가이드 보기
  • 역할

    정보보호·보안 담당

    보안 검토에서 개발팀에 요구할 항목입니다.

    역할 안내 보기

개발 리드 FAQ

  • 웹과 앱의 Callback 서버를 따로 만들어야 하나요?

    보고 규격은 Callback URL 문서 하나에 정의되어 있고, Android·iOS SDK 변경 이력에도 같은 날 같은 보고가 추가됐습니다. 한 서버에서 처리하고 채널 구분이 필요하면 userData에 채널 값을 넣으면 됩니다.

  • iOS 시험에 실기기가 꼭 있어야 하나요?

    Xcode의 Run destination에서 My Mac을 고르면 실제 iPhone·iPad 없이 테스트와 디버깅이 가능합니다. 문서 FAQ도 미디어가 재생되지 않을 때 이 설정부터 바꿔 보라고 안내합니다.

  • 앱 화면 안에 플레이어를 넣고 아래에 목차를 두고 싶습니다.

    Android는 MediaPlayerBaseFragment를 앱 화면에 올리고, iOS는 MediaPlayerBaseViewController를 상속한 화면을 만듭니다. 기본 플레이어 화면을 그대로 쓸 때보다 직접 구현할 부분이 늘어나므로 일정에 반영하세요.

  • 커스텀 페이지의 새 창과 외부 링크는 어떻게 동작하나요?

    PlaynPlay App 1.0.31부터 window.open은 앱 안 새 창으로 열리고, 외부 브라우저에서 열어야 하는 링크만 target 값을 _external로 줍니다. 학습을 마치면 playnplay.close()로 앱을 닫습니다.

Get Started

PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.

제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.

  • 제품 및 도입 문의

    도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.

  • Trial 신청

    PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.

  • PlaynPlay 기술 문의

    SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.