3. 프로토콜 지향 프로그래밍
이걸 정리해야할지 고민스러운데, 우선 책에서 간략하게 정리한 내용을 언급해보고자 한다.
Objective-C에서도 Protocol 지향적인 프로그램이 가능했기때문에 스위프트에서 사용할 때도 개념적으로 이해가 되었다면 어느정도 수준까지는 쉽게 접할 수 있지 않을까 한다. 작년 스위프트 프로젝트를 진행하면서 많이 느꼈던 부분이 구조체와 열거형에도 접근제어, 캡슐화, 추상화가 가능했기에 코드를 읽는데 어려움이 많았다. 생소하기 때문에...
그래서 스위프트 문법을 공부해야하고 자주 사용해야하고 새로운 방법을 계속 연구해야한다.
이번 프로젝트(앱 고도호)에서는 언어를 스위프트로 변경해서 개발을 하기로 결정했기때문에 작년에 봤던 스위프트 책을 다시 공부하고 있다. 기억이 가물가물...
WWDC에서 스위프트 표준 라이브러리의 테크니컬 리더인 데이브 에이브러햄이라는 양반이 직접 스위프트는 프로토콜 지향 언어라고 선언했다고 한다.
프로토콜 지향 프로그래밍은 참조 타입인 클래스의 인스턴스보다 값 타입을 더 효율적으로 사용하며, 오류를 줄일 방안이라고 소개했다.
스위프트에서는 구조체와 열거형에 기존의 클래스에서 구현할 수 있었던 캡슐화, 추상화, 접근제어 등의 기능을 모두 구현할 수 있다. 더불어 프로토콜에 익스텐션을 활용할 수 있기 때문에 프로토콜 지향 프로그램이 가능해졌다. 이는 참조 타입의 참조 문제에서 조금 더 자유로울 수 있고, 다중상속이 불가능한 한계를 뛰어넘을 수 있으며, 더 나은 추상화 메커니즘을 구현할 수 있다는 이야기이다.
(무슨 말이지 잘 이해가 가지 않는데, 그냥 추상화, 다중상속, 메커니즘 등이 나오면 어렵다. @@)
세부적인 예제나 좀더 구체적인(코드에서) 내용은 추후 학습하면서 이 포스트에 추가하기로 한다.
'프로그래밍 > Swift' 카테고리의 다른 글
Swift REPL 사용방법 (0) | 2019.08.21 |
---|---|
4. 스위프트 기본 명명 규칙 (0) | 2019.02.13 |
2. 함수형 프로그래밍의 특징. (0) | 2019.02.13 |
Swift Singletone 패턴 학습 (0) | 2018.05.09 |
Swift extension CALayer, UIView border (0) | 2018.05.04 |