---
title: 초기화
canonical: https://developer.unico.io/ko/dual-api/developers/sdks-and-tools/ios/initialization
locale: ko
generated_by: markdown-export
---

## 인증 정보 내장

클래스에서 `AcessoBioConfigDataSource` 프로토콜을 구현합니다:

### Swift

  ```swift title="UnicoConfig.swift"
  import AcessoBio

  class YourUnicoConfigClass: AcessoBioConfigDataSource {
    func getBundleIdentifier() -> String {
      return "<YOUR_MOBILE_BUNDLE_IDENTIFIER>"
    }

    func getHostKey() -> String {
      return "<YOUR_SDK_KEY>"
    }
  }
  ```

### Objective-C

  ```objectivec title="UnicoConfig.h / UnicoConfig.m"
  // .h
  #import <AcessoBio/AcessoBioManager.h>
  #import <AcessoBio/AcessoBio-Swift.h>

  @interface YourUnicoConfigClass : NSObject <AcessoBioConfigDataSource>
  @end

  // .m
  @implementation YourUnicoConfigClass

  - (NSString * _Nonnull)getBundleIdentifier {
      return @"<YOUR_MOBILE_BUNDLE_IDENTIFIER>";
  }

  - (NSString * _Nonnull)getHostKey {
      return @"<YOUR_SDK_KEY>";
  }

  @end
  ```

## 매니저 인스턴스 생성

SDK를 가져오고 사용하려는 `ViewController` 내에 `AcessoBioManagerDelegate` 인터페이스를 구현합니다. *컨텍스트*를 제공하며 *빌더*를 인스턴스화하고, 애플리케이션의 비즈니스 로직으로 콜백 메서드를 재정의합니다:

### Swift

  ```swift title="ViewController.swift"
  import UIKit
  import AcessoBio

  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() { }
  }
  ```

### Objective-C

  ```objectivec title="ViewController.m"
  #import "ViewController.h"
  #import <AcessoBio/AcessoBio.h>

  @implementation ViewController: UIViewController
  - (void)viewDidLoad {
      [super viewDidLoad];
      unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
  }

  - (void)onErrorAcessoBioManager:(ErrorBio *)error { }
  - (void)onSystemChangedTypeCameraTimeoutFaceInference { }
  - (void)onSystemClosedCameraTimeoutSession { }
  - (void)onUserClosedCameraManually { }
  @end
  ```

:::danger[필수 델리게이트 메서드]
위의 네 가지 델리게이트 메서드는 모두 프로젝트에 생성해야 합니다(로직이 없더라도). 그렇지 않으면 프로젝트가 성공적으로 컴파일되지 않습니다.
:::

## 환경 선택

환경 선택은 초기화 중에 이루어집니다. `EnvironmentEnum` 유형을 사용합니다:

- `EnvironmentEnum.PROD` — 프로덕션 환경
- `EnvironmentEnum.UAT` — UAT 환경

### Swift

  ```swift
  unicoCheck.setEnvironment(.UAT)
  ```

### Objective-C

  ```objectivec
  [unicoCheck setEnvironment:UAT];
  ```

사용 가능한 환경 유형의 전체 목록은 [API 참조 > 초기화 API](/developers/sdks-and-tools/ios/api-reference/initialization-api)를 참조하십시오.

## 라이프사이클

백엔드와의 SDK 인증은 몇 초가 소요됩니다. 사용자가 촬영 버튼을 탭할 때가 아니라 **앱 시작 시 초기화**하십시오 — 그렇지 않으면 탭과 카메라 열림 사이에 사용자가 지연을 경험하게 됩니다.