3.3.1 기본 자료형

Int

Int는 정수를 뜻하는 Integer라는 영어 단어의 줄임말로, 부호 있는 정수값을 저장하는 데 사용되는 자료형입니다. 다시 말해, 부호 있는 정수값을 저장하려면 해당 변수나 상수를 이 타입으로 지정해야 한다는 것이죠. 여기에서 부호가 있다는 말은 숫자 앞에 +나 -를 붙일 수 있다는 의미입니다.

하지만 무한대에 가까운 모든 정수값을 저장할 수 있는 것은 아닙니다. Int 타입이 저장할 수 있는 정수값의 범위에는 제한이 있는데, 이 제한은 컴퓨터의 CPU 사용에 따라 결정됩니다. 가령 8bit의 CPU를 가진 컴퓨터라면 2^8인 256개의 값을 저장할 수 있습니다. 이를 정수 범위로 환산하여 계산하면 Int 타입이 저장할 수 있는 값은 -128 ~ 127까지 입니다.

우리는 8bit CPU에서 Int를 사용하는 경우를 이야기해 보았습니다만, 사실 8bit 범위만 사용하는 Int의 경우 스위프트에서는 서브 자료형이 별도로 정의되어 있습니다. 바로 Int8이죠. Int를 8bit 크기로 사용하겠다는 의미입니다.유사한 자료형으로 Int16. Int32, Int64도 있습니다. 각각 16, 32. 64bit의 Int 타입을 의미합니다.

  • Int8 => 127 ~ -127

  • Int16 => 32,767 ~ -32,768

  • Int32 => 2,147,483,647 ~ - 2,147,483,648

  • Int64 => 9,223,372,036,854,775,807 ~ - 9,223,372,036,854,775,808

UInt

UInt는 Unsigned Integer를 줄인 단어로 부호가 없는 정수를 의미합니다. Int처럼 정수값을 저장하는 데 사용되는 자료형이지만 Int가 양수부터 음수까지를 모두 저장할 수 있는 반면 UInt는 양수만 저장할 수 있다는 차이가 있습니다. 다시 말해, UInt는 0을 포함하여 1, 2, 3, 4, 5 ... 등 우리가 일반적으로 ㅇ자연수라고 부르는 범위의 정수를 저장할 수 있다는 겁니다.

  • UInt8 => 0 ~ 256

  • Int16 => 0 ~ 65,535

  • Int32 => 0 ~ 4,294,967,295

  • Int64 => 0 ~ 18,446,744,073,709,551,615

Double & Float

프로그래밍을 하다 보면 소수점이 포함된 실수 값을 저장해야 하는 경우도 무척 많습니다. 두 장소 사이의 거리나 기온, 환율 또는 키, 몸무게 등 수많은 종류의 데이터가 정수가 아닌 실수 값을 요구하죠.

이때 사용할 수 있는 자료형이 double 타입과 Float 타입입니다. 둘 다 실수값을 저장할 수 있는 자료형이라는 공통점이 있지만, Double 타입은 64bit 부동소수점 자료형으로서 32bit 부동 소수점 자료형인 Float 타입보다 더 넓은 범위의 소수점 아래 값을 저장할 수 있기 때문에, 특별히 매우 정확해야 하는 부동소수점 값이나 또는 매우 넓은 범위의 실수값을 저장할 때 사용됩니다. 그 이외의 부동소수점 값에는 Float가 사용되구요.

일반적으로 Float 타입이 소수점 아래 7~8자리까지의 값을 정확하게 저장할 수 있는 반면 Double 타입은 소수점 아래 15~16 자리의 값에 대한 정확도를 보장하기 때문에 훨씬 더 세밀한 값을 저장하는 데에 유리합니다. 당연히 메모리에서 차지하는 크기도 Double 타입이 더 크고 말이죠.

Bool

Bool 은 true/false 두 가지 종류의 값만 가질 수 있는 자료형으로서 주로 논리값을 저장히기 위해 사용됩니다.

// Bool 타입 저장 변수
var close = true

// Bool 타입 저장 상수
let success = true
let fail = false

String

String 타입은 Int와 더불어 프로그래밍에서 가장 많이 사용되는 자료형으로, 문자열을 저장할 때 사용됩니다.

스위프트는 String 타입 데이터의 값을 표현할 때 큰따옴표를 사용합니다.

// String 타입 저장 변수
var projectname = "iOS study"

// String 타입 저장 상수
let language = "swift"

Character

앞서 소개한 String은 여러 글자로 이루어진 문자열을 저장할 수 있는 일종의 집단 자료형이지만, Character는 한 개의 문자를 저장할 수 있는 단일 자료형입니다. String 타입에 저장된 문자열을 하나씩 분해하면 Character 타입이 됩니다.

스위프트는 Character 타입의 데이터 값을 표현할 때도 String 타입과 마찬가지로 큰따옴표를 사용합니다.

// Character 타입 저장 변수
var firstLetter : Character = "s"

// Character 타입 저장 상수
let lastLetter : Character = "t"

Last updated