본문 바로가기

Kotlin

(5)
코틀린, 코틀린답게 사용하기 - 5. Nullable Type 이번 포스팅에서는 코틀린의 가장 큰 장점 중 하나인 널이 될 수 있는 타입에 대하여 알아보겠습니다 1. Nullable Type, Non-Null Type Kotlin in Action 6장 앞부분에서는 다음과 같이 소개합니다. 코틀린과 자바의 첫 번째이자 가장 중요한 차이는 코틀린 타입 시스템이 널이 될 수 있는 타입을 명시적으로 지원한다는 점이다. 자바에 익숙했던 제가 처음에 공부할 때는 이게 왜 중요한 차이인지 잘 모르겠고 그냥 그런갑다~ 했었는데.. 공부를 하다가보니 머리속에서는 이렇게 남아있게 되었고 다시 돌아간다고 생각하면..🙀 자바에서는 같은 타입일지라도 코틀린에서는 널이 될 수 있는 타입과 될 수 없는 타입 두가지로 분류된다. - Non-Null: 널이 될 수 없는 타입은 말 그대로 Nul..
코틀린, 코틀린답게 사용하기 - 4. Lambda 자바에서는 메서드를 파라미터로 넘길 수가 없어서, 메서드가 하나만 존재하는 특별한 인터페이스를 만들고 무명클래스를 이용하여 전달하곤합니다. 하지만 함수형언어인 코틀린에서는 함수를 일반 값처럼 다룰 수 있어서 변수에 저장할 수 있고, 다른 함수에 전달할 수 있습니다! 람다는 이 특별한 인터페이스를 대체할 수 있고, 함수형 API 와 확장함수가 더해져 많은 기능을 할 수 있습니다. 이번 포스팅에서는 코틀린에서 람다의 특징과 관례들에 대해서 알아보려고합니다. 1. Closure 코틀린에서는 람다 밖 함수에 있는 변수에 접근할 수 있고, 변경할 수도 있습니다. 자바와 달리 코틀린에서는 람다 외부에 있는 final이 아닌 변수에 접근할 수 있습니다. fun printProblemCounts(responses: C..
코틀린, 코틀린답게 사용하기 - 3. Class 이번 포스팅에서는 클래스를 다루는 측면에서 자바와 같은 기능을 하지만 더 효율적으로 수행하고있는 부분에 대해서 알아보려고합니다. 1. 생성자 @Service public class AccountService { private final AccountRepository accountRepository; private final PasswordEncoder passwordEncoder; @Autowired public AccountService(AccountRepository accountRepository, PasswordEncoder passwordEncoder) { this.accountRepository = accountRepository; this.passwordEncoder = passwordEn..
코틀린, 코틀린답게 사용하기 - 2. Extensions 자바에 익숙한 제가 코틀린을 처음 사용했을때 자바에서는 못보던 유틸성 메서드들이 코틀린에서 새롭게 추가된 것을 확인할 수 있었습니다. 처음에는 뭐 새롭게 추가됐나보다 하고 넘겼었는데 가만히 생각해보니, 코틀린은 자바와 100% 호환성을 목표로하고있다는데.. 기존 자바 API에 추가하지않고 어떻게 이런기능들을 제공하는지 궁금해졌습니다. 이 부분에 대해서 Kotlin in action 3장 - 함수 정의와 호출 에서 자세하게 다루고있는데, 대표적으로 자주 사용되는 함수인 joinToString() 을 구현하면서 알아보도록 하겠습니다. val numbers = listOf(1, 2, 3, 4, 5, 6) println(numbers.joinToString()) // 1, 2, 3, 4, 5, 6 println..
코틀린, 코틀린답게 사용하기 - 1. Expression Java 에는 Effective Java 라는 유명한 지침서가 있습니다. 코틀린을 주로 다뤄야하는 환경으로 오면서 코틀린을 코틀린답게 사용하기위해 Kotlin계의 이펙티브자바인 Kotlin in action 을 공부하고있습니다. Kotlin in action 에서 다루는 내용들을 바탕으로 기억해야 할 것들을 정리하려고 합니다. 해당코드는 github에서 확인할 수 있습니다. 코틀린에서 문(statement) 과 식(expression) 의 구분 코틀린에서 if, when 등 루프를 제외한 대부분의 제어 구조 등은 자바와 달리 expression 입니다. 이로인한 효과에 대해서 알아보려고합니다. statement 와 expression 는 쉽게 혼동하기 쉬운 개념입니다. 코틀린에서 statement 와 e..