

# 4단계: IVS Broadcast SDK 통합
<a name="getting-started-broadcast-sdk"></a>

IVS는 애플리케이션에 통합할 수 있는 웹, Android 및 iOS용 Broadcast SDK를 제공합니다. Broadcast SDK는 비디오 전송 및 수신에 모두 사용됩니다. [스테이지에 대한 RTMP 수집을 구성](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html)한 경우 RTMP 엔드포인트로 브로드캐스팅할 수 있는 인코더를 사용할 수 있습니다(예: OBS 또는 ffmpeg).

이 섹션에서는 두 명 이상의 참가자가 실시간으로 상호 작용할 수 있는 간단한 애플리케이션을 작성하는 방법에 대해 설명하고 있습니다. 아래 단계에서는 BasicRealTime이라는 앱을 생성하는 과정을 안내합니다. 전체 앱 코드는 CodePen과 GitHub에 있습니다.
+  웹: [https://codepen.io/amazon-ivs/pen/ZEqgrpo](https://codepen.io/amazon-ivs/pen/ZEqgrpo) 
+  Android: [https://github.com/aws-samples/amazon-ivs-real-time-streaming-android-samples](https://github.com/aws-samples/amazon-ivs-real-time-streaming-android-samples) 
+  iOS: [https://github.com/aws-samples/amazon-ivs-real-time-streaming-ios-samples](https://github.com/aws-samples/amazon-ivs-real-time-streaming-ios-samples) 

## 웹
<a name="getting-started-broadcast-sdk-web"></a>

### 파일 설정
<a name="getting-started-broadcast-sdk-web-setup"></a>

시작하려면 폴더와 초기 HTML 및 JS 파일을 생성하여 파일을 설정합니다.

```
mkdir realtime-web-example
cd realtime-web-example
touch index.html
touch app.js
```

스크립트 태그 또는 npm을 사용하여 Broadcast SDK를 설치할 수 있습니다. 이 예제에서는 간단히 하기 위해 스크립트 태그를 사용하지만 나중에 npm을 사용하도록 선택하려는 경우 쉽게 수정할 수 있습니다.

### 스크립트 태그 사용
<a name="getting-started-broadcast-sdk-web-script"></a>

Web Broadcast SDK는 JavaScript 라이브러리로 배포되며 [https://web-broadcast.live-video.net/1.33.0/amazon-ivs-web-broadcast.js](https://web-broadcast.live-video.net/1.33.0/amazon-ivs-web-broadcast.js)에서 찾을 수 있습니다.

`<script>` 태그를 통해 로드되면 라이브러리는 `IVSBroadcastClient`라는 창 범위에 글로벌 변수를 노출합니다.

### npm 사용
<a name="getting-started-broadcast-sdk-web-npm"></a>

npm 패키지 설치

```
npm install amazon-ivs-web-broadcast
```

이제 IVSBroadcastClient 객체에 액세스할 수 있습니다.

```
const { Stage } = IVSBroadcastClient;
```

## Android
<a name="getting-started-broadcast-sdk-android"></a>

### Android 프로젝트 생성
<a name="getting-started-broadcast-sdk-android-project"></a>

1. Android Studio에서 **새 프로젝트**를 생성합니다.

1. **빈 보기 활동**을 선택합니다.

   참고: 일부 이전 버전의 Android Studio에서는 보기 기반 활동을 **빈 활동**이라고 합니다. Android Studio 창에 **빈 활동**이 표시되고 **빈 보기** 활동이 표시되지 **않으면 **빈 활동**을 선택합니다. 그렇지 않으면 Jetpack Composite가 아닌 View API를 사용하므로 **빈 활동**을 선택하지 마세요.

1. 프로젝트 **이름**을 지정한 다음 **완료**를 선택합니다.

### Broadcast SDK 설치
<a name="getting-started-broadcast-sdk-android-install"></a>

Android 개발 환경에 Amazon IVS Android 브로드캐스트 라이브러리를 추가하려면 여기에 표시된 대로 모듈의 `build.gradle` 파일에 라이브러리를 추가합니다(최신 버전의 Amazon IVS broadcast SDK의 경우). 최신 프로젝트에서는 `mavenCentral` 리포지토리가 이미 `settings.gradle` 파일에 포함되어 있을 수 있습니다. 이 경우 `repositories` 블록을 생략할 수 있습니다. 샘플의 경우 `android` 블록에서 데이터 바인딩도 활성화해야 합니다.

```
android {
    dataBinding.enabled true
}

repositories {
    mavenCentral()
}
 
dependencies {
     implementation 'com.amazonaws:ivs-broadcast:1.40.0:stages@aar'
}
```

또는 SDK를 수동으로 설치하려면 다음 위치에서 최신 버전을 다운로드하세요.

[https://search.maven.org/artifact/com.amazonaws/ivs-broadcast](https://search.maven.org/artifact/com.amazonaws/ivs-broadcast)

## iOS
<a name="getting-started-broadcast-sdk-ios"></a>

### iOS 프로젝트 생성
<a name="getting-started-broadcast-sdk-ios-project"></a>

1. 새 Xcode 프로젝트를 생성합니다

1. **플랫폼**에서 **iOS**를 선택합니다.

1. **애플리케이션**에서 **앱**을 선택합니다.

1. 앱의 **제품 이름**을 입력하고 **다음**을 선택합니다.

1. 프로젝트를 저장할 디렉터리를 선택(이동)하고 **생성**을 선택합니다.

다음으로 SDK를 가져와야 합니다. 지침은 *iOS Broadcast SDK 안내서*의 [라이브러리 설치](broadcast-ios-getting-started.md#broadcast-ios-install)를 참조하세요.

### 권한 구성
<a name="getting-started-broadcast-sdk-ios-config"></a>

프로젝트의 `Info.plist`를 업데이트하여 `NSCameraUsageDescription`과 `NSMicrophoneUsageDescription`에 대한 2개의 새 항목을 추가해야 합니다. 값으로 앱에서 카메라 및 마이크 액세스를 요청하는 이유에 대한 사용자 대면 설명을 제공합니다.

![\[iOS 권한 구성\]](http://docs.aws.amazon.com/ko_kr/ivs/latest/RealTimeUserGuide/images/iOS_Configure.png)
