---
title: 사용자 여정
canonical: https://developer.unico.io/ko/dual-api/developers/sdks-and-tools/flutter/capture-flow/capture-types/user-journeys
locale: ko
generated_by: markdown-export
---

사용자 여정은 구성된 흐름과 연계하여 SDK가 조율하는 다단계 캡처 세션입니다. 예를 들어, `idchecktrustdocssign` 흐름은 단일 세션에서 셀피 + 문서 + 서명을 실행합니다.

:::secondary[제품]
사용 가능한 여정은 통합을 위해 구성된 흐름에 따라 다릅니다. 제품 → 흐름 → 기능의 전체 매핑은 [제품](/products)을 참조하세요.
:::

## 작동 방식

플러그인은 기반 네이티브 SDK에 위임합니다:

1. 플러그인이 SmartFrame 오버레이와 함께 카메라(Android 또는 iOS)를 엽니다.
2. 네이티브 SDK가 흐름에 필요한 캡처 시퀀스(셀피, 문서, 서명)를 조율합니다.
3. SDK가 내부적으로 결과를 Unico에 전달합니다 — 클라이언트는 이미지 데이터를 직접 수신하거나 관리하지 않습니다.
4. 플랫폼 채널을 통해 `processId`가 포함된 `SuccessResult` 객체를 반환합니다.

조율은 SDK에 의해 전적으로 처리됩니다 — Dart 코드에서 단계 시퀀스를 구현할 필요가 없습니다.

## 카메라 모드 (스마트 캡처)

SDK는 기본적으로 **지능형 프레이밍**과 **자동 캡처**가 활성화되어 있습니다. 빌더에서 카메라 모드를 다음과 같이 구성하세요:

```dart
UnicoCheckCameraOpener _opener = new UnicoCheck(this)
    .setAutoCapture(autoCapture: true)
    .setSmartFrame(smartFrame: true)
    .build();
```

## 사용자 여정 시작

****2단계** — `UnicoSelfie`에 여정 리스너 구현**

상태 클래스에 여정 콜백을 추가하세요:

  | 메서드 | 설명 |
  |---|---|
  | `onSuccess(SuccessResult result)` | 캡처 성공 — `processId`가 포함된 `SuccessResult` 반환 (Unico가 내부적으로 이미지를 처리) |
  | `onErrorSelfie(UnicoError error)` | 캡처 실패 — 코드 및 설명이 포함된 `UnicoError` 반환 |

  :::warning[이미지 데이터 없음]
  라이브니스 흐름과 달리, 사용자 여정 콜백은 `base64` 또는 `encrypted`를 **반환하지 않습니다**. Unico가 내부적으로 이미지 처리를 수행하고 `processId`만 반환합니다.
  :::

  ```dart
  @override
  void onSuccess(SuccessResult result) {
    debugPrint('processId: ${result.processId}');
  }

  @override
  void onErrorSelfie(UnicoError error) { }
  ```

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

`openCameraSelfie` 메서드가 카메라를 엽니다. 사용자 여정의 경우, JSON 자격 증명 파일 대신 Unico에서 제공한 `webAppToken`을 전달하세요:

  ```dart
  _opener.openCameraSelfie(
    listener: this,
    webAppToken: token,
  );
  ```

## 모니터링 데이터 수집

`openCameraSelfie` 메서드는 사용자 세션과 흐름을 식별하는 데 도움이 되도록 `UnicoCheckPrepareInfo`를 통해 메타데이터를 받는 오버로드를 제공합니다:

- `externalUserId` (String, **필수**) — 시스템 내 사용자 식별자. 전송 전 SHA-256을 사용하여 자동으로 해시됩니다.
- `useCase` (String, 선택) — 현재 실행 중인 컨텍스트 또는 흐름의 식별자. 일반 텍스트로 전송됩니다.

```dart
_opener.openCameraSelfie(
  listener: this,
  webAppToken: token,
  prepareInfo: UnicoCheckPrepareInfo(
    externalUserId: 'external_user_id',
    useCase: 'use_case', // optional
  ),
);
```

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