---
# System prepended metadata

title: Untitled

---

OptionSet 프로토콜 - 여러가지의 옵션을 가지거나, 옵션이 없는 경우에도 사용할 수 있게 해주는 프로토콜

Sendable 프로토콜 - ThreadSafe한 친구라는 것을 알리는 프로토콜
채택




- UIView.AnimationOptions 와 UIView.KeyframeAnimationOptions 의 차이점을 알아보고, UIView.AnimationOptions은 어떤 타입으로 정의되어 있는지, 준수하는 프로토콜은 어떤 프로토콜인지 알아봅시다
    1. AnimationOptions
        - 블록 오브젝트 기반 애니메이션에서 사용할 수 있는 옵션이다.
    2. KeyframeAnimationOptions
        - 키프레임 기반 애니메이션에서 사용할 수 있는 옵션이다.
    3. AnimationOptions은 어떤 타입인가?
        - Struct타입
    4. AnimationOptions이 준수하는 프로토콜은 무엇인가?
        - OptionSet: 여러가지의 옵션을 가지거나, 옵션이 없는 경우에도 사용할 수 있게 해주는 프로토콜
        - Sendable: ThreadSafe한 객체라는 것을 알리는 프로토콜

- UIView의 transform 프로퍼티에 대해 알아보고, 해당 프로퍼티로 어떤 애니메이션 효과를 줄 수 있는지 
https://developer.apple.com/documentation/uikit/uiview/1622459-transform
The most direct way to manipulate your drawing—whether by movement, scaling, or rotation—is to call the functions:

  - translateBy(x:y:) - 위치이동
  - scaleBy(x:y:) - 크기조절
  - rotate(by:) - 회전

- 애니메이션에서 자주 사용하는 Timing Function의 종류에는 무엇이 있는지 알아봅시다
![](https://i.stack.imgur.com/IIZqM.png)

아래 예시 애니메이션 두 가지를 구현해봅니다
Hint : Keyframe animation, transform
