Kotlin에서 데이터 타입 (Int, Float, Double, String 등)

안녕하세요! 오늘 같이 흥미진진한 코틀린의 세계, 그중에서도 다양한 데이터 타입에 대해 알아보는 시간을 가져보려고 해요. 마치 레고 블록처럼, 코틀린에서 멋진 프로그램을 만들려면 Int, Float, Double, String 같은 다양한 데이터 타입들을 잘 이해하고 사용해야 하거든요. 숫자를 다루는 숫자 타입부터 글자를 다루는 문자열과 문자, 어떻게 이들을 활용하는지까지 차근차근 살펴볼 거예요. 벌써부터 기대되시죠? 자, 그럼 코틀린 데이터 타입 종류를 하나하나 탐험하며 코틀린과 더욱 친해지는 시간을 가져보도록 해요! 함께 재밌게 알아가 봐요!

 

 

Kotlin 데이터 타입 종류

Kotlin은 정적 타입 지정 언어입니다. 자바와 마찬가지로 컴파일 시점에 모든 변수의 타입을 알아야 하죠. 이게 뭐가 좋냐구요? 버그를 미리 잡아낼 수 있고, 코드의 안정성을 높여준답니다! 게다가 코드 가독성도 쑥쑥 올라가니 얼마나 좋아요~? ^^

Kotlin의 데이터 타입은 크게 두 가지로 나눌 수 있어요. 바로 참조 타입기본 타입이에요. 참조 타입은 객체를 가리키는 타입이고, 기본 타입은 실제 값을 저장하는 타입이죠. 기본 타입은 성능 향상을 위해 JVM에서 기본 타입으로 매핑된다는 사실! 잊지 마세요~

기본 타입

자, 그럼 기본 타입부터 좀 더 자세히 알아볼까요? Kotlin의 기본 타입에는 숫자 타입, 문자 타입, 불리언 타입이 있어요. 각각 어떤 특징이 있는지 하나씩 살펴보도록 하죠!

숫자 타입

숫자 타입: 정수, 실수 등 숫자를 나타내는 타입이에요. Int, Long, Short, Byte, Float, Double 등이 여기에 속하죠. 예를 들어, Int는 32비트 정수를, Double은 64비트 부동 소수점 숫자를 표현해요. 숫자 타입은 사칙연산(+, -, *, /) 뿐만 아니라 비트 연산(&, |, ^, ~)도 지원한답니다! 다양한 연산을 활용해서 여러분이 원하는 계산을 맘껏 해보세요~

문자 타입

문자 타입: Char 타입은 단일 문자를 나타내요. UTF-16으로 인코딩된 16비트 Unicode 문자를 저장할 수 있죠. ‘A’, ‘가’, ‘$’와 같이 작은따옴표(”)로 문자를 감싸는 것, 잊지 않으셨죠? 문자열과 헷갈리지 않도록 주의해야 해요!!

불리언 타입

불리언 타입: Boolean 타입은 true 또는 false 두 가지 값만 가질 수 있어요. 조건문이나 논리 연산에 사용되죠. 참과 거짓을 명확하게 구분해야 할 때 정말 유용해요!

참조 타입

참조 타입은 어떨까요? String, Array, List 등이 대표적인 참조 타입이에요. 얘네들은 객체를 가리키기 때문에 null 값을 가질 수도 있다는 점! 기억해두세요~

String 타입

String 타입: 문자열을 나타내는 타입이에요. “Hello, Kotlin!”처럼 큰따옴표(“”)로 문자열을 감싸죠. 문자열은 불변(immutable)이라 한 번 생성된 문자열은 변경할 수 없어요. 하지만 걱정 마세요! 다양한 메서드를 활용해서 새로운 문자열을 만들 수 있으니까요~

Array 타입

Array 타입: arrayOf(), intArrayOf(), booleanArrayOf() 등의 함수를 사용해서 배열을 생성할 수 있어요. 배열은 같은 타입의 데이터를 순서대로 저장하는 자료구조죠. 인덱스를 사용해서 배열의 요소에 접근할 수 있어요. 0부터 시작하는 인덱스, 다들 아시죠? 배열은 크기가 고정되어 있다는 점도 기억해 두세요!

