상상하라 그리고 현실로 만들어라.

상상하는 모든 것이 미래다.

Kotlin과 Android/Kotlin

코틀린 변수(var) 및 상수(val) 선언

월터제이(Walter J) 2020. 10. 13. 09:00

안녕하세요, 반갑습니다!

 

안드로이드 앱 개발에 앞서,

안드로이드 공식 개발 언어로 지정된 코틀린 기본 문법, 변수와 상수에 대해 정리했습니다.

 

 

· 변수(Variable)

임시로 사용할 저장 공간을 메모리에 만들고 그 저장공간에 이름을 부여한 것을 말합니다.

이 변수 선언 방법에는 2가지 방법이 있습니다.

 

1. 선언과 동시에 값 넣기

코틀린은 타입 추론이 가능합니다.

이 타입 추론이라는 것은 초기화 되는 값을 분석해 변수의 자료형을 자동으로 설정하는 것입니다.

/* 초기화와 동시에 변수 선언하기 */

var magicalCodeFirst = 'M'    //char 타입으로 선언
var blogName = "매지컬 코드"     //String 타입으로 선언
var magicalCodeAge = 1        //int 타입으로 선언
var magicalCodeAgeL = 1L      //Long 타입으로 선언
var magicalCodePointF = 1F    //float 타입으로 선언
var magicalCodePointD = 1.0   //double 타입으로 선언
var isBlogOpen = true         //boolean 타입으로 선언

 

2. 초기화하지 않고 선언 하기

이 방법은 콜론( : ) 구분자를 사용해서 자료형을 지정해 줍니다.

/* 초기화 없이 자료 타입을 붙여 선언하기 */

var magicalCodeFirst: Char
var blogName: String
var magicalCodeAge: Int
var magicalCodeAgeL: Long
var magicalCodePointF: Float
var magicalCodePointD: Double
var isBlogOpen: Boolean

※ 이미 알고계시겠지만, 변수는 상수와 달리 값을 변경할 수 있습니다.

    단, 처음 지정된 즉, 한번 자료형 타입이 결정되면 같은 자료형의 값으로만 변경할 수 있다는 점! 잊지마세요~

 

· 코틀린의 기본 데이터 타입

구분 데이터 타입 설명
숫자 Double 64비트 실수
Float 32비트 실수
Long 64비트 정수
Int 32비트 정수
Short 16비트 정수
Byte 8비트 정수
문자 Char 1개의 문자
String 여러개의 문자
참/거짓 Boolean True(참), False(거짓) 두 가지 값

 

 

· 상수(Val)

기본적으로는 변경할 수 없는 값을 임시로 저장하기 위해 상수로 사용되는데요. 코틀린에서는 사라진 자바의 final 을 대응합니다.

그래서 기준이 되거나 절대 변하면 안되는 값을 미리 저장하기 위해 사용해요.

수식의 결과값을 바꾸고 싶지 않을 경우에도 상수로 선언해서 사용할 수 있습니다.

상수는 값을 변경할 수 없으므로 변경하려고 하면 안드로이드 스튜디오 등의 컴파일러에서 Error가 발생하겠죠?

class MainActivity : AppCompatActivity() {
    val MY_AGE = 29							
    val MY_SALARY = 100 * MY_AGE    //수식으로도 사용

 

여기서 잠깐,

코틀린의 val 은 자바의 final 을 대응합니다.

즉, 같은 목적으로 사용할 수 있는데요. 그럼에도 불구하고 const 변경자를 지원을 하는데요.

 

훗날 const 변경자에 대한 이야기를 할때 자세하게 다루겠지만,

이 포스팅에서는 간단히 컴파일 타임과 런타임에 관련된 내용임을 말씀 드리겠습니다.

 

 

One more thing!

· 네이밍 컨벤션(Naming Conventino)

코드를 작성하는데 클래스명, 함수명, 변수명 등의 이름을 짓는 규칙입니다.

큰 프로젝트의 경우 많은 개발자가 코드를 작성하는 데요. 중구난방으로 이름을 지으면 엄청 헷갈리겠죠?

 

기본적으로 코틀린의 네이밍 컨벤션은 캐멀 케이스(Calmel Case)를 사용합니다.

마치 낙타의 등과 같이 높낮이 있다고 해서 낙타 표기법이라고도 불리는데요.

 

캐멀 케이스의 클래스명을 짓는 규칙은 다음과 같습니다.
1. 클래스 명은 파일 명과 동일하다

2. 첫 글자는 대문자, 나머지 글자는 소문자로 표기한다.

3. 단, 새로운 단어가 있으면 해당 단어의 첫 글자도 대문자로 표기한다.

 

함수명 & 변수명을 짓는 규칙은 다음과 같습니다.

1. 첫 글자를 포함, 모두 소문자로 작성한다.

2. 단, 새로운 단어가 있으면 해당 단어의 첫 글자는 대문자로 표기한다.

 

상수명을 짓는 규칙은 다음과 같습니다.

1. 모두 대문자로 작성한다.

2. 이 경우에는 캐멀 케이스보다는 스네이크 케이스로 작성한다.

 

※ 요즘은 캐멀 케이스(낙타 표기법) 보다는 스네이크 케이스로 작성하는 경우도 많습니다.

스네이크 케이스는 말 그대로 뱀과 같다 하여 지어진 이름인데요.

새로운 단어의 첫 글자를 대문자로 쓰는 대신 아래처럼 언더바( _ ) 를 쓰는 것입니다.

/* 스네이크 케이스(뱀 표기법) */

val BLOG_NAME = "Magical Code"  //"Magical Code" 라는 상수

 

가독성이 조금 더 좋아 요즘은 더 많이 쓴다고 하는데,

저는 캐멀 케이스 스타일을 많이 사용하는 편인거 같아요.

 

기존 안드로이드 앱 개발 언어인 자바와는 많이 다른데요. 조금 더 쉬워진 것 같은 느낌입니다.

정작 어려웠던건 var 과 val 을 계속 헷갈렸....

그래도 이젠 많이 익숙해졌어요^^.

 

 

 

그럼 저는 더욱 유익한 포스팅을 준비해서 올리겠습니다.

감사합니다!

반응형