ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Protocol Oriented Programming
    Swift 2021. 1. 28. 20:02

    안녕하세요. 그린입니다!

    이번 포스팅에서는 Protocol Oriented Programming (POP), 프로토콜 지향 프로그래밍에 대한 개념을 알아보겠습니다.

     

    -. 프로토콜이란?

     : 특정 기능을 수행하기 위한 메서드/프로퍼티/요구사항 등등의 청사진이라고 생각하면된다.

     : 프로토콜을 구현한것을 채택하고 준수한다고 표현한다.

     

    -. POP가 나타난 이유

     : 기존에는 객체 지향 프로그래밍에서 Class 상속을 통해 기능을 구현하였다.

     -> 참조 타입으로 다중 스레드 환경에서 무분별 상속 시 기존 데이터가 변경되기에 불안전

     -> Struct / Enum 타입은 값 타입으로 상속이 불가

     -> 결국 Protocol과 Extension이 발표되어 해당 두개를 가지고 상속 기능이 생김!!

     -> 스위프트 버전 2.0 발표 시 새로 나온 개념

     

    -. 장점

     1) 가벼움

     2) 보안성

     3) 값 타입 상속 (참조 추적에는 비용이 값 타입 보다 많이 발생)

     4) 다중 상속 가능

     5) 수평적인 기능 확장 (클래스는 수직적인 상속)

     6) 제네릭의 활용 (자료형의 타입 구속을 받지 않는다)

     7) 기능의 모듈화

     

    -. 구성

     : Procotol Default Implementation (프로토콜 초기 구현)

     -> 메서드/ 프로퍼티가 추후 채택되어 구현해야할 사항을 모음

     : Extension (확장)

     -> 초기 구현을 따로 확장하여 구현을 담은 구현부

     -> 프로토콜을 채택한 구조체에서 별도로 다시 중복하여 구현할 필요가 없음 (필요에 의해 재정의하여 구현해도됨)

     

    -. 프로토콜/제네릭

     : Generic과 AssociatedType을 적용해 재사용성 증대가 가능하다.

     

    간단하게 프로토콜 지향 프로그래밍의 개념에 대해 알아보았습니다.

    음.. 객체 지향 프로그래밍만 하다가 프로토콜이란게 낯설지만 좀 더 학습해봅시다!!

    감사합니다🎃

     

    [참고자료]

    https://developer.apple.com/videos/play/wwdc2015/408/

    https://medium.com/@Alpaca_iOSStudy/protocol-oriented-programming-pop-2db7d4d02747

    https://m.blog.naver.com/PostView.nhn?blogId=jdub7138&logNo=220968251035&proxyReferer=https:%2F%2Fwww.google.co.kr%2F

    https://blog.yagom.net/531/

    'Swift' 카테고리의 다른 글

    ARC 심화  (0) 2021.02.17
    Type Casting  (0) 2021.01.29
    타입 메서드  (0) 2021.01.27
    온도 표현단위와 변환 방법  (0) 2021.01.19
    CFAbsolute TimeGetCurrent  (0) 2021.01.15
Designed by Tistory.