let some: AProtocol & BProtocol = 두 프로토콜을 모두 채택한 타입의 인스턴스
합성을 통해 해당 프로토콜을 모두 채택하고 있는 타입으로 선언할 수 있다.
프로토콜이 지향 프로그래밍이 탄생한 배경과 함께 프로토콜의 특징과 장점에 대해 살펴봤다.
정리해보면 다음과 같다.
프로토콜을 다양한 타입에서 재사용할 수 있다.
필요에 따라 확장을 통해 기능을 추가할 수 있기 때문에, 유연성과 확장성이 높다.
프로토콜 확장을 사용함을로써 코드의 중복을 줄일 수 있으며 유지보수성이 높아진다.
프로토콜 사용으로 구현을 추상화하여 필요한 부분만 테스트할 수 있다. 따라서, 테스트 용이성이 좋다.
프로토콜 지향 프로그래밍(POP)이란 무엇이며, 어떤 장점이 있나요?
Swift에는 3가지 특징이 있다.
객체 지향 프로그래밍
,프로토콜 지향 프로그래밍
,함수형 프로그래밍
오늘은 그 중 프로토콜 지향 프로그래밍에 대해 알아보도록 하자.
프로토콜
Protocol은
규약, 협약
을 뜻한다. 특정한 요구 사항(속성, 메서드)를 가진 프로토콜을 정의하고 클래스, 구조체, 열거형을 선언할 때 이를 채택함으로써, 해당 요구 사항(속성, 메서드)를 충족시키도록 한다.다음은 간단한 프로토콜 사용의 예시이다.
그렇다면, 프로토콜을 지향하면 무엇이 좋을까? 프로토콜 지향 프로그래밍이 나타난 배경에 대해 알아보자.
프로토콜 지향 프로그래밍이 탄생하게 된 배경에는 객체 지향 프로그래밍이 있다.
(객체 지향 프로그래밍이 메인이 아니니 간단히 살펴보자.)객체 지향 프로그래밍
프로그램을 객체 단위로 분할하여 설계하고 구현하는 방법
으로 상속, 캡슐화, 다형성, 추상화의 특징을 가지고 있다.객체 지향 프로그래밍의 단점이 있는데,
라는 것이다.
프로토콜 지향 프로그래밍
은 이러한 단점을 보완할 수 있다.프로토콜 지향 프로그래밍의 장점
@objc optional
을 사용하여 선택적인 요구 사항을 생성할 수 있다.tv.turnOn()
의 실행 결과로 "TV 전원을 켰습니다."가 출력된다.합성
을 지원한다.프로토콜이 지향 프로그래밍이 탄생한 배경과 함께 프로토콜의 특징과 장점에 대해 살펴봤다. 정리해보면 다음과 같다.