본문 바로가기
Swift

[Swift] 프로토콜 지향 프로그래밍 (Protocol Oriented Program)

by Sky Titan 2022. 6. 19.
728x90
 

프로토콜 지향 프로그래밍

스위프트는 프로토콜 지향 언어(Protocol-Oriented Language)이다. 스위프트는 대부분 구조체로 기본 타입이 구현되어있다. String, Int, Float, Date, URL 등등 익히 사용하고 있는 데이터 타입은 모두 구조체

velog.io

기존 OOP의 단점

  1. Super Class에 의존적이라 subclass는 superclass의 필요하지 않은 변수, 함수를 상속 받아야 한다.
  2. Value Type은 상속을 사용할 수 없다

 

프로토콜 지향 프로그래밍 (Protocol Oriented Program)

  • 필요한 특정 기능들을 프로토콜로 분리하여 프로그래밍하는 것을 의미한다.
  • 프로토콜 지향 프로그래밍은 아래 장점을 가진다.
    1. Super Class에 독립적이다.
    2. Value type들에도 사용이 가능하다.
      • Swift에서는 기본적인 Data 타입들(Int, Array, Double, String 등등)은 모두 구조체로 구현이 되어있기 때문에 Protocol의 중요성이 더욱 두드러진다.
      • 그 외에도 Data Transfer Object와 같이 특정 Data를 표현하고 전달하는 Entity를 만들 때는, 데이터 오염을 막기 위해 value type을 많이 활용한다.
    3. 다중 상속의 한계를 극복할 수 있다.
    4. 기능의 모듈화가 가능하다.
    5. '프로토콜 초기 구현(Protocol + Extension)' 을 활용하면 재사용성을 높일 수 있다.
    6. 불필요한 API를 제외하고 필요한 API만 사용가능하다.

 

728x90

댓글