List 타입

List 타입: listOf(), mutableListOf() 등의 함수를 사용해서 리스트를 생성할 수 있어요. 리스트는 배열과 달리 크기가 가변적이에요. 요소를 추가하거나 삭제할 수 있죠. List는 읽기 전용이고, MutableList는 읽기와 쓰기가 모두 가능해요. 상황에 맞게 적절한 타입을 사용하는 것이 중요해요!

타입 추론

Kotlin은 타입 추론 기능을 제공해요. 변수의 타입을 명시적으로 지정하지 않아도 컴파일러가 자동으로 타입을 추론해주죠. 이 덕분에 코드가 훨씬 간결해진답니다! 하지만 가끔은 명시적으로 타입을 지정하는 것이 코드의 가독성을 높이는 데 도움이 될 수도 있어요. 상황에 따라 적절하게 사용하는 것이 좋겠죠?

Kotlin의 데이터 타입, 이제 좀 감이 잡히시나요? 다양한 타입을 적재적소에 활용해서 여러분만의 멋진 Kotlin 코드를 작성해보세요! 다음에는 숫자 타입에 대해 좀 더 자세히 알아보도록 할게요! 기대해주세요~?

 

숫자 타입 살펴보기

Kotlin에서 숫자 타입은 정말 다양하고, 각 타입마다 미묘한 차이가 있어서 처음엔 조금 헷갈릴 수도 있어요! 하지만 걱정 마세요~ 각 타입의 특징과 활용법을 하나씩 살펴보면 금방 이해할 수 있답니다! 😊

Kotlin은 Java와 마찬가지로 기본적으로 숫자 타입을 객체로 취급하지 않아요. 이는 성능 향상에 도움을 주죠. 하지만 숫자 타입을 객체로 사용해야 하는 경우도 있잖아요? 그럴 땐 박싱(boxing)을 통해 객체로 변환해서 사용할 수 있도록 지원하고 있답니다. 참 똑똑하죠? 😉

자, 그럼 본격적으로 Kotlin의 숫자 타입들을 하나씩 파헤쳐 볼까요? 숫자 타입은 크게 정수 타입과 부동 소수점 타입으로 나뉘어요. 마치 동전의 양면과 같죠!

1. 정수 타입

정수 타입은 말 그대로 소수점 없는 숫자를 저장하는 타입이에요. Kotlin에서는 Byte, Short, Int, Long 이렇게 네 가지 정수 타입을 제공하고 있어요. 각 타입이 저장할 수 있는 값의 범위가 다르다는 점, 꼭 기억해 두세요! Byte는 -128부터 127까지, Short는 -32,768부터 32,767까지, Int는 무려 -2,147,483,648부터 2,147,483,647까지, 그리고 Long은 -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지의 어마어마한 범위를 담을 수 있답니다! 😮 용량이 큰 숫자를 다뤄야 할 땐 Long 타입을 사용하면 되겠죠?

정수 리터럴은 10진수, 16진수, 2진수로 표현할 수 있어요. 예를 들어 123(10진수), 0x7B(16진수), 0b1111011(2진수) 모두 같은 값을 나타낸답니다. 신기하죠?! 😄 그리고 Long 타입의 경우에는 숫자 뒤에 L을 붙여서 표현해요. 예를 들어 123L처럼 말이죠!

2. 부동 소수점 타입

이번엔 소수점 있는 숫자를 저장하는 부동 소수점 타입에 대해 알아볼게요. Kotlin에서는 FloatDouble 두 가지 타입을 제공해요. Float은 32비트, Double은 64비트의 저장 공간을 사용하는데, 정밀도가 다르다는 것이 핵심이에요! DoubleFloat보다 더 높은 정밀도를 제공하죠. 즉, 더 정확한 소수점 표현이 가능하다는 말씀! 👍 Float 타입은 숫자 뒤에 f 또는 F를 붙여서 표현하고, Double 타입은 숫자 뒤에 d 또는 D를 붙이거나 아무것도 붙이지 않아도 된답니다. 123.45f, 123.456789, 123.45d처럼 말이죠!

