전체 글

항상 부족합니다. 목표를 이룰 때 까지 계속 달리겠습니다.
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Java 개발자에게 Kotlin의 코루틴은 익숙한 Thread, ExecutorService, CompletableFuture 등과는 전혀 다른 개념처럼 느껴질 수 있습니다. 하지만 실제로는 동시성과 비동기 처리를 더 안전하고 선언적으로 표현하기 위해 만들어진 경량 스레드 모델입니다. 이번 글에서는 코루틴의 개념을 이해하고, Java의 기존 방식들과 비교하여 어떤 점이 다른지, 왜 더 나은 선택지가 될 수 있는지 살펴보겠습니다. 🔹 1. Java에서의 비동기 처리 방식✅ 1) Thread 또는 Runnablenew Thread(() -> { System.out.println("비동기 작업 수행 ..
안녕하세요. dev_writer입니다. 작년 Spring AI가 처음 나왔을 때 당시보다 시간이 꽤 지난 것 같아, 오랜만에 Spring AI에 대한 글을 다시 연재해보려고 합니다. 글을 작성하는 시점인 25년 4월 기준으로 릴리즈 된 1.0.0-M6 버전까지의 활용법을 다룰 예정입니다. 아직 안정화된 버전이 아닌 만큼, 작년의 글처럼 본 내용도 추후 deprecated 될 수 있는 부분들이 있다는 점을 감안해 주시면 좋을 것 같습니다. 공식 문서와 Dan Vega의 Spring AI 영상, 그리고 추가적인 Spring AI 자료를 참고하여 작성하겠습니다. 첫 번째 글은 Spring AI 공식 문서의 첫 페이지부터 살펴보겠습니다. Spring AISpring AI는 인공지능 엔지니어링을 위한 애플리케이션..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Kotlin은 Java와 마찬가지로 예외 기반 (exception-based) 오류 처리를 기본으로 채택하고 있습니다. 그러나 Kotlin은 함수형 스타일의 예외 처리 방식인 runCatching, Result, recoverCatching 등을 통해 보다 표현력 있고 선언적인 코드 작성을 가능하게 합니다.🔹 1. 기본 예외 처리 - try-catch-finallyfun divide(a: Int, b: Int): Int { return try { a / b } catch (e: ArithmeticException) { println("0으로 나눌 수 없습니다.") ..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Kotlin에서는 여러 분기 (branching)나 상태 (state)를 표현할 때 enum class와 sealed class 둘 다 사용할 수 있습니다. 두 구조 모두 "한정된 집합"을 표현하지만, 표현력, 확장성, 타입 안정성 측면에서 서로 다른 특징을 가집니다. 이번 글에서는 이 둘의 차이와 언제 어떤 것을 사용해야 하는지를 중심으로 정리해 보겠습니다. 🔹 1. enum class란?enum class는 Java에서 유래한 구조로, 고정된 상수 집합을 표현할 때 사용합니다.enum class Direction { NORTH, SOUTH, EAST, WEST}상수 집합 정의에 적합각 항목은..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Kotlin은 고차 함수와 람다를 매우 자연스럽게 지원하는 언어입니다.하지만 람다의 사용은 런타임 성능에 영향을 줄 수 있는 추가 비용을 발생시키기도 합니다. 이 문제를 해결하기 위해 Kotlin은 inline, noinline, crossinline이라는 키워드를 제공하여 함수 호출, 람다 전달, 제어 흐름 최적화를 조절할 수 있도록 합니다. 이번 글에서는 이 키워드들의 개념과 차이, 그리고 실무에서의 활용 시점을 함께 알아보겠습니다. 🔹 1. inline 함수란?inline 키워드는 함수 호출 자체를 컴파일 타임에 해당 코드로 대체 (inline) 하도록 요청하는 기능입니다.inline fun l..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Kotlin은 데이터 구조를 다룰 때, 변수 하나하나를 직접 꺼내 쓰기보다는 간결하게 분해해 사용하는 문법을 제공합니다.이것이 바로 비구조화 선언 (Destructuring Declaration)입니다. Java에는 없는 이 문법은 Kotlin에서 특히 data class, Pair, Map, 컬렉션, 반복문 등에서 자주 활용되며, 코드의 가독성과 표현력을 높여줍니다. 🔹 1. 기본 문법 - data class 해체data class User(val name: String, val age: Int)val user = User("Alice", 30)val (name, age) = userprintln(..
dev_writer
Always Be Curious