전체 글 120

[Kotlin] 코틀린의 String 저장 방식은 다르다?

코틀린에서의 String 자료형 저장 방식에 대해 알아보자.  String  다들 알고 있는 문자열 자료형 String이다. 대부분의 자료형은 기본형 자료형(원시 타입)에 속하지만,String만은 참조형 자료형이라는 것도 알고 있을 것이다. 그리고 참조형 자료형의 실제 데이터는 Heap 영역에 저장되고,Stack 영역에는 Heap 영역의 주소를 가리키는 값이 저장된다는 것도 많이 언급했었다.  하지만 코틀린에서의 String은 위의 기존 방식대로 데이터를 저장하지 않는다..! 이것이 이번 포스팅의 주 내용이다.   String도 클래스잖아..!  그렇다. 당연히 String은 클래스이기에 참조형 자료형으로 구분된다.  일단, 지난 포스팅에서의 예제를 재탕해보자.// 간단한 데이터 클래스 생성data cl..

Kotlin (코틀린) 2024.05.20

[Kotlin] 코틀린의 참조 타입 → 원시 타입 변환 확인 / 기본형 · 참조형 자료형의 비교 원리 / 이중 등호와 삼중 등호 (==, ===

앞선 코틀린의 자료형을 소개하는 포스팅에서 언급한 내용을 확인하는 포스팅이다. 다소 쓸데없고(?) 딱딱할 수 있지만, 알아두면 좋은 가벼운 내용만을 다룬다. 주된 내용은 참조 타입으로 사용하는 기존 원시 타입 변수가 실제로 원시 타입으로 변환 처리되는지 확인하는 과정이다. 기본형? 참조형? 기본형과 참조형은 앞선 많은 포스팅들에서 다루었던 내용이다. 궁금하다면 참고하기 바란다. [Kotlin] 코틀린 자료형 / 타입 캐스팅 / 값 비교이번 포스팅에서는 코틀린의 자료형에 대해 알아보자. 자료형 코틀린에서는 자료형을 원시 타입과 참조 타입으로 구분하지 않는다.모든 자료형은 참조 타입으로 통일되었다. 타입키워oscarstory.tistory.com [Kotlin] 코틀린 래퍼 클래스 Wrapper Class지..

Kotlin (코틀린) 2024.05.19

[Kotlin] 코틀린의 조건문 / if / when

이번 포스팅에서는 코틀린의 흐름 제어 중, 조건문에 대해 알아보자. 다른 언어와 크게 다를 것이 없기에, 조건문의 정의나 형식 등기초적인 내용은 생략하고 간단한 예제와 함께 알아보겠다.   if 문  단순히 if문만 생각하면 크게 어려울 것이 없다. 간단한 예제를 보자.val name = "Oscar"var result = ""if (name == "Oscar") { result = "상남자"} else { result = "하남자"}println(result) // 출력 : 상남자 자바와 크게 다를 것이 없는 if문이다.   하지만 코틀린에서의 if문은 값을 반환하는 표현식으로도 사용할 수 있다.이 부분이 코틀린의 if문을 소개하고자 하는 핵심이다.val name = "Osca..

Kotlin (코틀린) 2024.05.18

[Kotlin] 코틀린의 null / null 처리 연산자 ? ?. !! / 엘비스 연산자 ?:

이번 포스팅에서는 코틀린에서의 null에 대해 알아보자.   코틀린에서의 null 처리  앞선 코틀린 특징 포스팅에서도 언급했지만,코틀린은 NPE로부터 안정성을 보장할 정도로 null을 예민하게 다룬다.  코틀린이 null을 어떻게 처리하는지 알아보기 전에,우리가 null을 주로 어떠한 경로로 만나는지부터 간단히 생각해 보자. 객체를 null과 관련지어 다음 3가지로 구분할 수 있다.- 구조 상 절대 null이 될 수 없는 객체- 구조 상 무조건 null인 객체- null이 될 수도 있는 객체   개발을 하다보면 느끼겠지만, 무조건 null인 객체는 코드 내 경고로서 미리 확인할 수 있다. 여기서 중요한 점은, null이 될 수도 있는 객체다.  코틀린은 개발자가 작성한 코드 중 이미 null인 객체 ..

Kotlin (코틀린) 2024.05.11

[Kotlin] 코틀린 함수 / 메서드와 함수 / 단일 표현식 함수

코틀린의 함수에 대해 알아보자.   함수? 메서드?  사실 자바에서는 메서드라고 많이 불렀는데,코틀린은 다들 함수라고 부르는 분위기다... 이런 상황에서는 항상, 왜 그렇게 된 것인가에 대해 궁금하지 않을 수가 없다.   ✅ 코틀린 함수의 키워드 코틀린에서는 함수를 선언할 때 fun 키워드를 사용한다.fun 함수명()  대부분 알겠지만, 여기서 fun은 function의 약자이다.그리고 자바를 제외한 대부분의 언어에서 function은 함수라 불려왔다. 이러한 배경에서 코틀린이 fun 키워드를 채택하였고,대부분의 사람들이 메서드가 아닌 함수라 부르게 된 것이다.      ✅ 메서드와 함수의 차이점을 굳이 따지자면? 메서드도 사실 함수라는 정의 안에 포함된다.메서드는 '객체와 연관된 함수'로 정의되곤 했다..

Kotlin (코틀린) 2024.05.10

[Kotlin] 코틀린 늦은 초기화 기법 - lateinit / lazy

이번 포스팅에서는 늦은 초기화 기법에 대해 알아본다.    늦은 초기화 기법?  말 그대로 객체 초기화를 늦게 하는 방법이다. 가끔 객체의 선언과 초기화 시점이 달라야할 때가 있다.대부분 변수를 미리 선언해놓고, 초기화는 나중에(필요한 시점에) 하는 경우다.  그런 상황에서 단순히 다음과 같이 해결할 수 있다.var name = nullorvar name : String? = null// 초기화 시점name = "Oscar" 하지만, 위 방법은 사실 좋지 않은 방법이라고 볼 수 있다.  이전 코틀린 관련 포스팅 중, 코틀린 특징 파트에서 NPE에 대한 안정성을 언급했었다. [Kotlin] 코틀린 입문 / 코틀린이란? / 코틀린 특징OscarStory.. 코틀린으로 진화..!    사실 2~3년 전까지만 ..

Kotlin (코틀린) 2024.05.08

[Kotlin] 코틀린 래퍼 클래스 Wrapper Class

지난 포스팅에서 코틀린의 자료형에 대해 다루었고, 코틀린에서는 모든 자료형을 참조 타입으로 통일한다고 언급했었다.  이번 포스팅에서는 원시 타입과 참조 타입,코틀린에서의 래퍼 클래스에 대해 이야기해 볼까 한다.    먼저, 지난 포스팅에서 사용했던 예제를 간단히 보자. var age : Int = 29 int → Int ..! 원래 소문자를 사용하던 자료형을 대문자로 사용하고 있다. 별 것 아니라고 생각할 수도 있지만, 적어도 본인은 엄청난 일이라고 생각한다.애초에 자바에서 소문자와 대문자는 명확한 용도의 차이가 있었기 때문이다.  여러 용도 차이가 있지만 그 중에서도 가장 핵심은클래스와 클래스가 아닌 것으로 구분한다는 것이다. 모든 클래스의 이름은 대문자로 시작하게끔 네이밍하기에,변수나 메서드를 포함하..

Kotlin (코틀린) 2024.05.07

[Kotlin] 코틀린 자료형 / 타입 캐스팅 / 값 비교

이번 포스팅에서는 코틀린의 자료형에 대해 알아보자.   자료형  코틀린에서는 자료형을 원시 타입과 참조 타입으로 구분하지 않는다.모든 자료형은 참조 타입으로 통일되었다.  타입키워드정수형ByteShortIntLong실수형FloatDouble논리형Boolean문자형Char문자열String  원시 타입과 참조 타입에 대한 자세한 내용은 다음 포스팅에서 다뤄보겠다.지금은 단순히, 원시 타입이 아니기에 첫 글자를 대문자로 작성하는구나..! 정도만 알고 넘어가도 된다.     이 밖에도 Any 라는 자료형이 존재하는데,이는 코틀린 내 모든 자료형의 조상 격이라고 볼 수 있다. 따라서 모든 자료형을 대체할 수 있는데,간단한 예시와 함께 보자.   Int와 String을 사용한 간단한 출력문이다. val age: I..

Kotlin (코틀린) 2024.05.06