Kotlin 3

[Kotlin] 코틀린에서 tailrec 을 사용하는 이유

코틀린에는 재귀 함수에 적용할 수 있는 tailrec 이라는 키워드가 있다.tailrec 에 대해 공부하면서tailrec 을 사용하는 이유를 좀 더 구체적으로 알아내기 위해 고민한 내용들을 공유해보고자 한다.재귀 함수와 반복문tairec 에 대해 알아보기 전에 재귀 함수 에 대해 간단히 살펴보자 재귀 함수 란 함수 안에서 자기 자신을 다시 호출하는 함수를 말한다.1 부터 5 까지 더하는 작업을 재귀 함수 를 이용하면 다음과 같이 작성할 수 있다.add(1)fun add(num: Int): Int { return if (num == 5) num else num + add(num + 1)} 위 함수의 실행 과정을 그림으로 표현하면 아래와 같다.따라서 add(1) 이 한 번 수행될 때 총 5 개의 스택 ..

학습 2025.09.20

[Java, Kotlin] UnsupportedClassVersionError 해결하기

Exception in thread "main" java.lang.UnsupportedClassVersionErrorUnsupportedClassVersionErrorUnsupportedClassVersionError 는 Java 혹은 Kotlin 에서실행 환경이 잘못 설정돼있을 때 발생할 수 있는 에러 중 하나이다.해당 에러는 실행하고자 하는 class 파일 버전 과 프로젝트 JRE(자바 실행 환경) 가 호환되지 않을 때 발생한다. 간단히 설명하자면각 JDK 버전마다 실행 가능한 class 파일의 최대 버전이 정해져있고이 버전을 넘어서는 class 파일을 실행했을 때 발생한다. 보통 IDE 에서 처음 프로젝트를 생성할 때JDK 버전을 수동으로 설정하고 프로젝트를 생성하면서 해당 에러가 발생할 수 있다...

개발 이슈 2025.09.20

[Kotlin] 코틀린에서 람다식을 사용하는 이유

코틀린에는 이름이 없는 람다식이라는 것이 있다.이 람다식을 공부하면서 문득 이런 물음이 생겼다.이름도 존재하고 형식도 익숙한 일반 함수가 이미 존재하는데, 왜 굳이 람다식을 사용하는걸까? 이 물음에 대한 나만의 답을 공유해보고자 한다! 함수형 프로그래밍 언어의 특징일반 함수와 람다식의 차이를 알아보기 전에 꼭 짚어야할 점이 있다.바로, 코틀린은 함수형 프로그래밍 언어라는 점이다.(함수형 프로그래밍이 외부 환경과 독립적인 순수 함수를 지향하는 프로그래밍 방식이라는 점만 대략적으로 알고 넘어가자) 보통 함수형 프로그래밍 언어에서는 함수를 하나의 객체로 다루는 것이 가능하기 때문에함수 자체를 다른 함수의 입출력으로 사용할 수가 있다. 이로 인해서 무엇이 달라지는 걸까?우리가 자주 사용하는 find() 를 예로..

학습 2025.09.20