3. 숫자 타입 변환

Kotlin에서는 숫자 타입 간의 변환이 필요한 경우, 명시적인 변환을 해주어야 해요. toInt(), toFloat(), toDouble(), toLong(), toByte(), toShort() 등의 함수를 사용하면 된답니다. 예를 들어 Int 타입의 변수를 Double 타입으로 변환하려면 변수.toDouble()처럼 사용하면 돼요. 아주 간단하죠? 😉

4. 언더스코어 사용

큰 숫자를 읽기 쉽게 만들기 위해 언더스코어(_)를 사용할 수 있다는 사실, 알고 계셨나요? 예를 들어 1_000_000은 1000000과 같은 값이에요. 숫자 사이에 언더스코어를 넣어주면 훨씬 읽기 편해진답니다! ✨

Kotlin에서는 숫자 타입에 대해 다양한 연산자(+, -, *, /, %)를 제공하고 있어요. 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산 등을 간편하게 수행할 수 있죠. 뿐만 아니라 비트 연산자(&, |, ^, <<, >>, >>>)도 지원하고 있어서, 더욱 세밀한 연산 작업도 가능하답니다! 😎

자, 이제 Kotlin의 숫자 타입에 대해 어느 정도 감이 잡히시나요? 처음에는 다소 복잡하게 느껴질 수 있지만, 각 타입의 특징과 활용법을 잘 이해하고 나면 코딩 작업이 훨씬 수월해질 거예요! 다음에는 더욱 흥미로운 Kotlin의 세계로 함께 떠나볼게요! 🚀

 

문자열과 문자 다루기

Kotlin에서 문자열은 텍스트를 나타내는 기본적인 데이터 타입이에요. “안녕하세요!”처럼 우리가 일상적으로 사용하는 말들이죠! 이 문자열을 자유자재로 다루는 건 정말 중요해요. 마치 요리사가 칼을 다루듯이 말이죠! 😄 Kotlin은 문자열을 다루기 위한 다양하고 강력한 기능들을 제공한답니다. 자, 이제 함께 Kotlin의 문자열 세계를 탐험해 볼까요?

Kotlin에서 문자열은 String 타입으로 표현돼요. 문자열은 작은따옴표(”)로 감싸진 문자들의 시퀀스, 즉 문자들의 집합체라고 생각하면 돼요. 예를 들어, "Kotlin"은 6개의 문자 ‘K’, ‘o’, ‘t’, ‘l’, ‘i’, ‘n’으로 구성된 문자열이랍니다. 참 쉽죠? ^^

문자열 만들기: 간단하게 시작하기!

Kotlin에서 문자열을 만드는 방법은 정말 간단해요! 그냥 큰따옴표 안에 원하는 텍스트를 넣어주면 끝! 예를 들어, "Hello, world!"는 “Hello, world!”라는 문자열을 생성하는 거예요. 참 쉽죠? 😉

val message: String = "Hello, Kotlin!"  // message 변수에 "Hello, Kotlin!" 문자열을 할당했어요!
println(message) // 출력: Hello, Kotlin!

문자열 길이: 몇 글자일까? 궁금하면 이렇게!

문자열의 길이(문자 개수)를 알고 싶을 때는 .length 프로퍼티를 사용하면 돼요. 마치 자📏를 이용해서 길이를 재는 것처럼 말이죠!

val myString = "Kotlin is awesome!"
val length = myString.length  // myString의 길이를 length 변수에 저장!
println("문자열 길이: $length") // 출력: 문자열 길이: 18

문자열 연결: 둘이 하나가 되는 마법!✨

두 개 이상의 문자열을 하나로 합치는 것을 문자열 연결이라고 해요. Kotlin에서는 + 연산자를 사용해서 간편하게 문자열을 연결할 수 있어요. 마치 퍼즐 조각을 맞추는 것 같죠?!🧩

val str1 = "Hello"
val str2 = "Kotlin"
val combined = str1 + " " + str2 // str1, 공백, str2를 연결!
println(combined) // 출력: Hello Kotlin

문자열 비교: 똑같은지 다른지 꼼꼼하게 확인!

