Swift 둘러보기(3)

EN·2022년 9월 25일

코드에서 앱까지 가는 과정

  • 소스코드(음식 재료, 레시피)
    • 컴퓨터 프로그램을 프로그래밍 언어(사람이 읽고 쓸 수 있는 형태)로 기술한 글
  • 컴파일
    • 소스 코드를 컴파일이라는 과정을 통해 목적 코드로 만드는 과정
    • 한국어로 쓰인 원서를 영어로 번역하는 과정에 비유할 수 있다.
    • 원시 코드에서 목적 코드(기계가 읽을 수 있는 언어)로 옮기는 과정
  • 링크
    • 번역된 원서를 하나의 파일로 묶어주는 작업에 비유할 수 있다.
    • 목적 코드의 개별적인 내용들을 링크하여 실행 파일로 묶는 작업이다.
    • 컴파일 결과 코드들을 최종 실행 가능한 실행 파일로 만들어 주기 위해 연결하는 작업
  • 패키징
    • 실행 파일과 더불어 리소스 파일(이미지, 사운드, 아이콘 같은 여러 자원들)을 패키징 하는 작업을 걸친다.
    • 이게 실행 파일이고, 아카이브(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의 가장 단순하면서도 가장 강력한 기능을 가진 것들 중 하나
  • 튜플은 여러 값을 하나의 항목으로 임시적으로 그루핑 하는데 매우 간단한 방법이다
  • 서로 다른 타입의 값들이 튜플에 저장될 수 있으며, 모두 동일한 타입의 값이어야 한다는 제약도 없다.
  • 하나의 함수에서 여러 값을 반환하는 데 쓸 수 있다.
profile
iOS/JUJITSU

0개의 댓글