본문 바로가기
Android Studio/Android Studio

3. Android Studio, Kotlin - 변수 선언

by Rosmary 2020. 7. 3.
728x90
반응형

안드로이드 앱을 개발하기 위해 필요한 프로그래밍 언어는 Java와 Kotlin이다. 두 프로그래밍 언어 모두 지구상에 존재하는 섬의 이름을 따 만들었는데, Java는 인도네시아의 섬이고 Kotlin은 러시아 상트페테르부르크 근처에 위치한 섬이라고 한다. 두 언어는 문법적인 면에서 상당한 유사성을 가지고 있고, 둘 다 안드로이드에 사용할 수 있다는 점 때문에, 안드로이드에서도 앱 개발을 위한 프로그래밍 언어로 Java와 Kotlin을 둘 다 지원했다. 

 

하지만, Java의 경우 문법이 너무나도 장황한데다가, Oracle과의 분쟁으로 인해 현재는 Kotlin만 안드로이드의 공식 개발 언어가 되었다. 당연히 향후에 안드로이드로 앱 개발을 함에 있어서 Kotlin을 떼어놓고 말할 수는 없을것이다.

 

Kotlin은 안드로이드에서 Activity의 동작을 구성하는 MainActivity.kt 파일에 작성된다(확장자 명을 보면 알겠지만 이 파일은 코틀린 파일이다). 따라서 코틀린의 기본적인 사용법을 대략적이라도 알아놓아야, 앞으로 앱 제작 방법을 학습함에 있어서 도움이 되겠다는 생각에, 코틀린의 기본 문법에 대한 내용을 포스팅하게 되었다. 

 

Android Studio에서는 Kotlin 문법을 작성하고 바로 확인할 수 있는 창을 제공한다. Kotlin REPL(Read Eval Print Loop)과 Scratch라고 불리는 창인데, 각각의 창을 여는 방법은 다음과 같다.

 

Kotlin REPL :  Tools > Kotlin > Kotlin REPL

 

Scratch:       File > New > Scratch (Ctrl + Shift + Alt + Insert)

 

Kotlin REPL은 코드 한 줄 한 줄을 입력하고 바로 실행해 볼 수 있는 창이고, Scratch는 여러 줄의 코드를 작성한 뒤, 해당 코드의 실행 결과를 확인할 수 있는 창이다. Kotlin REPL은 마치 Python의 인터프리터 모드와 비슷한데, 실제 앱을 제작하면서 한 줄 한 줄 코드 결과를 확인하는 일이 매우 드물기 떄문에, Scratch를 많이 사용한다. 지금부터 설명할 Kotlin의 기본 문법은 Scratch 창에서 진행할 예정이다.

 

확실히... Python에 비하면 직관적이지 않아 어렵긴 하다. 하나씩 살펴보자.

 

 

 

1. Kotlin의 변수 선언: 상수와 변수

 

Kotlin의 변수 종류는 크게 두 가지가 있다. 변경이 가능한 변수와, 그렇지 않은 변수. 조금 더 전문적인 용어를 쓰자면 변수와 상수로 바꿔 말할 수 있다. 변수는 선언 후에도 언제나 값을 바꿀 수 있지만, 상수는 한 번 선언된 값을 바꿀 수 없다.

 

변수 선언과 상수 선언의 포맷은 다음과 같다. 

 

변수와 상수 선언 포맷의 유일한 차이는 맨 앞에 들어가 있는 var와 val이다. 매우 유사해서 헷갈리기 딱 좋다. 

 

변수와 상수를 출력한 뒤, 이들의 값을 인위적으로 변경하여 어떻게 출력되는지 확인해보자.

 

상수로 선언한 non_Variable의 경우, 값을 바꾸자 빨간 느낌표와 줄이 코드 작성란에 뜬다. 저 빨간 줄은 Kotlin 코드에서 에러가 감지되었음을 의미하는데, 마우스 커서를 저 빨간 줄 위에 올리면 어떤 에러가 나타났는지 확인할 수 있다.

 

 

non_variable은 상수라 변경이 불가능하니, 변수로 변경하던지 다른 Action을 취하라는 안내 문구가 출력된다. Alt + Shift +Enter를 누르면 non_variable은 상수에서 변수로 변경되며, 변경된 내용이 마지막에 출력되는 것을 확인할 수 있다.

 

 

 

 

2. 변수와 상수 선언 시, 자료형 표현

 

Python부터 프로그래밍을 배우신 분들은 변수/상수 선언 시, 자료형을 명시하는 것에 많은 혼란을 느낄 것이다. Python을 제외한 대부분의 언어는 하나의 변수에 하나의 자료형만 사용하도록 되어 있다. 가령, Python에서는 하나의 변수에 숫자를 값으로 선언했다가 문자열로 변경하는 것이 가능한 반면,

 

 

Kotlin은 한 번 정해진 변수 자료형을 변경하는 것이 불가능하다.

 

Type Mismatch 에러. 처음 변수 선언 시에는 정수형이었는데, 변경된 값이 문자열이라 변경이 불가능하다는 의미다.

 

그렇기 때문에 변수를 정할 때 어떤 자료형을 사용할 것인지 명시하지 않으면, 협업하는 상황에서는 이를 바로바로 확인하기 어렵기 때문에 변수 선언을 다음과 같이 진행하기도 한다.

 

즉, 변수/상수여부 변수명: 자료형 = 변수값 형태로 선언하는 것이 가능하다. 그리고 이러한 방식으로 변수를 선언할 때 사용할 수 있는 자료형의 종류는 아래와 같다.

 

 

변수 / 상수 선언 시 자료형의 이름은 첫 글자를 대문자로 써야 한다. 그렇지 않으면 Android Studio는 해당 코드를 분석하지 못한다(Python이 주력이던 필자는 이 까다로운 Kotlin 때문에 고생을 좀 많이 했다).

 

숫자형의 경우, 같은 정수형 / 실수형임에도 자료형에 따라 사용 가능한 숫자가 나뉘어진다. 가령 Byte 자료형은 정수 -127부터 128까지만 지정이 가능한데(2^8), 이 범위를 벗어난 값이 변수에 선언되면 아래와 같이 에러가 발생한다.

 

 

문자형의 경우도 주의해야 할 사항이 있는데, 한 문자를 출력하는 자료형인 Char의 경우, 값이 홑따옴표''로 지정되어야하며, 문자열인 String 자료형의 값은 곁따옴표 ""로 지정되어야 한다.

 

 

 


 

 

이번 포스팅에서는 안드로이드 앱 개발에 사용되는 코틀린 프로그램의 변수 및 상수 선언 방법과 선언 시 주의사항에 대해 알아보았다. 다음 포스팅에서는 Kotlin에서 변수를 문자열 템플릿으로 사용하는 방법(Python의 formating)과 변수의 모음인 배열을 선언하는 방법에 대해 알아보려 한다. 

 

 

 

Fin.

 

 

 

 

반응형

댓글