---
title: 라이브니스 (생체 인식 셀피)
description: 내장된 라이브니스 검증을 통한 생체 인식 셀피 촬영으로, 촬영된 프레임을 Base64와 JWT로 반환합니다.
canonical: https://developer.unico.io/ko/dual-api/developers/sdks-and-tools/ios/capture-flow/capture-types/liveness
locale: ko
generated_by: markdown-export
---

내장된 라이브니스 검증을 통한 생체 인식 셀피 촬영입니다. SDK는 SmartFrames를 통해 생체 인식적으로 유효한 프레임이 획득될 때까지 사용자를 안내하고, 이미지를 Base64 + JWT로 반환합니다.

:::secondary[기능]
이 촬영 유형은 **Liveness** 기능을 사용합니다. Liveness 작동 방식에 대한 개념적 개요는 Liveness 기능 페이지를 참조하십시오.
:::

## 작동 방식

SDK가 전체 촬영 세션을 관리합니다:

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

## 카메라 모드 (스마트 촬영)

SDK에는 기본적으로 **지능형 프레이밍**과 **자동 촬영**이 활성화되어 있습니다. 빌더에서 다음과 같이 카메라 모드를 설정합니다:

### Swift

  ```swift
  unicoCheck.setSmartFrame(true)
  unicoCheck.setAutoCapture(true)
  ```

### Objective-C

  ```objectivec
  [unicoCheck setSmartFrame:true];
  [unicoCheck setAutoCapture:true];
  ```

## 라이브니스 촬영 시작

****2단계** — `SelfieCameraDelegate` 및 `AcessoBioSelfieDelegate` 구현**

이 델리게이트들은 셀피 촬영 결과 콜백을 처리합니다:

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

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

  ### Swift

    ```swift
    class ViewController: UIViewController, AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate {

      func onSuccessSelfie(_ result: SelfieResult!) { }
      func onErrorSelfie(_ errorBio: ErrorBio!) { }
    }
    ```

### Objective-C

    ```objectivec
    // .h
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate> {
      AcessoBioManager *unicoCheck;
    }

    // .m
    - (void)onSuccessSelfie:(SelfieResult *)result {
        NSLog(@"%@", result.base64);
    }

    - (void)onErrorSelfie:(ErrorBio *)errorBio { }
    ```

****3단계** — `prepareSelfieCamera` 및 `open` 호출**

SDK 설정을 전달하며 `prepareSelfieCamera`를 호출합니다. 카메라가 준비되면 `AcessoBioCameraOpenerDelegate`와 함께 `onCameraReady` 이벤트가 트리거됩니다 — `open()` 메서드를 통해 카메라를 엽니다:

  - `onCameraReady(cameraOpener)` — 카메라 준비 완료; `open(self)` 호출.
  - `onCameraFailed(message)` — 카메라 준비 실패(`ErrorPrepare`는 `ErrorBio`의 확장입니다).

  ### Swift

    ```swift
    @IBAction func openCamera(_ sender: Any) {
      unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
    }

    func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
      cameraOpener.open(self)
    }

    func onCameraFailed(_ message: ErrorPrepare!) { }
    ```

### Objective-C

    ```objectivec
    - (IBAction)openCamera:(UIButton *)sender {
        [[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
    }

    - (void)onCameraReady:(id)cameraOpener {
        [cameraOpener open:self];
    }

    - (void)onCameraFailed:(ErrorPrepare *)message { }
    ```

결과 처리에 대한 전체 내용은 [결과 수신](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result)을 참조하세요.