본문 바로가기

전체 글104

개발 시 사이드 이펙트(Side Effect)란? 사이드 이펙트는 프로그래밍에서 어떤 함수나 연산의 수행 결과로 시스템의 상태가 예상치 못하게 변경되는 현상을 말합니다. 순수 함수(pure function)는 같은 입력 값에 대해 항상 동일한 결과를 반환하고 사이드 이펙트를 일으키지 않습니다. 그러나 많은 함수는 내부 상태나 외부의 시스템 상태를 변경하는 동작을 포함하며, 이런 동작이 종종 사이드 이펙트를 초래합니다. 사이드 이펙트 예시: var globalVar = 0 fun addWithSideEffect(x: Int, y: Int): Int { globalVar += x return x + y } 위의 addWithSideEffect 함수는 두 숫자를 더하는 것 외에 전역 변수 globalVar의 값을 변경하는 사이드 이펙트를 갖습니다. Sprin.. 2023. 8. 24.
Kotlin의 `filter`와 `map` 함수 Kotlin은 콜렉션의 처리를 위한 강력한 API를 제공합니다. 그 중에서도 filter와 map 함수는 데이터 변환 및 처리에서 가장 널리 사용되는 함수들 중 두 개입니다. 1. filter 함수 filter는 주어진 조건을 만족하는 요소만을 선택하여 새로운 콜렉션을 생성합니다. 함수는 Boolean 값을 반환하는 람다를 인자로 받습니다. true를 반환하는 요소만 새로운 콜렉션에 포함됩니다. val numbers = listOf(1, 2, 3, 4, 5, 6) val evenNumbers = numbers.filter { it % 2 == 0 } // 결과: [2, 4, 6] 여기서, it은 현재 처리중인 요소를 가리킵니다. 2. map 함수 map은 주어진 콜렉션의 각 요소를 변환하여 새로운 콜렉션.. 2023. 8. 24.
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.