---
title: 라이브니스 (생체 인식 셀피)
canonical: https://developer.unico.io/ko/dual-api/developers/sdks-and-tools/android/capture-flow/capture-types/liveness
locale: ko
generated_by: markdown-export
---

내장된 라이브니스 검증을 갖춘 생체 인식 셀피 캡처. SDK는 SmartFrames를 통해 생체 인식적으로 유효한 프레임을 얻을 때까지 사용자를 안내하며, 이미지를 Base64 + JWT (JSON Web Token — REST API 호출을 위해 백엔드로 전송하는 서명된 페이로드) 형태로 반환합니다.

:::secondary[기능]
이 캡처 유형은 **라이브니스** 기능을 사용합니다. 라이브니스 작동 방식에 대한 개념적 개요는 [라이브니스 기능 페이지](/capabilities/liveness)를 참조하세요.
:::

## 작동 방식

SDK가 전체 캡처 세션을 관리합니다:

1. SmartFrame 오버레이로 카메라를 엽니다.
2. 사용자가 프레임 내에 얼굴을 위치시키도록 안내합니다.
3. 라이브니스를 검증합니다 — 사용자가 물리적으로 존재할 때만 세션이 완료됩니다.
4. `base64` 및 `encrypted` (JWT)가 포함된 `ResultCamera` 객체를 반환합니다.

## 라이브니스 캡처 시작

****2단계** — `iAcessoBioSelfie` 구현**

`iAcessoBioSelfie`는 셀피 캡처 결과 콜백을 처리합니다:

  | 메서드 | 설명 |
  |---|---|
  | `onSuccessSelfie(result)` | 캡처 성공 — `base64` (미리보기) 및 `encrypted` (API용 JWT)가 포함된 `ResultCamera` 반환 |
  | `onErrorSelfie(errorBio)` | 캡처 실패 — 코드와 설명이 포함된 `ErrorBio` 반환 |

  :::warning[토큰 만료]
  `encrypted` 생성과 API 제출 사이의 간격은 **10분**을 초과해서는 안 됩니다.
  :::

  ### Kotlin

    ```kotlin
    val selfieListener = object : iAcessoBioSelfie {
      override fun onSuccessSelfie(result: ResultCamera?) { }
      override fun onErrorSelfie(errorBio: ErrorBio?) { }
    }
    ```

### Java

    ```java
    iAcessoBioSelfie selfieListener = new iAcessoBioSelfie() {
      @Override
      public void onSuccessSelfie(ResultCamera result) { }

      @Override
      public void onErrorSelfie(ErrorBio errorBio) { }
    };
    ```

****3단계** — `prepareCamera` 호출**

`unicoCheckCamera`가 초기화되고 두 리스너가 모두 구현된 상태에서, SDK 구성 ([초기화](/developers/sdks-and-tools/android/initialization)에서 생성한 `UnicoConfig`)과 `SelfieCameraListener`를 전달하여 `prepareCamera`를 호출합니다:

  - `onCameraReady` — 카메라 준비 완료; 2단계의 `selfieListener`를 전달하여 `open`을 호출합니다.
  - `onCameraFailed` — 카메라 준비 실패; 오류 메시지를 처리합니다.

  ### Kotlin

    ```kotlin
    unicoCheckCamera
      .prepareCamera(UnicoConfig(), object : SelfieCameraListener {
        override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
          cameraOpener?.open(selfieListener)
        }
        override fun onCameraFailed(message: String?) { }
      })
    ```

### Java

    ```java
    unicoCheckCamera
      .prepareCamera(new UnicoConfig(), new SelfieCameraListener() {
        @Override
        public void onCameraReady(UnicoCheckCameraOpener.Selfie cameraOpener) {
          cameraOpener.open(selfieListener);
        }

        @Override
        public void onCameraFailed(String message) { }
      });
    ```

전체 결과 처리는 [결과 수신](/developers/sdks-and-tools/android/capture-flow/receiving-the-result)을 참조하세요.