iOS 프로그래밍을 시작하기 위해서 필요한 지식들을 정리해 보았습니다.
필수환경
Xcode
Xcode란 macOS에서 사용할 수 있는 통합개발환경(Integrated Development Environment, 이하 IDE)입니다.
주로 macOS, iOS, watchOS, tvOS 개발을 위해 애플에서 개발됐으며, macOS에서 간단하게 App Store에서 다운받을 수 있습니다.
이미 기존 개발자라면 한번쯤을 들어봤을 이클립스(eclipse)나 Intellij:IDEA 를 연상하면 이해하기가 쉬울 것 같습니다.
간단히 개념을 설명하면 한가지 언어만이 아니라 여러 언어의 소스코드를 작성하거나 관리하는데 편의를 제공해주는 유용한 도구라고 할 수 있습니다.
하지만 각 IDE마다 특색이 있어서 특정 언어의 개발환경에 특화되어 좀 더 편리하게 최적화 되어 있는 편이며, Xcode의 경우 Objective-C나 Swift등을 활용하여 macOS, iOS, watchOS, tvOS등을 위한 프로그램을 개발 하는데에 좀 더 특화된 툴이라고 할 수 있습니다.
iOS
iOS를 이해하기 위해선 운영체제(Operating System, 이하 OS)를 먼저 이해해야 합니다.
간단히 정리하자면 하드웨어를 관리할뿐 아니라 응용 소프트웨어를 실행하기 위하여 실행되는 시스템 소프트웨어입니다. 보통 입출력과 메모리 할당과 같은 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 합니다.
iOS는 애플(Apple)에서 만들었으며 현재 iPhone, iPad, iPod touch 등 많은 모바일 기기에서 사용되는 모바일 운영체제입니다. iOS UI(User Interface)의 특징은 기본적으로 멀티터치 제스처(multi-touch gestures)가 적용이 되어있다는 것입니다. 모바일 운영체제답게 터치스크린을 통해 디바이스와 사용자간의 communication을 가능하도록 한다고 할 수 있습니다.
iOS SDK
iOS개발을 위해선 iOS SDK가 필요합니다.
여기서 SDK란 Software Development Kit의 줄임말로, 소프트웨어 개발을 위한 툴(Tool)들의 모음이라고 할 수 있습니다.
SDK는 내부에 있는 툴(Tool)들을 활용하여 어플리케이션을 만들수 있도록 컴퓨터의 하드웨어, 운영체제등의 환경을 맞춰주어 소스가 컴파일되고 실행될 수 있도록 해주는 일련의 작업들을 세팅해주는 역할을 합니다. 흔히 우리가 개발자가 아니더라도 PC에서 Java환경을 이용하기 위해 JDK를 다운받는 것을 볼 수 있는데 JDK가 바로 Java의 SDK인 Java Development Kit 입니다.
이 글이 올라갈 iOS카테고리에는 iOS개발에 초점을 맞출 예정이기에 iOS SDK가 앞으로 꼭 필요한 툴 중에 하나라고 할 수 있습니다.
iOS SDK는 Mac 유저에게 무료로 제공하고 있으며, Windows에서는 사용할 수 없습니다. 요즘엔 Xcode에 포함되어 함께 Xcode를 설치했다면 자동으로 환경이 갖추어졌다고 할 수 있습니다.
Playground(플레이그라운드)
플레이그라운드는 놀이터라는 뜻 답게 소스코드를 작성하고 실행하면서 간단하고 쉽게 테스트할 수 있는 개발환경이라고 할 수 있습니다.
두 개의 Playground가 있는데, Xcode의 Swift 플레이그라운드가 있고, iPad에서 다운받아 사용할 수 있는 Playground 앱이 있습니다.
Xcode에서 Playground를 만들면 프로젝트를 만들때처럼 하나의 환경이 세팅이 되며, Swift소스 파일과 파일의 실행을 위한 환경설정파일등이 playground확장자를 가지는 폴더에 포함되어 생성됩니다.
장점은 따로 컴파일과 실행과정을 거치지 않고 소스를 수정하면 실시간으로 자동 실행하면서 결과를 보여줍니다.
프로그래밍 지식
컴파일과 실행
컴파일은 프로그래밍 언어를 사용하여 작성한 프로그램 소스파일을 컴퓨터가 인지할 수 있도록 Binary Code(0과 1로 이루어짐)로 변환해주는 작업을 의미합니다.
C, Java나 Swift등의 컴파일 언어는 실행하기 전에 컴파일을 해주어야 컴파일된 파일을 컴퓨터가 인식하여 정상적으로 실행이 가능합니다.
장점은 컴파일 과정에서 소스의 오류를 쉽게 파악할 수 있으며, 단점은 컴파일 과정이 필요하므로 시간이 더 필요하고 해당 소스가 아니라 컴파일된 소스를 이용하여 동작한다는 생각을 항상 생각해줘야한 다는 것이 있습니다.
실행은 프로그램을 동작하도록 하는 작업입니다.
프로그램이 동작하기 위해선 하드디스크등에 저장된 소스를 메모리에 올려 CPU에서 처리하는 작업이라고 할 수 있습니다.
이에 대한 자세한 설명은 Computer Science 카테고리에 따로 정리할 예정입니다.
스위프트(Swift)
스위프트는 애플에서 개발된 오픈소스 프로그래밍 언어입니다.
앞으로 Swift를 위주로 iOS개발에 관한 글을 올릴 예정입니다.
Hello World
프로그래밍을 처음 배울때 필수 코스(?)중 하나인 Hello World 찍기를 해보려면 아래의 소스코드를 작성해보면 됩니다.
간단한 실행테스트를 할 것이기에 플레이그라운드를 활용하여 작성할 수 있습니다.1
2
3
4
5import UIKit
var str = "Hello, iOS World"
print(str)
마치며
그동안 Java, JavaScript, Python 등을 배우고 앞으로도 사용하긴 할테지만 주 분야를 iOS로 정했고 꾸준히 공부하면서 발전할 것입니다.
블로그를 통해 공부한 내용을 공유하며 중간중간 다른언어와의 비교도 해보면서 Swift 및 iOS개발에 대해 함께 토론하고 공부해나가는 공간이 되었으면 좋겠습니다.