스위프트 시작

개요

언어를 처음 공부할 때처럼 그언어의 규칙, 특징, 간단한 문법에 대해서 알아보겠다.




스위프트란(apple developer guide)


스위프트는 핸드폰, 컴퓨터, 서버 등 코드가 돌아가느 소프트웨어를 만들기 위한 최고의 방법이다.

스위프트는 안전하고, 빠르고, 상호작용 프로그래밍 언어이다. 그리고 애플의 개발문화의 현명함과 모던 언어들의 최고의 요소들과 오픈소스 커뮤니티에서의 다양한 기여가 있다.

컴파일러는 성능을 위해, 언어는 개발을 위해 최적화되었다.

스위프트는 새로운 프로그래머들에게 친숙할 것이다.

스크립트 언어만큼 표현력이 뛰어나고 재밌는 industrial-quality 프로그래밍 언어이다.

Playground에서 스위프트를 공부할 때 빌드와 앱의 실행 없이 코드의 결과를 즉시 볼수 있다.

스위프트는 최신 프로그래밍 패턴을 채택하여 일반적인 에러들에 대해 정의하고 있다.

  • 변수는 사용되기전에 초기화 되어야한다.
  • 배열 인덱스는 범위를 벗어나는지 확인해야한다.
  • 정수가 오버플로우나지 않는지 확인해야한다.
  • 옵셔널은 nil값이 명시적으로 다뤄질 수 있게 보장한다.
  • 메모리는 자동으로 관리된다.
  • 오류처리는 예상치 못한 실패의 제어된 복구를 허용한다.

스위프트 코드는 최신 하드웨어에서 최상을 얻기위해 컴파일되고 최적화된다. 구문과 표준 라이브러리는 내 코드가 최상의 결과를 얻기위한 가장 확실한 원칙에 기반하여 설계되고 있다.

안정성과 속도의 조합은 스위프트가 최고의 선택이도록 만든다.

스위프트는 새로운 언어이지만 C언어와 Objective-C와 유사하다.

C언어처럼 스위프트는 변수를 이용해서 저장하고 식별할 수 있는 이름으로 값을 사용한다.

스위프트는 constant로 알려진 상수의 기능보다 강력한 기능을 가지고 있다.

상수는 스위프트가 코드를 더 안전하고 간단하게 만드는데에 사용된다.

스위프트는 type-safe 언어이다. 이것은 개발자가 자료형을 정하는데에 도움을 주는 것이다.

만약 내 코드가 스트링을 포함하고 있다면 type-safety는 내가 Int같은것으로 실수하는 것을 막는다.

Type-safety는 내가 최대한 빨리 개발 단계에서 에러를 찾고 고치는데에 도움을 준다.




스위프트의 기본 규칙


  • 함수, 매서드, 인스턴스 이름은 첫 글자를 소문자로 사용한다.
  • 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 첫글자를 대문자로 사용한다.
  • 대소문자를 구별한다.
  • 세미콜론을 붙이는 것은 필수가 아니다. 원한다면 사용해도 되지만 보통 한줄에서 여러개의 부분으로 나눌 때 사용한다. 쉼표느낌?




주석


모든 프로그래밍 언어에서는 주석을 사용할 수 있다.

스위프트에서도 마찬가지인데 당연히 컴파일 될때는 무시되는 코드이다.

C언어의 주석과 비슷하다. 슬래쉬(//)두번이면 주석처리가 된다.

당연히 여러 줄의 주석은 //이다. 주석안에 주석을 넣는 중첩 주석을 지원하는데 쓸일은 별로 없을 것 같다.




변수와 상수


변수와 상수는 특정 자료형과 값의 이름에 관련이 있다.

상수의 값은 한번 초기화 되면 바꾸지 못하지만 변수는 어디서든 다시 초기화가 가능하다.

상수를 사용하는 가장 중요한 이유는 가독성이다.

그리고 애플은 코드의 효율성과 실행 성능의 향상을 위해서 가능하면 상수를 사용하라고 한다.

let [name]: [type] = [value]

var [name]: [type] = [value]



변수와 상수의 선언


상수는 let 키워드, 변수는 var 키워드를 이용해서 선언한다.

C언어에서처럼 콤마를 사용해서 여러개의 변수와 상수를 선언할 수 있다.

모든 키워드 및 연산자들은 공백이 있어야한다.

변수를 생성할 때 초기화를 안해주면 옵셔널로 선언된것으로 간주한다.

1
2
3
let example = 10 //constant
var example = 10 //variable
var x = 0.0, y = 0, z = 1 //Multiple variable declaration



변수와 상수의 자료형


자료형을 명시안해줘도 되지만 명확하게 하기 위해서 선언할 때 자료형을 명시해준다.

변수나 상수 이름 다음에 콜론과 자료형을 적어주면 된다. 여기서 자료형의 첫 문자는 무조건 대문자이다.

1
2
var example: String
var red, green, blue: Double

이름 뒤에 콜론은 붙여야한다.

콜론의 의미는 “…of type…“로 위의 예시로 보면 “Declare a variable called example that’s of type String”으로 정의할 수 있다.




출력


스위프트에서는 print(_:separator:terminator:)함수를 사용해서 변수나 상수를 출력한다.

print 함수는 자동으로 줄바꿈문자가 삽입된다. 그렇기 때문에 마지막 파라메터에 ““를 넣어주면 줄바꿈없이 출력이된다.

만약 문자열 내에서 나타내고 싶을 때는 (name)형태로 넣으면 된다. 콤마를 이용해서 두개의 문자열을 이어서 출력할 수 있다.

1
2
3
4
5
6
var example: String = "hello"

print(example) //hello\n
print(example, terminator: "") // hello
print("hi, \(example)") //hi, hello
print("hi,", example) //hi, hello




Main 함수


C언어에서는 main 함수가 있어서 그 함수부터 실행되고 타고타고 들어가는 방식이었다.

Objective-C main 함수는 UIApplicationMain 함수를 호출하여 런루프를 실행하고 앱 실행에 필요한 필수요소를 구성하는 UIApplication 객체의 델리게이트를 지정한다.

그러나 Swift에는 main 함수가 없다. Swift 컴파일러는 전역범위에 있는 코드를 자동으로 인식하고 실행한다.

그리고 AppDelegate 클래스 앞에 @UIAplicationMain 속성을 부여하여 앱에서는 그렇게 실행한다.