본문 바로가기

전체 글158

Kotlin에서 람다의 라벨링 Kotlin은 함수와 람다를 매우 강력하게 지원하는 언어입니다. 때로는 람다 안에 람다, 또는 여러 개의 람다를 중첩해서 사용하는 경우도 많습니다. 이럴 때, 특정 람다의 return을 원할 때 또는 특정 람다를 참조하고 싶을 때, 람다에 라벨링을 사용하게 됩니다. 라벨링의 필요성 람다 내부에서 return 키워드를 사용하면, 기본적으로 가장 깊은 람다를 빠져나오게 됩니다. 이를 '비로컬 리턴'이라고 부릅니다. 그러나 때로는 바로 상위의 람다나 특정 람다에서만 리턴하고 싶을 경우가 있습니다. 이럴 때 라벨을 사용하면 특정 람다의 범위에서만 return을 할 수 있습니다. 라벨링의 사용법 라벨은 @라벨이름 형식으로 작성하며, 람다 앞에 붙여 사용합니다. 예제를 통해 자세히 알아보겠습니다. fun main(.. 2023. 8. 23.
Spring에서 JPA사용하기 (Transaction, 예외 처리) Spring에서 JPA 사용하기 첫 번째 글에서는 기본적인 CRUD 연산에 대해서 알아봤습니다. 오늘은 좀 더 심화된 주제로, 트랜잭션 관리와 예외 처리에 대해 함께 알아보도록 하겠습니다. 🔄 트랜잭션의 중요성 트랜잭션은 데이터베이스 연산의 단위를 의미합니다. 은행 계좌 이체를 예로 들면, A계좌에서 돈을 빼는 작업과 B계좌에 돈을 넣는 작업이 모두 성공해야 합니다. 만약 B계좌에만 돈이 들어가면 문제가 발생하겠죠? 이렇게 연산의 원자성을 보장하는 것이 트랜잭션의 중요한 역할입니다. 🛠 Spring에서의 트랜잭션 관리 Spring에서는 @Transactional 어노테이션을 사용하여 메서드 또는 클래스에 트랜잭션을 적용할 수 있습니다. Service import org.springframework.ste.. 2023. 8. 18.
Spring에서 JPA 사용하기(환경 설정부터 기본 CRUD 까지) 이번 글에서는 Spring Data JPA와 Kotlin을 활용하여 간단한 CRUD 작업을 어떻게 수행하는지 함께 알아보겠습니다. JPA는 자바 플랫폼에서 RDBMS를 객체 지향적으로 쉽게 다룰 수 있게 도와주는 ORM입니다. 그리고 Spring Data JPA는 이를 더욱 쉽게 사용할 수 있게 도와줍니다. 🛠 환경 설정 기본적인 환경은 Spring, Gradle, Kotlin 입니다. 먼저, 프로젝트의 build.gradle.kts 파일에 필요한 의존성을 추가해줍니다: plugins { // ... 기타 플러그인들 } dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("o.. 2023. 8. 18.
Builder 패턴이란? (feat. Kotlin의 코드 간결성 찬양) Builder 패턴은 객체 생성 과정과 표현 방식을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 생성할 수 있게 하는 패턴입니다. 복잡한 객체의 생성과정을 단계별로 나눠 명확하게 표현하며, 필요한 경우에만 특정 메소드를 호출하여 객체를 생성할 수 있습니다. Java에서의 Builder 패턴 예제 public class Computer { private String CPU; private String RAM; private String storage; private Computer(Builder builder) { this.CPU = builder.CPU; this.RAM = builder.RAM; this.storage = builder.storage; } public static class B.. 2023. 8. 17.
728x90