Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20241005 자바와 코틀린의 변수 선언 방식 차이 본문

Kotlin

[TIL]20241005 자바와 코틀린의 변수 선언 방식 차이

최밤빵 2024. 10. 5. 16:00

자바를 공부하다가 코틀린이라는 언어를 처음 접하게 되면서 두 언어의 문법적인 차이점이 많이 보였다. 그 중에서도 변수 선언 방식이 코틀린과 자바 사이에서 가장 큰 차이 중 하나로 느껴졌다. 코틀린은 자바보다 더 간결하고 명확하게 변수를 선언할 수 있는 장점을 가지고 있고, 이러한 차이를 이해하면 코틀린의 효율성을 극대화할 수 있다. 

 

▶자바의 변수 선언 방식

자바에서 변수를 선언할 때는 타입을 명시적으로 지정해 주어야 한다. 자바는 강타입 언어이므로, 변수를 선언할 때 그 변수에 저장될 데이터의 타입을 명시해야 하고, 이후에는 해당 타입의 값만 저장할 수 있다.

int age = 25;            // 정수형 변수 선언
String name = "John";    // 문자열 변수 선언
boolean isActive = true; // 불리언 변수 선언

→ 자바에서는 변수 선언 시에 타입을 명시하고, 그 타입에 맞는 값을 대입해야 한다. 한 번 선언된 변수의 타입은 변경할 수 없으며, 선언된 타입과 다른 타입의 데이터를 저장하려고 하면 컴파일 에러가 발생한다.

 

또한, 자바에서는 final 키워드를 사용하여 불변(immutable) 변수를 선언할 수 있다. final 키워드를 사용하면 변수에 한 번 할당된 값을 이후에 변경할 수 없다. → 코틀린의 val과 유사한 개념

final int age = 25;      // 불변 변수 선언
age = 30;                // 컴파일 에러: 값을 변경할 수 없음

→ 자바에서는 final로 변수를 선언함으로써 불변성을 유지할 수 있으며, 코드의 안전성과 예측 가능성을 높여준다.

 

▶코틀린의 변수 선언 방식

코틀린은 자바와 달리 타입 추론을 지원하므로, 변수를 선언할 때 명시적으로 타입을 지정하지 않아도 된다. 코틀린 컴파일러는 변수에 할당된 값을 바탕으로 자동으로 타입을 추론하여 설정한다. 코틀린에서는 두 가지 방식으로 변수를 선언할 수 있는데, var와 val을 사용하여 가변 변수와 불변 변수를 구분한다.

var age = 25       // 가변 변수 (타입 추론: Int)
val name = "John"  // 불변 변수 (타입 추론: String)

→ 코틀린은 자바처럼 타입을 명시할 수 있지만, 대부분의 경우 타입을 생략해도 된다. var 키워드를 사용하면 변수를 선언한 후에 값을 변경할 수 있고, val 키워드를 사용하면 한 번 선언된 값을 변경할 수 없다.

 

▶자바와 코틀린 변수 선언 차이 비교

구분 자바 변수 선언 방식 코틀린 변수 선언 방식
가변 변수 int age = 25; var age = 25
불변 변수 final int age = 25; val age = 25
타입 명시 여부 반드시 타입을 명시해야 함 타입 추론을 통해 명시하지 않아도 됨
불변 변수 지원 final 키워드를 사용해야 불변성 유지 가능 val 키워드로 쉽게 불변 변수 선언 가능

 

▶자바와 코틀린의 변수 선언 방식 차이점

→ 타입 추론
자바에서는 항상 타입을 명시해야 하는 반면, 코틀린에서는 컴파일러가 변수에 할당된 값을 바탕으로 타입을 추론하므로, 코드의 가독성을 높이고, 불필요한 코드 작성을 줄이는 데 도움이 된다. 하지만, 타입을 명시해야 하는 경우에는 코틀린에서도 명시적으로 타입을 선언할 수 있다.

var age: Int = 25   // 타입을 명시적으로 선언
val name: String = "John"

 

→ 가변과 불변의 구분
자바에서는 final 키워드를 사용해야 변수를 불변으로 만들 수 있지만, 코틀린에서는 val 키워드를 통해 더 직관적으로 불변 변수를 선언할 수 있다. 코틀린의 val은 자바의 final과 비슷한 역할을 한다. var은 자바에서 기본적으로 사용되는 가변 변수와 동일하다.

→ 변수 재할당
코틀린의 val은 값을 한 번 할당하면 변경할 수 없기 때문에 불변성을 보장한다. 자바에서 final 키워드를 사용해 불변 변수를 만드는 것과 동일한 개념이다. 하지만 코틀린의 경우 변수 선언 시 좀 더 직관적인 방식으로 val을 사용하여 불변 변수를 명확히 나타낼 수 있다.

→ 코드 간결성
코틀린은 타입 추론 덕분에 코드가 자바에 비해 훨씬 더 간결해진다. 예를 들어, 자바에서의 변수를 선언할 때는 타입을 항상 명시해야 하기 때문에 코드가 길어지지만, 코틀린은 타입을 생략할 수 있어 선언하는 코드가 짧고 직관적이다.

 

자바는 강타입 언어로서 변수를 선언할 때 타입을 명시해야 하며, 불변 변수를 만들기 위해서는 final 키워드를 사용해야 한다. 코틀린은 타입 추론을 지원하여 더 간결한 코드를 작성할 수 있으며, var과 val을 사용해 가변성과 불변성을 직관적으로 구분할 수 있다.