두 문자열이 같은지 비교해야 할 때는 == 연산자를 사용하면 돼요. 대소문자까지 완전히 같아야 true를 반환한답니다. 🧐 equals() 함수를 사용해도 같은 결과를 얻을 수 있어요. 선택은 자유!

val string1 = "apple"
val string2 = "Apple"
println(string1 == string2)  // 출력: false (대소문자 구분!)
println(string1.equals(string2, ignoreCase = true)) // 출력: true (대소문자 무시!)

문자열 검색: 숨바꼭질도 문제없어요!🕵️‍♀️

특정 문자열이 포함되어 있는지 확인하고 싶을 때는 contains() 함수를 사용하면 돼요. 마치 돋보기🔎를 사용해서 찾는 것처럼 말이죠!

val text = "This is a Kotlin tutorial."
println(text.contains("Kotlin"))  // 출력: true ("Kotlin"이 포함되어 있으므로)
println(text.contains("Java"))    // 출력: false ("Java"는 없네요~)

문자열 자르기: 원하는 부분만 쏙!✂️

문자열의 일부분만 추출하고 싶을 때는 substring() 함수를 사용해요. 마치 가위✂️로 원하는 부분만 잘라내는 것처럼 말이죠!

val text = "Kotlin is fun!"
val sub = text.substring(0, 6)  // 0번째 인덱스부터 5번째 인덱스까지 추출
println(sub) // 출력: Kotlin

문자: 문자열의 작은 조각!

문자는 Char 타입으로 표현되며, 작은따옴표(”)로 감싸요. 예를 들어, ‘K’는 Kotlin이라는 단어의 첫 번째 문자예요. 문자열과 문자는 다르다는 것을 기억해두세요!🤓

val char1: Char = 'A'
val char2: Char = 'B'
println(char1) // 출력: A
println(char2) // 출력: B

Kotlin에서는 이처럼 다양한 방법으로 문자열과 문자를 다룰 수 있어요! 이러한 기능들을 잘 활용하면 더욱 풍부하고 유연한 코드를 작성할 수 있답니다. 다음에는 더욱 흥미진진한 Kotlin의 세계를 탐험해보도록 해요! 🚀

 

데이터 타입 활용 예시

자, 이제 Kotlin의 데이터 타입을 활용하는 실제 예시들을 살펴볼까요? 백문이 불여일견이라고, 직접 코드를 통해 활용법을 익히는 게 가장 효과적이잖아요~? ^^ 다양한 상황에서 어떻게 데이터 타입을 적용하고 그 결과가 어떻게 나타나는지 꼼꼼히 살펴보면, 여러분의 코딩 실력 향상에 엄청난 도움이 될 거예요!

1. 간단한 계산기 만들기

Kotlin의 숫자 타입을 활용해서 간단한 계산기를 만들어 볼 수 있어요. 두 개의 정수를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈의 결과를 출력하는 프로그램을 생각해 보세요! Int 타입의 변수를 사용해서 숫자를 저장하고, 연산자(+, -, *, /)를 활용하면 간단하게 구현할 수 있답니다. 나눗셈의 경우, 결과값이 정수가 아닐 수 있으니 Double 타입을 사용하는 센스! 잊지 마세요~?

fun main() {
    val num1: Int = 10
    val num2: Int = 5

    println("덧셈 결과: ${num1 + num2}") // 15 출력
    println("뺄셈 결과: ${num1 - num2}") // 5 출력
    println("곱셈 결과: ${num1 * num2}") // 50 출력
    println("나눗셈 결과: ${num1.toDouble() / num2}") // 2.0 출력
}

여기서 깨알 팁! 나눗셈에서 num1을 Double로 변환해 주는 이유는 정확한 결과값을 얻기 위해서랍니다. 정수끼리 나누면 소수점 이하 값이 버려질 수 있거든요.

2. 문자열 다루기: 사용자 이름 만들기

자, 이번에는 문자열을 활용해 볼까요? 사용자로부터 이름과 나이를 입력받아 “OOO님(나이) 환영합니다!”라는 문자열을 출력하는 프로그램을 만들어 보는 거예요. String 타입을 사용해서 이름을 저장하고, 템플릿 문자열 기능을 활용하면 아주 간단하게 만들 수 있답니다.

