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

- [/ko/](/ko/)
- [SDK 및 도구](/ko/developers/sdks-and-tools/overview)
- [Flutter SDK](/ko/developers/sdks-and-tools/flutter/requirements)
- 캡처 흐름
- 사용자 여정

# 사용자 여정

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

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

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

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

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

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

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

사용자 여정 시작
**1단계** — `UnicoListener` 구현`UnicoListener`는 SDK 수명 주기 콜백을 처리합니다. 네 가지 필수 메서드를 구현하세요:메서드호출 시점`onErrorUnico(error)`SDK 작동 중 오류 발생 시`onUserClosedCameraManually()`사용자가 카메라를 수동으로 닫을 때`onSystemClosedCameraTimeoutSession()`40초 세션 제한에 도달했을 때`onSystemChangedTypeCameraTimeoutFaceInference()`13초 동안 얼굴이 감지되지 않아 수동 캡처로 전환될 때```
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {  late UnicoCheckBuilder _unicoCheck;  @override  void onErrorUnico(UnicoError error) {}  @override  void onUserClosedCameraManually() {}  @override  void onSystemClosedCameraTimeoutSession() {}  @override  void onSystemChangedTypeCameraTimeoutFaceInference() {}}
```

필수 리스너 메서드위의 네 가지 리스너 메서드는 프로젝트에 반드시 생성해야 합니다 (로직이 없어도 됩니다). 그렇지 않으면 프로젝트가 성공적으로 컴파일되지 않습니다.
**2단계** — `UnicoSelfie`에 여정 리스너 구현상태 클래스에 여정 콜백을 추가하세요:메서드설명`onSuccess(SuccessResult result)`캡처 성공 — `processId`가 포함된 `SuccessResult` 반환 (Unico가 내부적으로 이미지를 처리)`onErrorSelfie(UnicoError error)`캡처 실패 — 코드 및 설명이 포함된 `UnicoError` 반환이미지 데이터 없음라이브니스 흐름과 달리, 사용자 여정 콜백은 `base64` 또는 `encrypted`를 **반환하지 않습니다**. Unico가 내부적으로 이미지 처리를 수행하고 `processId`만 반환합니다.```
@overridevoid onSuccess(SuccessResult result) {  debugPrint('processId: ${result.processId}');}@overridevoid onErrorSelfie(UnicoError error) { }
```

**3단계** — `openCameraSelfie` 호출`openCameraSelfie` 메서드가 카메라를 엽니다. 사용자 여정의 경우, JSON 자격 증명 파일 대신 Unico에서 제공한 `webAppToken`을 전달하세요:```
_opener.openCameraSelfie(  listener: this,  webAppToken: token,);
```

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

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

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

전체 결과 처리에 대해서는 [결과 수신](/ko/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result)을 참조하세요.마지막 업데이트 2026년 10월 8일**에