1.1 스위프트 언어의 탄생과 배경

ㅇ 스위프트는 애플이 2014년 세개 개발자 대회에서 발표한 새로운 언어입니다. 그 동안 앱을 개발하는 데에 사용되던 오브젝티브-C를 대체할 목적으로 발표된 언어입니다.

이전 주력 언어였던 오브젝티브-C는 C언어를 기초로 하여 스몰토크의 메시지 전달 개념과 객체 지향 개념을 방영한, 말그대로 객체지향형 C언어 입니다. 이러한 특성 때문에 그동안 iOS 앱을 개발하기 위해서는 C 언어의 저수준 프로그래밍과 스몰토크의 객체지향 개념을 동시에 구현해야 한다는 부담이 있었습니다. 게다가 C 언어의 장점이자 단점인 포인터 개념은 오브젝티브-C를 강력한 언어로 만들어주긴 했지만, 처음 접근하는 사람에게는 그만큼 높은 장벽으로 작용하기도 했습니다.

프로그래밍을 익히는데 어려움이 있다보니, 프로그래밍 공부에 지쳐 앱 개발을 포기하는 일도 잦았습니다. 앱의 다양한 기능에 집중해야할 개발자가 성능 개선에 더 많은 노력과 시간을 소모하는 현상을 가져오기도 했습니다.

이는 애플이 바라는 앱 생태계와는 다소 거리가 있었습니다. 애플은 앱 개발자들이 기술적으로 더 훌륭한 앱을 만들기보다는 기능적으로 더 다양한 종류의 앱을 만들기를 원했기 때문에, 아이디어를 가진 많은 잠재적 개발자들까지도 마음만 먹으면 손쉽게 앱을 구현할 수 있는 환경을 만들어주는 것이 당면 과제였습니다.

이같은 목적성에 기초하여 기능이 아니라 성능에 관련된 많은 부분, 특히 코드 최적화나 메모리 관리, 성능 관리 등의 기술 경험 기반 개발 이슈를 시스템이 전담하여 개발자들의 부담을 덜어주는 것이 가장 중요했습니다.

이러한 목표를 위해 만들어진 언어 플랫폼이 바로 스위프트입니다. 스위프트는 기존의 오브젝티브-C가 C 언어로부터 가져온 저수준 프로그래밍을 자동 관리 영역으로 대체했고, 생소한 문법이지만 객체지향을 위해 사용할 수밖에 없었던 스몰토크의 메시지 문법을 사람들에게 익숙한 자바, 파이썬, C#의 문법으로 바꾸었으며, 오브젝티브-C와 호환까지 가능하도록 설계되는 등 여러 가지 언어적 강점을 지녔습니다.

오브젝티브-C가 고급 개발자를 대상으로 사용된 언어라면 스위프트는 개발에 갓 입문하는 사람들까지 무리 없이 사용할 수 있는 언어입니다. 그 대표적인 기능이 바로 인터랙티브 플레이그라운드 입니다.

Swift Playground

직관적으로 코드를 작성하여 그 결과까지 볼 수 있는 이 편집기는 왼쪽의 편집 창에서 코드를 작성하면 중간 경과물을 보여줄 뿐만 아니라 즉석에서 컴파일하여 처리 결과까지 제공합니다. 직관적인 사용자 인터페이스를 통하여 쉬운 접근을 추구하는 애플의 철학이 반영된 결과물인 것이죠.

기술적인 관점에서 스위프트는 애플의 메인 프레임워크인 코코아 프레임워크와 코코아 터치 프레임워크를 모두 사용하루 수 있습니다. LLVM 컴파일러, 옵티마이저, 오토벡터링, ARC 메모리 관리, 런타임 환경 등을 기존 언어의 개발 환경과 거의 동일하게 사용할 수 있다는 장점도 있죠.

Last updated