코드에서 앱까지 가는 과정
- 소스코드(음식 재료, 레시피)
- 컴퓨터 프로그램을 프로그래밍 언어(사람이 읽고 쓸 수 있는 형태)로 기술한 글
- 컴파일
- 소스 코드를 컴파일이라는 과정을 통해 목적 코드로 만드는 과정
- 한국어로 쓰인 원서를 영어로 번역하는 과정에 비유할 수 있다.
- 원시 코드에서 목적 코드(기계가 읽을 수 있는 언어)로 옮기는 과정
- 링크
- 번역된 원서를 하나의 파일로 묶어주는 작업에 비유할 수 있다.
- 목적 코드의 개별적인 내용들을 링크하여 실행 파일로 묶는 작업이다.
- 컴파일 결과 코드들을 최종 실행 가능한 실행 파일로 만들어 주기 위해 연결하는 작업
- 패키징
- 실행 파일과 더불어 리소스 파일(이미지, 사운드, 아이콘 같은 여러 자원들)을 패키징 하는 작업을 걸친다.
- 이게 실행 파일이고, 아카이브(Archive)라고 한다.
- 이걸 앱스토어에 올리는 거다
- 이런 과정을 빌드라고 한다!
데이터 타입이 필요한 이유?
- 메모리 공간을 차지하는 내용들의 타입에 따라 미리 필요한 크기만큼 잡아줄 수 있다.
데이터
- 각각의 0과 1은 bit라고 한다
- 8개의 bit가 모여 바이트(byte)라고 한다
- 64bit 컴퓨터라면
- CPU 반도체의 버스가 동시에 처리할 수 있는 비트수를 의미한다.
- 한 번에 64비트 블록의 데이터를 처리할 수 있다.
- 사람이 프로그래밍을 하기 위해서는 사람과 컴퓨터 사이의 중간 역할이 필요하고, 이게 컴파일러이다. iOS에서 대표적으로 XCode가 있다.
- 프로그래밍 언어들은 이해하는 구조와 명령을 컴퓨터에게 전달할 수 있게 하며, CPU에 의해 실행가능한 형태로 컴파일 해준다.
데이터의 생성과 할당
- 데이터 타입을 통해 우리가 이해할 수 있는 형태의 데이터로 생각하고 프로그래밍 할 수 있다
- let age: Int = 13
- 컴퓨터는 메모리 공간을 확보하고, 13을 이진수로 변환해 메모리 공간에 기록한 후, 데이터가 사라질 때까지 내용을 바꾸지 않는다.
정수와 부동소수점 / 불리언과 문자열
- 정수를 저장하기 위해 사용
- signed, unsigned가 있다.
- Swift는 8/16/32/64 비트 정수를 지원한다.
- 부호있는 정수 Int8, Int19, Int32, Int64
- 부호 없는 정수 UInt8, UInt16, UInt32, UInt64
- 애플은 일반적으로 Int타입만을 쓰드록 한다.
- 시스템 아키텍처에 따라 Int8~Int64으로 자동적용된다.
문자 데이터 타입
문자열 데이터타입
- Swift에서 문자열은 내부적으로 문자들의 집합으로 표시된다.
- 문자는 여전히 유니코드 스칼라값이다.- 문자열 보간(string interpolation)개념을 이용해 변수, 상수, 표현식, 함수 호출을 조합하여 구성할 수도 있다.
- 그리고 “””같은 , 여러 줄 문자열을 삼중 따옴표 안에 넣어서 선언할 때, 닫는 따음표의 위치가 중요하다!!!!!
- 만약 닫는 따음표가 들여쓰기가 안되어 있으면, 원하는 대로 안나올 수도 있다.
- 겹따옴표 세 개인 줄에서 줄 바꿈을 하지 않으면 오류가 발생한다!
변수
- 애플리케이션이 사용하는 데이터를 저장하기 위해 예약된 컴퓨터메모리 내의위치
스위프트는 type-safed이다.
- Swift는 두 가지 부동소수점 데이터 타입을 제공한다.
- Double: 최대 64비트의 부동소수점 수를 저장
- Float: 최대 32비트의 부동소수점 수를 저장(적어도 6자리 까지 표현한다)
- 반대인 타입의 언어(loosely-typed)는 변수를 선언한 후에 다른 데이터 타입을 저장할 수 있는 언어이다.
- 상수나 변수의 타입을 지정하는 방법은 “타입선언"과 "타입 추론"이 있다.
타입 별칭(Type alias)
- swift의 기본 제공 타입 또는 우리가 임의로 만든 데이터 타입으로, 이미 존재하는 타입에 임의로 다른 이름을 부여함
typealias Age = Int
let age: Age = 13
타입 추론
- 선언부에서 타입 선언이 없다면 Swift 컴파일러는 타입 추론이라는 기술을 사용한다
- 타입 선언 없이, “상수”를 선언하게 될 경우에는, 반드시 선언 시점에서 값을 할당해야 한다!
- 하지만 상수를 선언할 때 타입 선언을 사용하면 코드 내에서 나중에 할당할 수 있다.
튜플
- Swift의 가장 단순하면서도 가장 강력한 기능을 가진 것들 중 하나
- 튜플은 여러 값을 하나의 항목으로 임시적으로 그루핑 하는데 매우 간단한 방법이다
- 서로 다른 타입의 값들이 튜플에 저장될 수 있으며, 모두 동일한 타입의 값이어야 한다는 제약도 없다.
- 하나의 함수에서 여러 값을 반환하는 데 쓸 수 있다.