본문 바로가기

Kotlin8

Kotlin in Action #7. 연산자 오버로딩과 기타 관례 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 7. 연산자 오버로딩과 기타 관례 언어 기능을 타입에 의존하는 자바와 달리 코틀린은 함수 이름을 통한 관례에 의존한다는 점이 특징이다. 이러한 관례를 선택한 이유는 기존 자바와 호환성을 맞춰야 하는데, 코틀린 쪽에서 자바 인터페이스를 변경할 수 없기 때문이다. 코틀린은 기존 자바 코드를 바꾸지 않음에도 새로운 기능을 부여할 수 있다. 산술 연산자 오버로딩 코틀린에서 관례를 사용하는 가장 단순한 예는 산술연산자이다. 자바에서는 원시 타입과 String 타입에 대해서만 + 연산자를 사용할 수 있다. 코틀린에서는 다른 클래스에 대해서도 산술연산자를 사용할 수 있게 기능을 정의할 수 있다. 이항 산술 연산 오버로딩 Plus data class를.. 2021. 8. 16.
Kotlin in Action #6. 코틀린 타입 시스템 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 6. 코틀린 타입 시스템 null 가능성 코틀린에서는 null에 문제점을 컴파일 시점으로 옮겼다. null이 될 수 있는지 여부를 타입 시스템에 추가함으로써 컴파일러가 컴파일 시 미리 감지 할 수 있기 때문에 실행 시점에 발생할 수 있는 가능성을 줄였다. null이 될 수 있는 타입 자바의 차이점으로 코틀린은 타입 시스템이 null이 될 수 있는 타입을 명시적으로 지원한다. 타입 이름 뒤에 물음표를 붙이면, 타입의 변수나 프로퍼티에 null 참조를 저장할 수 있다. 물음표가 없는 타입은 null 참조를 할 수 없으며, 컴파일 시 에러가 발생한다. val number1: Integer? = null val number2: Integer =.. 2021. 8. 16.
Kotlin에서 SLF4J Logger 객체 생성 방법 Java에서는 Logger 객체를 직접 개발자가 생성하지 않고, Lombok의 @Slf4j 어노테이션을 클래스 레벨에 붙여서 사용합니다. Kotlin에서는 Lombok을 잘 사용하지 않기도 하고, Logger 객체를 생성하는 다양한 방법이 있지만 현재 프로젝트에서는 간단하게 아래와 같은 코드로 사용하고 있습니다. class TestClass { private val log = LoggerFactory.getLogger(javaClass) fun testMethod() { log.info("test log") } } 매번 LoggerFactory를 사용하는 동일한 코드를 반복하기 싫으면, 아래 링크를 통해 3가지 방법은 참고 할 수 있습니다. https://www.reddit.com/r/Kotlin/com.. 2021. 8. 16.
Kotlin in Action #3. 함수 정의와 호출 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 3. 함수 정의와 호출 코틀린에서 함수 정의와 호출하는 방법에 대해서 살펴보는 것을 중점으로 한다. 그리고 더 나아가 확장 함수 및 프로퍼티를 사용함으로써 코틀린이 자바와 함께 사용했을 때 어떤 장점이 있는지 알아보자. 코틀린에서 컬렉션 만들기 코틀린에서 set, list, map 컬렉션 객체를 생성하고 어떤 클래스에 속하는지 출력하면 익숙한 텍스트를 볼 수 있다. fun main(args: Array) { var set = hashSetOf(1, 5, 10) var list = arrayListOf(1,2,3) var map = hashMapOf(1 to "one", 3 to "three", 5 to "five") println(set.. 2020. 2. 23.
Kotlin in Action #2. 코틀린 기초 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 2. 코틀린 기초 이번에는 모든 프로그램에서 필수 요소인 변수, 함수, 클래스 등을 코틀린에서 어떻게 선언하고 활용하는지 살펴본다. 또한, 제어 구조문과 스마트 캐스트, 예외처리에 대해서도 알아본다. 함수와 변수 Hello World 프로그램 Hello World를 콘솔에 출력하는 프로그램을 만들어보자. 코틀린에서는 함수 하나로 쉽게 만들 수 있다. fun main(args: Array) { println("Hello World") } 함수를 선언할 때 fun 키워드를 사용한다. 자바와 다르게 파라미터 이름 뒤에 파라미터 타입을 쓴다. 함수를 클래스 안이 아닌 최상위 수준에 정의할 수 있다. 배열도 일반적인 클래스와 마찬가지이다. 코틀린.. 2020. 2. 17.
Kotlin in Action #1. 코틀린 시작하기 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 1. 코틀린 시작하기 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 자바 코드와의 상호운용성이 가능하며 간결하고 실용적이다. 안드로이드 앱 뿐만 아니라 서버 개발에서도 사용 할 수 있다. 코틀린 코드 맛보기 이번 예제에서는 Person 클래스를 정의하고, 여러 Person을 모아둔 컬렉션을 만들어서 가장 나이가 많은 사람을 찾아 결과를 출력해보는 코드를 작성해본다. // Person 데이터 클래스 data class Person(val name: String, val age: Int ?= null) fun main(args: Array) { // Person 컬렉션 생성 val persons = listOf( Person.. 2020. 2. 17.