[swift] PhoneNumberKit을 사용하여 전화번호에 관련된 기본 출력 옵션 설정하기

전화번호 처리는 모바일 애플리케이션에서 매우 중요한 역할을 합니다. PhoneNumberKit은 Swift용 유효한 전화번호 인식 및 포맷팅을 도와주는 인기 있는 라이브러리입니다. 기본 출력 옵션을 설정하여 원하는 형식으로 전화번호를 표시할 수 있습니다.

PhoneNumberKit 설치

PhoneNumberKit은 CocoaPods를 통해 쉽게 설치할 수 있습니다. Podfile에 다음과 같은 라인을 추가하고 터미널에서 pod install 명령을 실행합니다.

pod 'PhoneNumberKit'

전화번호 포맷팅 설정하기

PhoneNumberKit을 사용하여 전화번호를 포맷팅하려면 우선 PhoneNumberKit 인스턴스를 만들어야 합니다. 다음은 전화번호를 생성하고 기본 출력 옵션을 설정하는 예시입니다.

import PhoneNumberKit

let phoneNumberKit = PhoneNumberKit()

// 전화번호 생성
let phoneNumber = try? phoneNumberKit.parse("+821012345678")

// 기본 출력 옵션 설정
phoneNumberKit.config.defaultCountryCode = "KR"
phoneNumberKit.config.nationalPrefixFormattingRule = "$NP"
phoneNumberKit.config.generalDesc = PhoneNumberDesc(nationalNumberPattern: "\\d{3,14}", possibleNumberPattern: "\\d{3,14}", exampleNumber: nil)

위의 코드에서 defaultCountryCode는 전화번호의 기본 국가 코드를 설정하는 옵션입니다. 여기서는 한국(KR)을 설정하였습니다. nationalPrefixFormattingRule은 해당 국가의 국가 접두어를 출력해주는 옵션으로, “$NP”을 사용하면 국가 접두어가 포함된 형식으로 전화번호를 표시할 수 있습니다. generalDesc는 전화번호의 일반적인 형식을 정의하는 옵션으로, nationalNumberPattern은 국가 번호의 패턴을, possibleNumberPattern은 가능한 패턴을 설정합니다.

전화번호 포맷팅하기

이제 전화번호를 원하는 형식으로 포맷팅할 수 있습니다. PhoneNumberKit에서는 format(_:toType:withPrefix:) 메서드를 사용합니다.

let formattedPhoneNumber = phoneNumberKit.format(phoneNumber!, toType: .e164, withPrefix: true)
print(formattedPhoneNumber) // +821012345678

toType 매개변수는 원하는 전화번호 형식을 설정하는 옵션으로, .e164은 E.164 형식으로 전화번호를 표시한다는 뜻입니다. withPrefix는 국가 번호를 포함할지 여부를 결정하는 옵션입니다. true로 설정하면 국가 번호를 포함한 형식으로 전화번호가 표시됩니다.

참고 자료