Swift에서 문자열의 마지막 4자를 추출해야 할 때가 종종 있습니다. 다행히 Swift의 String 클래스가 제공하는 내장 함수만으로도 간단하게 처리할 수 있습니다.
다만 Swift는 버전이 올라갈 때마다 메서드가 추가·개선되거나 폐기(deprecated)되는 경우가 많아, 버전에 따라 사용 가능한 방법이 다릅니다. 이 글에서는 대표적인 두 가지 방법을 예제와 함께 살펴보겠습니다.
방법 1 — Substring 사용 (Swift 3)
Swift 3에서는 substring(from:) 메서드를 사용할 수 있었습니다. 이 방식은 문자열의 끝 인덱스(endIndex)에서 원하는 만큼 앞으로 오프셋을 이동시켜, 그 지점부터 문자열 끝까지 잘라내는 방식입니다.
var Str1 = "12312$$33@" print(Str1.substring(from: Str1.index(Str1.endIndex, offsetBy: -4)))
위 코드를 실행하면 문자열의 마지막 4글자인 "33@" 앞의 네 글자, 즉 "33@"가 포함된 마지막 구간이 출력됩니다. 실제 결과는 다음과 같습니다.

방법 2 — Suffix 사용 (Swift 4 이상, 권장)
Swift 4부터는 substring 메서드가 폐기(deprecated)되었고, 그 대안으로 훨씬 직관적인 suffix(_ :) 메서드가 제공됩니다. 이 메서드는 문자열 뒤에서 원하는 개수만큼의 문자를 손쉽게 가져올 수 있습니다.
print(Str1.suffix(4))
실행 결과는 다음과 같습니다.

재사용 가능한 함수로 만들기
매번 코드를 반복해서 작성하는 대신, 이 로직을 함수로 분리하면 어디서든 편리하게 재사용할 수 있습니다. 아래와 같이 일반 함수로 작성하거나, String의 익스텐션(extension)으로 만들어도 좋습니다.
func getLastFew(ofCount count: Int, from string: String) -> String {
return String(string.suffix(count))
}사용 방법은 다음과 같습니다.
print(getLastFew(ofCount: 4, from: Str1))
마무리
정리하면, 최신 Swift(Swift 4 이상) 환경에서는 suffix(_:)를 사용하는 것이 가장 깔끔하고 권장되는 방법입니다. 반환값이 Substring 타입이므로, String 타입이 필요하다면 위 예제처럼 String()으로 감싸 변환해 주는 점도 기억해 두세요.