[swift] 제네릭을 사용하여 데이터 유효성을 검증하는 방법은?

제네릭을 사용하여 데이터 유효성을 검증하는 방법은 여러 가지가 있습니다. 제네릭은 Swift에서 재사용 가능한 코드를 작성할 때 매우 유용한 기능 중 하나입니다.

1. 제네릭을 활용한 함수 작성

먼저, 제네릭을 사용하여 데이터 유효성을 검증하는 함수를 작성할 수 있습니다. 예를 들어, 아래와 같이 제네릭을 사용하여 배열의 요소들을 검증하는 함수를 작성할 수 있습니다.

func validate<T>(data: [T], condition: (T) -> Bool) -> Bool {
    for item in data {
        if !condition(item) {
            return false
        }
    }
    return true
}

위의 코드에서 validate 함수는 제네릭 타입 T를 받아들이는데, 이를 활용하여 배열의 각 요소를 검증합니다.

2. 제네릭 타입 제약 활용

제네릭을 사용하여 데이터 유효성을 검증할 때, 제네릭 타입 제약을 활용하여 특정 타입에만 적용되도록 할 수 있습니다. 예를 들어, 다음과 같이 Equatable 프로토콜을 채택한 타입에 대해서만 유효성 검증을 수행하도록 제약을 추가할 수 있습니다.

func validate<T: Equatable>(data: [T], condition: (T) -> Bool) -> Bool {
    // 유효성 검증 로직
}

위의 코드에서 T: Equatable은 제네릭 타입 T가 Equatable 프로토콜을 따르는 타입에 대해서만 동작한다는 제약을 추가한 것입니다.

3. 제네릭을 활용한 유효성 검증 예제

마지막으로, 실제로 제네릭을 사용하여 데이터 유효성을 검증하는 예제를 살펴보겠습니다. 아래 코드는 문자열 배열에 포함된 문자열들의 길이가 5보다 작은지를 검증하는 예제입니다.

let stringArray = ["Swift", "iOS", "App"]
let isLengthValid = validate(data: stringArray, condition: { $0.count < 5 })
print(isLengthValid) // Output: true

위의 예제에서 validate 함수를 활용하여 문자열 배열의 각 요소의 길이가 5보다 작은지를 검증하고 있습니다.

제네릭을 사용하여 데이터 유효성을 검증하는 방법에 대해서 간략하게 살펴보았습니다. 이를 활용하여 보다 유연하고 재사용 가능한 코드를 작성할 수 있을 것입니다.

참고 자료: Apple Developer Documentation - Generics