> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XSAPI C 개요

> GDK 타이틀의 XBOX Live용 XSAPI C API 계층에 대한 소개로, 메모리 할당 콜백, 스레드 제어 및 libHttpClient를 다룹니다.

2018년 6월, C API 계층이 XSAPI에 추가되었습니다. C API 계층은 C++ 및 WinRT API 계층에서 발생한 일부 문제를 해결합니다.

> **참고:**
> 현재 C API는 GDK 및 XDK를 사용하는 타이틀에서만 작동합니다. 현재 UWP 게임은 지원하지 않습니다.

## XSAPI용 C API의 이점

* 타이틀이 XSAPI 호출 시 메모리 할당을 제어할 수 있도록 합니다.
* 타이틀이 XSAPI 호출 시 스레드 처리를 완전히 제어할 수 있도록 합니다.
* 게임 개발자를 위해 설계된 새로운 HTTP 라이브러리인 libHttpClient를 사용합니다.

C API를 C++ XSAPI와 함께 사용할 수 있지만, C++ API로는 앞서 나열한 이점을 얻을 수 없습니다.

### 메모리 할당 관리

C API를 사용하면 이제 XSAPI가 메모리를 할당하려고 할 때마다 호출할 함수 콜백을 지정할 수 있습니다.
함수 콜백을 지정하지 않으면 XSAPI는 표준 메모리 할당 루틴을 사용합니다.

메모리 루틴을 수동으로 지정하려면 다음을 수행할 수 있습니다.

* 게임 시작 시:
  * 메모리 할당 및 해제를 위한 할당 콜백을 지정하려면 `XblMemSetFunctions(memAllocFunc, memFreeFunc)`를 호출합니다.
  * 라이브러리 인스턴스를 초기화하려면 `XblInitialize()`를 호출합니다.
* 게임 실행 중:
  * 메모리를 할당하거나 해제하는 XSAPI의 새 C API 중 하나를 호출하면 XSAPI가 지정된 메모리 처리 콜백을 호출합니다.
* 게임 종료 시:
  * XSAPI 라이브러리와 연결된 모든 리소스를 회수하려면 `XblCleanup()`을 호출합니다.
  * 게임의 사용자 지정 메모리 관리자를 정리합니다.

### 비동기 스레드 관리

C API는 개발자가 스레드 모델을 완전히 제어할 수 있는 새로운 비동기 스레드 호출 패턴을 도입합니다.
자세한 내용은 [XSAPI C 계층 비동기 호출을 위한 호출 패턴](/services/xbox-services/fundamentals/xbox-services-api/live-flatc-async-patterns)을 참조하세요.

## C XSAPI를 사용하도록 코드 마이그레이션

XSAPI C API는 프로젝트에서 XSAPI C++ API와 함께 사용할 수 있으므로 한 번에 하나씩 기능을 마이그레이션하는 것이 좋습니다.

C API와 C++ API는 실제로 공통 코어를 감싸는 얇은 래퍼일 뿐이며, 진입점만 다를 뿐 기능은 변경되지 않습니다.

그러나 사용자 지정 메모리 및 스레드 관리 기능은 C API만 활용할 수 있습니다.

> **중요:**
> XSAPI WinRT API를 C API와 혼용할 수 없습니다.

## 유용한 리소스

* [XSAPI C API를 사용하는 샘플](https://github.com/Microsoft/xbox-live-samples)
* [libHttpClient GitHub 리포지토리](https://github.com/Microsoft/libHttpClient)
* C API를 보려면 XSAPI C 헤더 파일을 참조하세요. 이는 GDK의 일부인 XBOX 서비스 SDK에 있습니다.

## 참고 항목

[XSAPI C 참조](/reference/live/xsapi-c/atoc-xsapi-c)

[REST API 참조](/reference/live/rest/atoc-xboxlivews-reference)

[HttpClient 참조](/reference/live/httpclient/atoc-httpclient)


## Related topics

- [Unity 개요](/ko/paths/unity/overview.md)
- [포팅 개요](/ko/paths/porting/overview.md)
- [XBOX Series X|S 개요](/ko/paths/series-xs/overview.md)
- [WinHTTP 개요](/ko/build/console-features/networking/web-requests/intro-winhttp.md)
- [Unreal Engine 개요](/ko/paths/unreal/overview.md)
