데이터 타입 (Data Type)
앞에서 변수를 선언할 때
기본적으로는 변수 이름과 함께 변수의 형(타입)도 함께 표시해야 한다고 했다.
이 변수형은 왜 필요한 것일까?
간단히 말하면
변수를 저장할 메모리의 크기와 저장할 형식을 파악하기 위해서이다.
예를 들어 축구공 1개를 넣으면 딱 맞는 크기의 상자가 있다고 하자.
이 상자에는 한번에 한 가지만 넣을 수 있다.
그런데 탁구공 1개를 넣어보자. 이것은 공간의 낭비다.
그 다음에는 탁구공을 빼고 농구공을 넣어보자. 이것은 공간 부족이다.
이것을 해결하는 방법은 미리 어떤 공을 넣을 것인지 알고
그것에 맞는 크기의 상자를 준비하는 것이다.
마찬가지로 변수를 선언하면 딱 1개만 저장할 수 있는 메모리 공간이 생긴다.
그래서 한정된 메모리를 더 효율적으로 사용하고 관리하기 위해 Type(타입, 형)이 생겼다.
결국 변수형은 메모리의 크기를 정하기 위함이다.
그러므로 변수형은 변수크기와 같은 의미이다.
변수형은 기본형(Basic Type)과 참조형(Reference Type)이 있다.
기본형은 데이터의 본래 형식이며 코틀린 내부에 내장되어 있다.
참조형은 객체를 생성하고 메모리에 저장한 후에 참조하는 데이터의 형식이다.
객체는 다음에 다루기로 한다.
자바 언어와는 달리 코틀린은 참조형만 사용한다.
자바에서는 최적화를 위해 참조형으로 할 지, 기본형으로 할 지 고민해야 하지만
코틀린은 알아서 최적화 작업을 하므로 신경 쓸 필요가 없다.
기본 자료형 5가지
숫자형 (Number Type)
문자형 (Character Type)
문자열형 (String Type)
불린형 (Boolean Type)
배열형 (Array Type)
1. 숫자형
숫자형은 6가지 종류가 있다.
크기가 큰 순으로 나열하면 다음과 같다.
Double
Float
Long
Int
Short
Byte
정확한 크기는 알 필요가 거의 없다.
그래도 크기가 얼마인지 굳이 알고 싶으면 '구글이'한테 물어보자.
일반적으로 가장 많이 사용하는 것은 Int (정수형)이다.
웬만한 숫자는 Int로 처리할 수 있다.
그 다음은 Long 이다.
소수점을 처리할 때는 Double을 쓰면 된다.
Float도 소수점을 처리할 때 쓰는데 주로 그래픽 관련 라이브러리에서 많이 쓰인다.
아래 코드를 적어서 실행해 보자.
아래 코드를 다시 작성해서 실행해 보자.
코틀린에서는 큰 숫자를 읽기 쉽게 하기 위해 쉼표 대용으로 코드에서 언더바( _ )를 사용할 수 있다.
다른 언어도 그런진 모르겠지만 코틀린의 꼼꼼함이 엿보인다.
하지만 영어권 식으로 천 단위(영 3개)씩 끊어 놓으면 헷갈리는 경우가 많다.
영어권에서는 천 단위로 증가하지만 우리나라는 한 단계 더 높게 만 단위로 수를 읽기 때문이다.
4단위 마다 만-억-조-경 등으로 읽으므로 아래와 같이 적으면 숫자를 읽기 쉽다. "10 억"
에러가 안 나는걸 보면 Int형은 10억 정도의 숫자도 거뜬히 처리할 수 있다는걸 알 수 있다.
어쨌든 실습해 보려는건 이게 아니고 '캐스팅 연산자'라는 것이다.
일단 실습부터 해보자.
아래 처럼 중간에 추가 코드를 작성한 후 실행해 본다.
추가한 코드의 뜻은 다음과 같다.
변수 doubleValue 에 넣어라 (뭘?) 변수 intValue 값(을) Double형으로
위 코드를 실행하면 변수 doubleValue의 값에 intValue 값을 Double형으로 변환한 후 넣는다.
어떤 식으로 변했는지 확인해 보자.
그래서 to형() 은 다른 타입으로 바꿔서 크기를 변환해 주는 함수이다.
끝에 () 괄호가 있는것을 보면 함수인지 알 수 있다.
코틀린에 미리 만들어져 있는 함수를 내장함수라고 했다.
이렇게 다른 형으로 바꾸는 것을 casting(캐스팅)이라고 한다.
변수 크기를 즉시 바꿔주는 유용한 기능이다.
toInt() 는 Int형으로 바꾸는 것이고
toLong() 은 Long형으로 바꾸는 것이다.
캐스팅하면 변수의 크기가 바뀌게 된다.
단, 이 방법은 숫자형 데이터에만 적용할 수 있다.
다른 종류의 데이터 형 변환은 다음에 알아본다.
사족:
앞에서 숫자형의 크기를 정확히 알 필요는 없고 대충 사용해도 된다고 했는데
이것은 초보 또는 일반적인 코드 작업에서는 그렇다는 뜻이다.
만약 실력이 늘고 회사 등에서 전문적인 프로젝트를 만들때는
자료형의 크기와 특징을 십분 활용해야 한다.
자료형으로 메모리 공간을 잘 활용하는 문제는 큰 프로젝트의 경우에는 성능에도 영향을 미칠 수 있기 때문이다.
지금까지 숫자형에 대해 간단히 알아보았다.
다음 글에서는 문자형에 대해 알아본다.
끝.
'프로그래밍 언어 > 코틀린_쌩초보를 위한 기초' 카테고리의 다른 글
쌩초보를 위한 기초_09_범위_scope (0) | 2020.03.10 |
---|---|
쌩초보를 위한 기초_08_변수형_String (0) | 2020.03.09 |
쌩초보를 위한 기초_06_Variable_변수 (0) | 2020.03.08 |
쌩초보를 위한 기초_05_함수의 형태 (0) | 2020.03.08 |
쌩초보를 위한 기초_04_String & Int (0) | 2020.03.07 |