fun main() {
    print("이름을 입력하세요: ")
    val name: String = readLine()!!

    print("나이를 입력하세요: ")
    val age: Int = readLine()!!.toInt()

    println("${name}님(${age}) 환영합니다!!")
}

이 코드에서는 readLine() 함수를 통해 사용자 입력을 받고, toInt() 함수를 사용해서 문자열을 정수로 변환했어요! !!는 null이 아님을 보장하는 연산자랍니다. 이렇게 다양한 함수와 연산자를 활용하면 코딩이 훨씬 재밌어진답니다~

3. Boolean 타입으로 조건 판단하기

Boolean 타입은 참과 거짓을 나타내는 데이터 타입이에요. 조건문에서 유용하게 활용될 수 있죠! 예를 들어, 사용자의 나이가 19세 이상인지 판단하여 투표 가능 여부를 출력하는 프로그램을 만들어 볼 수 있어요.

fun main() {
    print("나이를 입력하세요: ")
    val age: Int = readLine()!!.toInt()

    val isAdult: Boolean = age >= 19

    if (isAdult) {
        println("투표 가능합니다!")
    } else {
        println("투표할 수 없습니다.")
    }
}

여기서 isAdult 변수는 Boolean 타입으로, 나이가 19세 이상이면 true, 그렇지 않으면 false 값을 가집니다. 이렇게 Boolean 타입을 활용하면 프로그램의 흐름을 제어할 수 있어요!

4. 다양한 타입의 데이터를 저장하는 리스트 활용

List는 여러 개의 데이터를 순서대로 저장할 수 있는 자료구조예요. Kotlin에서는 MutableList를 사용하면 리스트의 요소를 추가하거나 삭제할 수 있답니다. 예를 들어, 쇼핑 카트에 담긴 상품 목록을 관리하는 프로그램을 생각해 보세요! 상품 이름(String), 가격(Int), 수량(Int) 등 다양한 타입의 데이터를 리스트에 저장하고 관리할 수 있답니다.

fun main() {
    val cart: MutableList> = mutableListOf()

    cart.add(Pair("사과", 1000))
    cart.add(Pair("바나나", 500))
    cart.add(Pair("오렌지", 700))

    println("장바구니 목록:")
    for ((item, price) in cart) {
        println("${item}: ${price}원")
    }
}

이 예시에서는 Pair를 사용하여 상품명과 가격을 하나의 쌍으로 묶어서 리스트에 저장했어요. 이처럼 List와 Pair를 함께 활용하면 더욱 복잡한 데이터 구조를 효율적으로 관리할 수 있습니다. 다른 타입의 데이터를 저장하고 싶다면 Triple, 또는 data class를 활용하는 것도 좋은 방법이에요!

Kotlin의 데이터 타입은 정말 다양하고 활용도가 높죠? 이처럼 실제 예시를 통해 데이터 타입을 익히면 코딩 실력이 쑥쑥 향상될 거예요! 앞으로도 다양한 예시를 통해 Kotlin의 매력을 더욱 깊이 있게 경험해 보세요! 화이팅~!!

 

Kotlin의 다양한 데이터 타입들을 살펴봤어요! 어떠셨나요? 처음엔 조금 낯설게 느껴졌을 수도 있지만, 이제 숫자, 문자, 문자열을 자유자재로 다룰 수 있는 기본기를 익히셨을 거예요. 마치 새로운 언어를 배우는 것처럼 처음엔 어색하지만, 조금만 연습하면 금방 익숙해진답니다. 이젠 여러분의 코딩 실력이 한 단계 업그레이드되었어요! 앞으로 Kotlin으로 어떤 멋진 프로그램을 만들어낼지 정말 기대돼요. 배운 내용을 토대로 직접 코드를 작성하고, 다양한 예제를 통해 연습해 보면 더욱 실력이 쑥쑥 늘 거예요. Kotlin과 함께 즐거운 코딩 여정을 이어가길 바라요!

 

Leave a Comment