본문 바로가기

Kotlin

Kotlin의 suspend 키워드를 이용한 비동기 프로그래밍 Kotlin에서 suspend 키워드는 코루틴을 사용하여 비동기 프로그래밍을 할 때 사용합니다. suspend 함수는 코루틴 안에서 실행되며, 비동기 작업을 수행할 수 있게 해줍니다. 이 함수는 실행을 중단할 수 있고, 필요에 따라 나중에 다시 시작할 수 있습니다. 이런 특징 때문에 suspend 함수를 사용하면 메인 스레드를 차단하지 않으면서 비동기 작업을 간결하게 처리할 수 있습니다. suspend 함수의 특징 suspend 함수는 코루틴 스코프 내에서만 호출할 수 있습니다. suspend 함수 내부에서는 다른 suspend 함수를 호출할 수 있습니다. suspend 함수는 비동기 작업을 수행할 때 유용하며, delay(), async(), await()와 같은 코루틴 빌더와 함께 사용됩니다. sus.. 더보기
함수형 인터페이스 consumer, supplier, Function Java의 함수형 인터페이스인 Consumer, Supplier, 그리고 Function은 각각 특별한 유형의 작업을 수행하기 위해 사용됩니다. 아래에서 이들 각각에 대해 살펴보고 코틀린에서 어떻게 사용할 수 있는지 알아보겠습니다 1. Consumer Consumer 인터페이스는 입력을 받고 아무런 결과도 반환하지 않는 accept(T t) 메서드를 가집니다. 다시 말해, 이 함수형 인터페이스는 입력을 "소비"합니다. fun consume(consumer: (T) -> Unit, input: T) { consumer(input) } fun main() { val printConsumer: (String) -> Unit = { println(it) } consume(printConsumer, "Hello,.. 더보기
스프링 부트와 코틀린으로 구현하는 온라인 쇼핑몰 결제 서비스 API 오늘은 스프링 부트와 코틀린을 활용하여 온라인 쇼핑몰의 다양한 결제 수단을 지원하는 API를 개발해볼 것입니다. 특히, 팩토리 패턴을 이용하여 각 결제 수단에 대응되는 서비스를 효과적으로 구현하는 방법에 대해서 알아보겠습니다. 1. 결제 수단 및 2차 결제 수단 Enum 타입 정의 먼저, 결제 수단 및 2차 결제 수단을 Enum 타입으로 정의합니다. enum class CashPaymentType { CREDIT_CARD, BANK_TRANSFER } enum class SecondaryPaymentType { POINT, COUPON } 📌 여기서, CashPaymentType은 현금 결제 수단을, SecondaryPaymentType은 포인트나 쿠폰과 같은 2차 결제 수단을 나타냅니다. 2. 결제 서.. 더보기
Kotlin으로 동일한 숫자가 연속적으로 포함되어 있는지 확인하기 fun containsConsecutiveNumbers(target: String, count: Int): Boolean { for (i in 0 until target.length - count + 1) { val substring = target.substring(i, i + count) if (substring.toSet().size == 1) { return true } } return false } 안녕하세요! 오늘은 Kotlin을 활용하여 숫자만 포함된 문자열에서 특정 숫자가 연속적으로 주어진 카운트 수만큼 포함되어 있는지 확인하는 방법에 대해 알아보겠습니다. 1. 함수 설명: 우리가 작성한 containsConsecutiveNumbers 함수는 두 개의 파라미터를 받습니다: target: 검.. 더보기
URL의 파라미터값을 Kotlin에서 Map으로 변환하는 방법 fun decodeUrlParams(url: String): Map { val result = mutableMapOf() val urlParts = url.split("?") if (urlParts.size > 1) { val query = urlParts[1] val pairs = query.split("&") for (pair in pairs) { val keyValue = pair.split("=") if (keyValue.size > 1) { result[keyValue[0]] = keyValue[1] } } } return result } 1. 함수 설명: URL은 주로 ? 뒤에 key-value 쌍의 파라미터들을 가집니다. 예를 들어, http://example.com/page?name=Joh.. 더보기