Search

프로퍼티 래퍼(박선구)

프로퍼티 래퍼

Swift에서 값을 변환, 캡슐화, 코드 재사용 그리고 선언적 구문을 제공하여 프로퍼티에 대한 유연하고 효과적인 관리를 가능하게 하는 것

프로퍼티 래퍼는 클래스와 구조체 구현부에 게터(getter), 세터(setter), 연산프로퍼티 코드의 중복을 줄이는 방법을 제공한다.
쉽게 재사용하거나, 반복되는 코드를 줄이기 위함
프로퍼티 래퍼는 기본적으로 연산 프로퍼티의 기능을 개별 클래스와 구조체와 분리할 수 있게 한다.
클래스나 구조체 안에 구현된다.
모든 프로퍼티 래퍼는 값을 변경하거나 유효성을 검사하는 게터와 세터 코드가 포함된 wrappedValue 프로퍼티를 가져야 한다.
초깃값이 전달되는 초기화 메서드는 선택사항으로 포함 될 수도 있다.

프로퍼티 래퍼의 기능

@propertyWrapper 어트리뷰트로 정의되며, 커스텀 데이터 타입을 만들어 프로퍼티 래퍼로 사용한다.
1.
Value Transformation (값 변환): 프로퍼티 래퍼는 프로퍼티에 할당되는 값을 변환하거나 수정할 수 있다. 이를 통해 데이터의 유효성을 검사하거나 특정 형식으로 변환할 수 있다.
2.
Encapsulation (캡슐화): 프로퍼티 래퍼는 프로퍼티에 대한 액세스를 캡슐화하여 외부에서 직접 접근하는 것을 제어할 수 있다. 이를 통해 은닉화 및 보안을 향상시킬 수 있다.
3.
Code Reusability (코드 재사용): 프로퍼티 래퍼는 여러 프로퍼티에서 동일한 로직을 재사용할 수 있도록 해준다. 이는 중복 코드를 제거하고 유지보수성을 향상시킵니다.
4.
Declarative Syntax (선언적 구문): 프로퍼티 래퍼를 사용하면 프로퍼티를 설정할 때 보다 선언적이고 읽기 쉬운 구문을 제공한다.
연산 프로퍼티를 사용
많은 양의 코드와 복잡한 연산이 있는 경우엔 적절하지 않다.
프로퍼티 래퍼 사용