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

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

# 사용자 여정

사용자 여정(User Journeys)은 SDK가 설정된 플로우와 함께 조율하는 다단계 캡처 세션입니다. 예를 들어, 라이브니스 + 위험 점수 + 문서 캡처 + 전자 서명이 포함된 플로우는 단일 세션에서 셀피, 문서 캡처, 서명을 순서대로 실행합니다.

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

작동 방식
SDK는:

1. 초기화 중에 제공된 플로우 구성을 읽습니다.
2. 플로우에 필요한 캡처 순서(셀피, 문서, 서명)를 조율합니다.
3. 여정이 완료되면 `onSuccess`를 통해 `processId`가 반환됩니다. 셀피 단계에서는 `onSuccessSelfie`를 통해 이미지 데이터(`base64` / `encrypted`)도 반환됩니다. 문서 및 서명 캡처는 SDK가 내부적으로 처리합니다 — 단계별 아티팩트는 클라이언트에 노출되지 않습니다.

조율은 SDK가 전적으로 처리하므로 앱에서 단계 순서를 직접 구현할 필요가 없습니다.

사용자 여정 시작
**1단계** — `AcessoBioManagerDelegate` 구현`AcessoBioManagerDelegate`는 SDK 라이프사이클 콜백을 처리합니다. 필수 메서드 4개를 구현하세요:

| 메서드 | 호출 시점 |
| --- | --- |
| `onErrorAcessoBioManager(error)` | SDK 작동 중 오류 발생 |
| `onUserClosedCameraManually()` | 사용자가 카메라를 수동으로 닫음 |
| `onSystemClosedCameraTimeoutSession()` | 40초 세션 제한 도달 |
| `onSystemChangedTypeCameraTimeoutFaceInference()` | 13초 동안 얼굴이 감지되지 않음 — 수동 캡처로 전환 |

- Swift
- Objective-C

```
class ViewController: UIViewController, AcessoBioManagerDelegate {**  var unicoCheck: AcessoBioManager!  override func viewDidLoad() {    super.viewDidLoad()    unicoCheck = AcessoBioManager(viewController: self)  }  func onErrorAcessoBioManager(_ error: ErrorBio!) { }  func onUserClosedCameraManually() { }  func onSystemClosedCameraTimeoutSession() { }  func onSystemChangedTypeCameraTimeoutFaceInference() { }}
```

```
@implementation ViewController: UIViewController- (void)viewDidLoad {    [super viewDidLoad];    unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];}- (void)onErrorAcessoBioManager:(ErrorBio *)error { }- (void)onSystemChangedTypeCameraTimeoutFaceInference { }- (void)onSystemClosedCameraTimeoutSession { }- (void)onUserClosedCameraManually { }@end
```

필수 델리게이트 메서드위의 4개 델리게이트 메서드는 프로젝트에서 모두 생성해야 합니다 (로직이 없어도). 그렇지 않으면 프로젝트가 컴파일되지 않습니다.
**2단계** — `AcessoBioSelfieDelegate` 구현여정 캡처 결과 콜백을 처리하도록 메서드를 재정의합니다:메서드설명`onSuccessSelfie(result)`이미지가 성공적으로 캡처됨 — 이후 REST API 호출에 사용할 `SelfieResult`를 반환`onSuccess(result)`여정이 성공적으로 완료되었습니다 — 검증 결과 조회에 사용되는 `processId`를 반환`onErrorSelfie(errorBio)`캡처 실패 — 오류 세부 정보가 포함된 `ErrorBio`를 반환SwiftObjective-C```
class ViewController: UIViewController, AcessoBioManagerDelegate,  SelfieCameraDelegate, AcessoBioSelfieDelegate {  func onSuccessSelfie(_ result: SelfieResult!) { }  func onSuccess(_ result: SuccessResult!) { }  func onErrorSelfie(_ errorBio: ErrorBio!) { }}
```

```
@interface ViewController: UIViewController <AcessoBioManagerDelegate,  SelfieCameraDelegate, AcessoBioSelfieDelegate>@end@implementation ViewController- (void)onSuccessSelfie:(SelfieResult *)result { }- (void)onSuccess:(SuccessResult *)result { }- (void)onErrorSelfie:(ErrorBio *)errorBio { }@end
```

**3단계** — `prepareSelfieCamera` 및 `open` 호출SDK 구성을 전달하며 `prepareSelfieCamera`를 호출합니다. 카메라가 준비되면 `onCameraReady` 이벤트가 트리거됩니다 — `webAppToken`을 전달하며 `open()` 메서드를 통해 카메라를 엽니다:webAppToken`webAppToken`은 백엔드에서 프로세스를 생성할 때 `POST /client/v1/process`가 반환하는 `process.webAppToken` 필드입니다. 프로세스 생성을 참조하세요.
`onCameraReady(cameraOpener)` — 카메라 준비 완료; `open(self, webAppToken:)` 호출.
`onCameraFailed(message)` — 카메라 준비 실패(`ErrorPrepare`는 `ErrorBio`의 확장입니다).
SwiftObjective-C```
@IBAction func openCamera(_ sender: Any) {  unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())}func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {  cameraOpener.open(self, webAppToken: "your_web_app_token")}func onCameraFailed(_ message: ErrorPrepare!) { }
```

```
- (IBAction)openCamera:(UIButton *)sender {    [[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];}- (void)onCameraReady:(id)cameraOpener {    [cameraOpener open:self webAppToken:@"your_web_app_token"];}- (void)onCameraFailed:(ErrorPrepare *)message { }
```

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