스위프트

애플은 iOS, macOS,warchOS, ivOS 등 자사의 제품 개발에 활용하고자 새 프로그래밍 언어인 스위프트를 만들었다. 스위프트는 안전을 우선으로 하는 프로그래밍 패턴을 지향하며, 더욱 쉽고 재미있게 프로그래밍할 수 있도록 옵셔널, 제네릭, 프로토콜, 튜플, 익스텐션 등 새로운 기능을 많이 도입했다. 현재 애플은 스위프트를 오픈소스로 공유했으므로 애플 플랫폼 외에 다양한 플랫폼에서 사용할 수 있다.

스위프트는 편리하며 고차원적인 언어이다. 먼저 ARC(자동 참조 횟수 계산)을 지원하므로 쉽게 메모리를 관리할 수 있다. 또한 기존 Objective-c 언어에 익숙하다면 더욱 쉽게 스위프트를 익힐 수 있다. Objective-c 의 동적 객체 모델과 매개변수 형식을 스위프트에 도입했기 때문이다. 더북어 스크립트 언어처럼 프로그램을 빌드하고 실행하는 등의 수고로움 없이 플레이 그라운드를 사용해 스위프트 코드의 결과를 바로 확인할 수도 있다.

기존에 다른 프로그래밍 언어를 사용하던 프로그래머라면 스위프트의 문법이 다소 생소할 수 있다. 스위프트의 거의 모든 문법에서 소괄호( () )는 사용하거나 생략해도 무관하다. 또한 세미콜론( ; )도 생략할 수 있다. 다만 중괄호( {} )는 생략할 수 없다. 그 때문에 프로그래머마다 전혀 다른 스타일로 코딩할 수 있다. 좋은 의미로 보자면 자신이 원하는 방색대로 자유롭게 코딩할 수 있다는 뜻이지만, 다른 사람의 코드를 읽기 어려울 수 있다는 단점이 있기도 하다. 즉, 스위프트는 언어의 자유도가 높아서 작성자의 스타일에 따라 다양한 방식으로 코딩할 수 있지만 한편으로 가독성이 떨어질 수 있으므로 주의가 필요하다.

스위프트 실행 환경

스위프트는 오픈소스로 전환된 이후 macOS 외의 다른 환경, 즉 리눅스 및 윈도우 등에서도 사용할 수 있다. 그렇지만 아직 스위프트의 문법을 익히고 연습하기에는 애플에서 공식 지원하는 Xcode의 플레이그라운드와 REPL이 가장 편리하다. 그 외에 웹에서 손쉽게 스위프트 문법을 익히고 실행할 수 있도록 서비스를 제공하는 곳도 있다.

[Xcode - 플레이그라운드]

Xcode는 macOS에서 동작하는 애플의 통합 개발 환경으로 맥 앱 스토에어서 무료로 내려받아 설치할 수 있다. Xcode로는 맥용 애플리케이션 제작부터 iOS, watchOS, tvOS 등의 애플리케이션 제작, 프레임워크 및 라이브러리 제작 등 다양한 프로그래밍을 할 수 있다. 이 xCode의 특별한 기능 중 하나가 플레이그라운드이다.

플레이그라운드는 별도의 프로젝트 생성 없이 스위프트 코드를 실행할 수 있는 스위프트 코딩 환경이다. 기존 문법 연습에서부터 복잡한 코드 테스트까지 다양한 기능을 이용할 수 있다. 스위프트를 맛보고 문법 연습을 하기에 더할 나위 없이 좋은 도구이다.

[REPL]

스위프트는 인터프리터 언어에서 주로 사용되는 REPL로도 코드를 실행할 수 있다. 물론 스위프트는 인터프리터 언어가 아닌 컴파일 언어지만 기존의 인터프리터 언어의 REPL과 거의 비슷하게 사용할 수 있다. REPL은 간단한 코드를 직접 입력하여 바로 결과를 볼 수 있는 환경과 편의를 제공해주는 도구이다.

스위프트의 REPL을 사용하려면 Xcode가 설치된 macOS의 터미널 애플리케이션을 실행하면 된다. 더 정확히 말하자면 Command Line Tools for Xcode가 설치되어 있어야 한다.

[웹]

스위프트 코드를 macOS가 아닌 다른 환경에서도 쉽게 테스트할 수 있도록 여러 웹 사이트에서 플레이그라운드와 유사한 환경을 제공한다. 자신이 작성한 코드를 다른 사람들과 공유할 수도 있어서 매우 유용하다. 대표적인 웹 사이트 몇 개를 소개한다.

  • Online Swift Playground : 플레이그라운드와 유사한 모습으로 스위프트 코드를 작성하고 실행해볼 수 있다. 자신이 온라인에서 작성한 코드를 쉬으프트 파일 혹은 플레이그라운드 파일로 내려받을 수도 있다.
  • 구름IDE : 국내 클라우드 통합 개발 환경이다. 컨테이너를 생성하여 가상 리눅스 환경에서 프로젝트를 관리할 수 있으며, 별도의 플러그인 등을 설치하지 않고도 올라인에서 직접 빌드 및 실행이 가능하다. 리눅스 터미널 환경에서 스위프트 패키지 매니저를 사용할 수 있기 때문에 외부 라이브러리를 가져와서 프로젝트로 구현할 수 있다. 회원 가입을 하면 내 프로젝트를 반영구적으로 저장하고 관리할 수 있다.