# V1에서 V2로 마이그레이션 가이드

> Migrate from Vivox server-side recording version 1 to version 2.

서버 측 녹음 API 버전 1에서 업그레이드하는 경우 이 가이드를 따릅니다.

## 주요 변경 사항##key-changes

V2 API는 다음과 같은 변경 사항을 적용합니다.

* TTL은 더 이상 유효한 옵션이 아닙니다. 모든 요청에 이력을 사용해야 합니다.
* 이제 API는 스토리지용 GCP 버킷을 지원합니다.
* API가 더욱 편안하게 재설계되었습니다:
  * 상태 완료 파일은 이제 콜백 서버로 대체되었습니다.
* 이제 SSR에서는 Unity Cloud 조직의 서비스 계정을 사용해야 합니다.
* 중복 제거 기능이 삭제되었습니다. 중복된 요청에 대해 `409` 오류 코드가 더 이상 표시되지 않습니다.
* 자동 종료 기능이 제거되었습니다. 요청은 항상 이력 요청의 전체 기간 동안 실행됩니다.
* 더 이상 오디오 디코드를 요청할 필요가 없습니다. Vivox가 상태를 관리하며 최종 제품은 채널의 스피커당 .WAV 파일 1개입니다.

## Authentication 변경 사항##authentication-changes

1. 이제 SSR에서는 모든 요청에 ​​대해 Unity Authentication을 사용해야 합니다.
   * 조직이나 프로젝트를 생성하지 않은 경우 하나를 생성합니다. 자세한 내용은 프로젝트 생성 방법 을 참고하시기 바랍니다.

2. 프로젝트와 조직이 정해지면 해당 세부 정보를 세일즈 담당자와 공유해야 합니다. 그러면 세일즈 담당자가 조직에서 SSR을 활성화합니다.

3. SSR을 활성화하면 API로 인증할 서비스 계정을 생성해야 합니다. [서비스 계정 생성 방법](https://services.docs.unity.com/docs/service-account-auth/#create-a-service-account)을 참고하시기 바랍니다.

4. 서비스 계정 페이지에서 서비스 계정에 권한을 할당합니다. **Manage organization permissions**를 선택하고 `Server Side Recording Processor Role`을 할당합니다. 그러면 이 서비스 계정이 SSR API에 액세스할 수 있습니다.


   **드롭다운에서 SSR 권한을 선택하여 활성화하는 예제입니다.:**
   ![드롭다운에서 SSR 권한을 선택하여 활성화하는 예제입니다.](/api/media?file=/vivox-unity/media/images/Unity/server-side-recording/images/ssr-permission.png)

5. 이 서비스 계정을 사용하려면 [서비스 계정으로 인증하는 방법](https://services.docs.unity.com/docs/service-account-auth/#authenticate-an-api-using-service-account-credentials)을 참고하시기 바랍니다.

## API 변경 사항##api-changes

> **Note:**
>
> [SSR v2용 전체 API 기술 자료](https://services.docs.unity.com/ssr/v2/)는 웹 서비스 API 기술 자료에서 확인할 수 있습니다.
>
> 이 가이드는 V1 API에서 V2 API로 변경할 사항만 다루고 새로운 기능은 포함하지 않습니다. 새로운 필드와 옵션에 대한 개요는 전체 API 기술 자료를 참고하시기 바랍니다.

### 요청 변경 사항##request-changes

V2 API는 요청 필드 전달을 위한 쿼리 파라미터를 제거합니다. 이제 모든 필드가 요청 바디에서 JSON으로 전달됩니다. 다음은 더 이상 존재하지 않는 필드 목록입니다.

1. 이제 `destination_credentials`가 `storageOptions`에 포함됩니다. V1 API와 동일한 방식으로 AWS를 사용하려면 특정 코드 세그먼트를 교체해야 합니다.

   | 이 코드 교체                                                                                                                      | 코드 교체 결과                                                                                                                                       |
   | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
   | \{  "destination\_credentials": \{ "bucket": "my-bucket",  "access\_key\_id": "secret", "secret\_access\_key": "secret" }  } | \{ "storageOptions": \{ "provider": "aws", "credentials": \{ "bucket": "my-bucket", "accessKeyId": "secret", "secretAccessKey": "secret" } } } |

2. `target_type` 필드를 제거합니다. V2 API는 채널 구독만 지원합니다.

3. `ttl` 필드가 제거되었습니다. `history` 필드를 사용하여 녹음 기간을 지정합니다.

> **Note:**
>
> 새로운 선택적 필드 `callbackUri`가 추가되었습니다. 이 필드를 사용하면 호스트하는 서버에 작업 상태를 수신할 콜백 서버를 지정할 수 있습니다. 이 필드에 URL을 지정하면 Vivox에서 요청할 수 있습니다. 자세한 내용은 [콜백 서버 기술 자료](./callback-server.md)를 참고하시기 바랍니다.

## SSR 디코더##ssr-decoder

SSR 디코더는 더 이상 별도의 요청이 아닙니다. 요청의 최종 제품은 채널의 스피커당 하나의 .WAV 파일이고 인프라에서 작업 상태 트래킹을 제거할 수 있습니다.

## 콜백 서버##callback-server

`status_complete`과 `status_decoded`가 제거됨에 따라 작업이 완료되면 알려 주는 메커니즘이 추가되었습니다. 이는 콜백 서버를 통해 수행됩니다. 자세한 내용은 [콜백 서버 기술 자료](./callback-server.md)를 참고하시기 바랍니다.

이 기능은 완전히 선택 사항이지만, 작업 완료 여부를 확인하거나 오디오가 누락된 이유를 알 수 있는 유일한 방법입니다.
