Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20241020 Type Alias 본문

Kotlin

[TIL]20241020 Type Alias

최밤빵 2024. 10. 20. 17:04

타입 별칭(Type Alias) 은 긴 타입이나 복잡한 타입을 간결하게 표현하기 위해 코틀린에서 제공하는 기능이다. 예를 들어, 특정 타입을 간결하게 정의하고, 이후에 해당 별칭을 사용하여 가독성 높은 코드를 작성할 수 있게 한다.

 

▶타입 별칭(Type Alias) 이란?

타입 별칭(Type Alias)은 복잡하거나 긴 타입을 간결하게 표현하기 위해 새로운 이름을 부여하는 기능이다. 주로 함수 타입, 제네릭 타입, 중첩된 타입 등을 간결하게 표현할 때 유용하다. 별칭을 사용함으로써 코드를 좀 더 읽기 쉽고 유지보수하기 쉽게 만들 수 있다. 타입 별칭을 선언하는 방법은 typealias 키워드를 사용한다.

typealias MyString = String

→ String 타입에 MyString이라는 별칭을 부여한 예시로, 이후로는 String 대신 MyString이라는 별칭을 사용할 수 있다. MyString이 String을 완전히 대체하는 것이 아니라, 동일한 타입으로 간주되면서도 좀 더 의미 있는 이름을 제공할 수 있다는 장점이 있다.

 

▶타입 별칭 사용법

타입 별칭은 복잡한 함수 타입이나 제네릭 타입을 단순화하여 코드 가독성을 높이는 데 주로 사용된다. 예를 들어, 다음과 같이 복잡한 함수 타입을 간단히 정의할 수 있다.

 

▷예시 1: 함수 타입에 타입 별칭 적용하기

typealias StringTransformation = (String) -> String

fun transformString(input: String, transformation: StringTransformation): String {
    return transformation(input)
}

fun main() {
    val result = transformString("Hello, Kotlin!") { it.uppercase() }
    println(result)  // 출력: HELLO, KOTLIN!
}

StringTransformation은 (String) -> String 함수 타입에 대한 별칭으로, 문자열을 입력받아 변환한 후 문자열을 반환하는 함수 타입을 나타낸다.

transformString 함수는 StringTransformation 타입의 함수를 받아서 문자열을 변환하는 함수이다.

이처럼 함수 타입을 별칭으로 정의함으로써, 코드의 가독성을 높일 수 있고, 복잡한 타입을 쉽게 이해할 수 있다.

 

▷예시 2: 제네릭 타입에 타입 별칭 적용하기

typealias UserMap = Map<Int, String>

fun getUserMap(): UserMap {
    return mapOf(1 to "Alice", 2 to "Bob", 3 to "Charlie")
}

fun main() {
    val users = getUserMap()
    println(users)  // 출력: {1=Alice, 2=Bob, 3=Charlie}
}

UserMap은 Map<Int, String> 타입에 대한 별칭이다. 이는 사용자 ID와 이름을 저장하는 Map을 나타낸다.

getUserMap 함수는 UserMap 타입을 반환하며, 이는 복잡한 제네릭 타입을 간결하게 표현하는 좋은 방법이다.

 

▶타입 별칭의 장점

 

▷코드 가독성 향상

→ 긴 타입이나 복잡한 타입을 간결하게 표현함으로써 코드의 가독성이 크게 향상된다. 함수 타입이나 제네릭 타입이 복잡할수록 별칭을 통해 코드의 흐름을 쉽게 이해할 수 있다.

▷유지보수성 증가

→ 타입 별칭을 사용하면 코드의 유지보수성이 증가한다. 나중에 타입이 변경되더라도 타입 별칭을 한 곳에서만 수정하면 되어, 변경 사항을 쉽게 관리할 수 있다.

▷의미 있는 타입 이름 제공

→ 기본 타입(String, Int, List<T> 등)에 의미 있는 이름을 부여함으로써, 코드에서 해당 타입이 어떤 역할을 하는지 더 명확하게 전달할 수 있다. 예를 들어, UserId나 UserMap과 같은 이름은 해당 타입의 의도를 분명히 보여준다.

 

주의할 점

타입 별칭은 단순히 가독성과 유지보수를 위한 도구일 뿐, 새로운 타입을 정의하는 것은 아니다. 타입 별칭을 사용하더라도 실제 타입은 여전히 동일하다. 예를 들어, typealias MyInt = Int로 정의한 후, Int 타입과 MyInt 타입은 완전히 동일하게 취급된다.

 

타입 별칭(Type Alias) 은 코드의 가독성을 높이고 유지보수를 쉽게 할 수 있는 유용한 기능이다. 특히, 함수 타입이나 제네릭 타입을 자주 사용하는 코드에서는 큰 이점을 제공한다.