밤빵's 개발일지
[TIL]20241020 Type Alias 본문
타입 별칭(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) 은 코드의 가독성을 높이고 유지보수를 쉽게 할 수 있는 유용한 기능이다. 특히, 함수 타입이나 제네릭 타입을 자주 사용하는 코드에서는 큰 이점을 제공한다.
'Kotlin' 카테고리의 다른 글
[TIL]20241022 단일 표현식 함수(Single-Expression Function) (2) | 2024.10.22 |
---|---|
[TIL]20241021 문자열 자르기&합치기 (6) | 2024.10.21 |
[TIL]20241019 비트연산자 (0) | 2024.10.19 |
[TIL]20241018 const 와 val의 차이 (0) | 2024.10.19 |
[TIL]20241017 const (0) | 2024.10.17 |