Swift
[Swift] 프로토콜 지향 프로그래밍 (Protocol Oriented Program)
Sky Titan
2022. 6. 19. 23:48
728x90
프로토콜 지향 프로그래밍
스위프트는 프로토콜 지향 언어(Protocol-Oriented Language)이다. 스위프트는 대부분 구조체로 기본 타입이 구현되어있다. String, Int, Float, Date, URL 등등 익히 사용하고 있는 데이터 타입은 모두 구조체
velog.io
기존 OOP의 단점
- Super Class에 의존적이라 subclass는 superclass의 필요하지 않은 변수, 함수를 상속 받아야 한다.
- Value Type은 상속을 사용할 수 없다
프로토콜 지향 프로그래밍 (Protocol Oriented Program)
- 필요한 특정 기능들을 프로토콜로 분리하여 프로그래밍하는 것을 의미한다.
- 프로토콜 지향 프로그래밍은 아래 장점을 가진다.
- Super Class에 독립적이다.
- Value type들에도 사용이 가능하다.
- Swift에서는 기본적인 Data 타입들(Int, Array, Double, String 등등)은 모두 구조체로 구현이 되어있기 때문에 Protocol의 중요성이 더욱 두드러진다.
- 그 외에도 Data Transfer Object와 같이 특정 Data를 표현하고 전달하는 Entity를 만들 때는, 데이터 오염을 막기 위해 value type을 많이 활용한다.
- 다중 상속의 한계를 극복할 수 있다.
- 기능의 모듈화가 가능하다.
- '프로토콜 초기 구현(Protocol + Extension)' 을 활용하면 재사용성을 높일 수 있다.
- 불필요한 API를 제외하고 필요한 API만 사용가능하다.
728x90