지하철이나 버스 노선을 필요에 따라 연장하거나 노선을 추가 개통하는 것처럼 스위프트에서도 기존 데이터 타입에 필요에 따라 새로운 기능을 추가하게 해주는 도구인 extension이 있다. 기존의 클래스, 구조체, 열거형, 프로토콜 및 기타 데이터 타입에 기능을 작성할 수 있다. extension은 아래처럼 사용한다. 또한 extension이 프로토콜을 채택할 수도 있다. extension이 프로토콜을 채택할 수 있다는 특징을 이용하여 viewController가 여러 개의 프로토콜을 채택하고 컨트롤러 내부 소스가 마구 복잡해질 때 extension을 만들고 컨트롤러 대신 이 extension이 필요한 프로토콜을 하나씩 채택한 후, 해당 extension 내부에서 채택한 프로토콜을 준수하는 방법으로 컨트롤러..