🔷 자료형이란?
자료형(data type)이란 저장되는 데이터의 종류에 따른 형태입니다. 자료형은 기본 자료형과 참조 자료형으로 나뉩니다.
기본 자료형은 값을 가지고 있는 변수로 프로그래밍 언어에 내장되어 있으며, 숫자형, 문자형, 논리형으로 나뉩니다. 참조 자료형은 동적 공간에 데이터를 둔 다음에 참조하는 자료형으로, 클래스형, 인터페이스형, 배열형으로 나뉩니다.
코틀린에서는 모든 자료형이 참조자료형입니다. 숫자형, 문자형, 논리형 등의 자료형 또한 참조 자료형으로 들어가며, 동적 공간에 객체 형태로 자료형을 만들어 참조합니다.
🔹 기본 자료형
구분 | 자료형 | 설명 | 범위 |
숫자형 | Double | 64비트 실수 | -1.7E+308의 근삿값 ~ 1.7E+308의 근삿값 |
Float | 32비트 실수 | -3.4E+38의 근삿값 ~ 3.4E+38의 근삿값 | |
Long | 64비트 정수 | -2E63 ~ 2E63-1 | |
Int | 32비트 정수 | -2,247,483,648 ~ 2,147,483,647 | |
Short | 16비트 정수 | -32,768 ~ 32,767 | |
Byte | 8비트 정수 | -128 ~ 127 | |
문자형 | Char | 1개의 문자 | '글' (작은 따옴표) |
String | 여러 개의 문자 | "글자입니다." (큰 따옴표) | |
불린형 | Boolean | true | false | true 혹은 false |
💡 기본 타입의 String
기본 타입(Primate Type)은 변수에 저장되는 값의 크기가 미리 정해져 있는 타입입니다. Byte의 경우에는 127까지만 저장이 가능하고 128은 범위를 넘어가 아예 다른 숫자가 됩니다. String은 쌍따옴표 안에 몇 글자가 들어가도 되기에 값을 특정 할 수 없어 기본 타입은 아니지만, 사용 빈도수가 높아 기본 자료형으로 분류하기도 합니다.
🔹 정수형
모든 정수를 한 가지 타입으로 다룰 수 있지만, 불필요한 메모리 사용을 방지하기 위하여 적절한 타입을 선택하는 것이 중요합니다. 코틀린에서 기본으로 제공되는 자료형은 Byte, Short, Int, Long 타입입니다.
자료형 | 크기 | 범위 |
Byte | 1Byte | -128 ~ 127 |
Short | 2Byte | -32768 ~ 32767 |
Int | 4Byte | -2147483648 ~ 2147483647 |
Long | 8Byte | -9223372036854775808 ~ 9223372036854775807 |
🔹부호가 없는 정수형
기본 타입의 정수형과 같은 메모리 표현을 갖지만 부호를 표현하지 않는 정수 타입입니다. 부호를 사용하지 않으므로 더 큰 양수를 표현할 수 있습니다.
UByte | 1Byte | 0 ~ 255 |
UShort | 2Byte | 0 ~ 65535 |
UInt | 4Byte | 0 ~ 4294967295 |
ULong | 8Byte | 0 ~ 18446744073709551615 |
🔹 실수형
소수점이 필요한 경우 사용하는 실수형입니다. 코틀린에서는 기본으로 제공되는 자료형은 Float와 Double 이빈다. 정수형과 같이 메모리 절약을 위하여 적절한 데이터 타입을 선택하는 것이 중요하지만, Float의 사용 범위가 작기 때문에 대부분 Double을 사용합니다.
자료형 | 크기 | 범위 |
Float | 4Byte | 1.4E-45 ~ 3.4028235E38 |
Double | 8Byte | 4.9E-324 ~ 1.7976931348623157E308 |
💡 정수형 변수에 실수형 값 저장
같은 숫자라도 자료형이 다르면 입력이 불가능합니다. 프로그래밍 언어는 정수형 1과 실수형 1.0을 다른 타입으로 인식하기 때문에, 이런 경우에는 자료형을 변환해줘야 합니다.
💡 자료형을 지정하지 않은 경우
코틀린은 데이터를 자동 추론하는 타입 추론을 해줍니다. 변수를 선언할 때 var과 val을 이용하여 변수의 타입을 지정해주고 자료형을 지정해야할 경우에는 콜론(:)으로 후술합니다.
정수와 실수는 타입을 지정하지 않을 경우 코틀린의 타입 추론으로 Int와 Double 형으로 자동 추론이 됩니다. 정수의 값이 너무 클 경우에는 Long으로 타입을 도와주나, 64비트가 넘는 정수 값은 컴파일 오류가 발생합니다. 실수형은 유효 자리 수나 값이 범위를 넘어도 컴파일 오류가 발생하지 않고 적절한 수치로 값이 정해지며, 이 과정에서 데이터 손실이 발생할 수 있습니다.
데이터 자동 추론 기능을 제공하지만 원하는 결과를 도출하기 위해서는 자료형을 지정해주는 것을 권장합니다.
🔹문자형
문자를 저장할 때 사용하는 자료형입니다. 코틀린에서는 타입을 특정하지 않아도 작은 따옴표와 큰 따옴표로 자료형을 추론합니다. Char 타입은 하나의 글자만을 지정하며, String은 여러 개의 문자를 지정할 수 있습니다. 위에서 언급하였든 기본 타입으로 포함되지 않지만 대부분의 프로그래밍 언어에서 가장 많이 사용됩니다.
자료형 | 설명 | |
Char | 작은 따옴표('') 사이 한 글자를 저장하는 문자 타입 | |
String | 큰 따옴표("") 사이의 문자들을 저장하는 문자열 타입 |
🔹논리형
true와 false 중 하나의 값을 저장할 수 있습니다. 주로 조건문에서 많이 사용합니다.
자료형 | 설명 | |
Boolean | 논리 자료형, true 또는 false를 반환함 |
🔷 정수형 실수형 범위 확인
MIN, MAX 함수를 사용하여 자료형의 최소, 최대값을 확인할 수 있습니다.
fun main() {
// 부호가 있는 정수형
println("Byte: ${Byte.MIN_VALUE}~${Byte.MAX_VALUE}")
println("Int: ${Int.MIN_VALUE}~${Int.MAX_VALUE}")
println("Short: ${Short.MIN_VALUE}~${Short.MAX_VALUE}")
println("Long: ${Long.MIN_VALUE}~${Long.MAX_VALUE}")
// 부호가 없는 정수형
println("UByte: ${UByte.MIN_VALUE}~${UByte.MAX_VALUE}")
println("UInt: ${UInt.MIN_VALUE}~${UInt.MAX_VALUE}")
println("UShort: ${UShort.MIN_VALUE}~${UShort.MAX_VALUE}")
println("ULong: ${ULong.MIN_VALUE}~${ULong.MAX_VALUE}")
// 실수형
println("Float: ${Float.MIN_VALUE}~${Float.MAX_VALUE}")
println("Double: ${Double.MIN_VALUE}~${Double.MAX_VALUE}")
}
'개발새발 > 코틀린' 카테고리의 다른 글
[코틀린/Kotlin] 상속과 인터페이스/추상클래스 (2) | 2025.08.13 |
---|---|
[코틀린/Kotlin] 함수 및 클래스 구조 (1) | 2025.08.12 |
[코틀린/Kotlin] 조건문과 반복문 (2) | 2025.08.11 |
[코틀린/Kotlin] 자료형과 변수 (5) | 2025.08.09 |
[Kotlin] Kotlin, JAVA랑 무엇이 다를까? (0) | 2023.09.06 |