[swift] PromiseKit를 이용한 로그인 및 회원가입 구현 방법

이번 글에서는 Swift의 PromiseKit 라이브러리를 이용하여 로그인 및 회원가입 기능을 구현하는 방법에 대해 알아보겠습니다.

PromiseKit란?

PromiseKit은 비동기 작업을 다루기 위한 Swift 라이브러리로, 코드를 간결하게 작성하고 비동기 작업의 결과를 처리하기 위한 편리한 기능을 제공합니다. PromiseKit을 이용하면 비동기 작업을 순차적으로 실행하고, 성공 또는 실패에 대한 처리를 쉽게 구현할 수 있습니다.

Firebase 설정

먼저 Firebase를 이용하여 로그인 및 회원가입 기능을 구현해보겠습니다. Firebase는 Google에서 제공하는 개발 플랫폼으로, 사용자 인증, 데이터베이스, 스토리지 등 다양한 기능을 제공합니다.

  1. Firebase 콘솔에 접속하여 새 프로젝트를 생성합니다.
  2. 프로젝트 메인 화면에서 “Authentication”을 선택하고, 상단의 “시작하기” 버튼을 클릭합니다.
  3. 인증 방법으로 이메일/비밀번호를 선택하고, “활성화”를 체크합니다.
  4. “템플릿 다운로드”를 클릭하여 GoogleService-Info.plist 파일을 다운로드합니다.
  5. Xcode 프로젝트에 GoogleService-Info.plist 파일을 추가합니다.

PromiseKit 설치

PromiseKit은 CocoaPods를 이용하여 설치할 수 있습니다. Podfile에 다음 코드를 추가하고, 터미널에서 pod install 명령어를 실행하세요.

platform :ios, '11.0'
use_frameworks!

target 'YourProjectName' do
    pod 'PromiseKit'
end

로그인 및 회원가입 구현

이제 실제로 로그인 및 회원가입 기능을 구현해보겠습니다. 먼저, Firebase와 PromiseKit을 import 하세요.

import Firebase
import PromiseKit

로그인 기능 구현

func login(email: String, password: String) -> Promise<Void> {
    return Promise { seal in
        Auth.auth().signIn(withEmail: email, password: password) { (result, error) in
            if let error = error {
                seal.reject(error)
            } else {
                seal.fulfill(())
            }
        }
    }
}

위의 코드는 이메일과 비밀번호를 입력받아 Firebase의 인증 기능을 이용하여 로그인하는 기능을 구현한 것입니다.

회원가입 기능 구현

func register(email: String, password: String) -> Promise<Void> {
    return Promise { seal in
        Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
            if let error = error {
                seal.reject(error)
            } else {
                seal.fulfill(())
            }
        }
    }
}

위의 코드는 이메일과 비밀번호를 입력받아 Firebase의 인증 기능을 이용하여 회원가입하는 기능을 구현한 것입니다.

사용 예시

이제 위에서 구현한 로그인 및 회원가입 기능을 사용해보겠습니다.

login(email: "example@example.com", password: "password")
    .done {
        print("로그인 성공")
    }
    .catch { error in
        print("로그인 실패: \(error.localizedDescription)")
    }

register(email: "example@example.com", password: "password")
    .done {
        print("회원가입 성공")
    }
    .catch { error in
        print("회원가입 실패: \(error.localizedDescription)")
    }

위의 코드는 이메일 “example@example.com”과 비밀번호 “password”로 사용자를 로그인하고, 회원가입하는 예시입니다. 로그인 및 회원가입이 성공할 경우 “로그인 성공” 또는 “회원가입 성공” 메시지를 출력하며, 실패할 경우 실패 사유를 출력합니다.

마무리

위의 예시 코드를 참고하여 PromiseKit를 이용한 로그인 및 회원가입 기능을 구현할 수 있습니다. PromiseKit은 비동기 작업을 간결하고 효율적으로 다룰 수 있도록 도와주는 강력한 라이브러리입니다. Firebase와 PromiseKit을 조합하여 더욱 효율적으로 개발할 수 있습니다.