[kotlin] 코틀린에서의 데이터 변환과 매핑에 대한 규칙

코틀린은 객체 지향 프로그래밍함수형 프로그래밍의 장점을 결합한 현대적인 언어입니다. 이 언어에서는 데이터 변환과 매핑이 매우 중요한데, 이 글에서는 코틀린에서의 데이터 변환과 매핑에 대한 주요 규칙을 살펴보겠습니다.

1. 데이터 변환

코틀린에서는 데이터 변환을 위해 다양한 방법을 제공합니다. 자료형 변환, 컬렉션 변환, DTO 변환 등이 주요 항목으로 다루어집니다.

1.1 자료형 변환

코틀린에서의 자료형 변환은 to 키워드를 사용하여 간단하게 수행할 수 있습니다. 예를 들어, IntLong으로 변환하고 싶을 때는 다음과 같이 코드를 작성할 수 있습니다.

val intNumber: Int = 10
val longNumber: Long = intNumber.toLong()

1.2 컬렉션 변환

컬렉션의 요소를 변환하거나 새로운 컬렉션을 생성하기 위해서는 map, flatMap 등의 고차함수를 사용할 수 있습니다. 아래의 예제는 리스트에서 각 요소를 제곱하여 새로운 리스트를 생성하는 방법을 보여줍니다.

val originalList = listOf(1, 2, 3, 4, 5)
val squaredList = originalList.map { it * it }

1.3 DTO 변환

DTO(데이터 전송 객체)는 외부 API와의 데이터 송수신이나 데이터 엔티티와의 매핑 등에서 주로 사용됩니다. 코틀린에서는 주로 Data class를 통해 DTO를 정의하고, 필요한 경우 copy 함수를 통해 변환합니다. 아래는 User DTO를 UserDto로 변환하는 예제입니다.

data class User(val id: Int, val name: String)

val user = User(1, "Alice")
val userDto = user.copy()

2. 데이터 매핑

코틀린에서의 데이터 매핑은 일반적으로 컬렉션의 각 요소를 특정 형태로 변환하는 작업을 의미합니다. 이러한 매핑 작업은 주로 map 함수를 이용하여 수행됩니다.

2.1 컬렉션의 요소 매핑

컬렉션의 각 요소를 특정 형태로 매핑하기 위해서는 map 함수를 사용합니다. 예를 들어, 아래의 코드는 리스트의 요소를 문자열로 변환하는 예제입니다.

val numbers = listOf(1, 2, 3, 4, 5)
val stringNumbers = numbers.map { it.toString() }

2.2 객체 매핑

컬렉션 속 객체를 다른 형태의 객체로 매핑하기 위해서는 map 함수를 사용하여 각 객체를 원하는 형태로 변환할 수 있습니다. 아래의 예제는 User 목록을 UserDto 목록으로 매핑하는 방법을 보여줍니다.

data class User(val id: Int, val name: String)
data class UserDto(val id: Int, val fullName: String)

val users = listOf(User(1, "Alice"), User(2, "Bob"))
val userDtos = users.map { UserDto(it.id, it.name) }

마무리

코틀린에서의 데이터 변환과 매핑에 대한 이러한 규칙을 숙지하고 활용한다면, 더 깔끔하고 효율적인 코드를 작성하는 데 도움이 될 것입니다. 자료형 변환, 컬렉션 변환, DTO 변환 및 데이터 매핑 등을 올바르게 활용하여 읽기 좋은 코드를 작성하고, 개발 생산성을 향상시킬 수 있습니다.

이상으로 코틀린에서의 데이터 변환과 매핑에 대한 내용을 살펴보았습니다.

자료 출처: Kotlin 공식 문서