학습
Kotlin 코틀린 표준 라이브러리 기초
Kotlin 코틀린 표준 라이브러리 기초 — 초급
코틀린 표준 라이브러리 기초
1. 도입 (왜 배워야 하는가)
코틀린은 현대적인 프로그래밍 언어로, 특히 안드로이드 개발에서 많이 사용됩니다. 코틀린의 표준 라이브러리는 개발자가 코드를 더 간결하고 효율적으로 작성할 수 있도록 돕는 다양한 기능을 제공합니다. 표준 라이브러리를 잘 활용하면 코드의 가독성이 높아지고, 유지보수가 쉬워지며, 개발 시간도 단축할 수 있습니다.
반면, 이 표준 라이브러리를 모른다면, 기본적인 기능을 직접 구현해야 하므로 불필요한 시간과 노력을 소모하게 됩니다. 예를 들어, 리스트를 정렬하려고 할 때 표준 라이브러리를 사용하지 않으면 정렬 알고리즘을 직접 구현해야 할 수 있습니다. 이는 시간 낭비일 뿐만 아니라 코드의 복잡성을 증가시킵니다.
2. 핵심 개념 설명
코틀린 표준 라이브러리는 다양한 데이터 구조와 기능을 제공합니다. 여기서는 몇 가지 중요한 개념을 소개합니다.
| 개념 | 설명 |
|---|---|
| List | 여러 개의 값을 순차적으로 저장하는 데이터 구조입니다. 배열과 비슷하지만 크기가 동적으로 변할 수 있습니다. |
| Map | 키-값 쌍으로 데이터를 저장하는 구조로, 특정 키를 통해 값을 쉽게 검색할 수 있습니다. |
| Set | 중복되지 않는 값을 저장하는 데이터 구조입니다. 특정 값의 존재 여부를 빠르게 검사할 수 있습니다. |
실생활 비유:
- List는 장바구니에 담은 물건들을 나열하는 것과 같습니다. 장바구니에는 여러 물건을 담을 수 있고, 필요에 따라 물건을 추가하거나 제거할 수 있습니다.
- Map은 전화번호부와 같습니다. 사람의 이름(키)을 통해 해당 사람의 전화번호(값)를 쉽게 찾을 수 있는 구조입니다.
- Set은 도서관의 책 목록과 비슷합니다. 각 책은 고유한 ISBN 번호를 가지고 있어 중복된 책이 존재하지 않습니다.
3. 기본 코드 예제
아래는 리스트를 생성하고 값을 추가하는 기본적인 예제입니다.
fun main() {
// 비어 있는 리스트 생성
val shoppingList = mutableListOf<String>()
// 아이템 추가
shoppingList.add("사과")
shoppingList.add("바나나")
shoppingList.add("오렌지")
// 리스트 출력
println(shoppingList)
}
실행 결과:
[사과, 바나나, 오렌지]
코드 한 줄씩 동작 설명:
fun main() {- 프로그램의 시작점인main함수를 정의합니다.val shoppingList = mutableListOf<String>()- 문자열을 담을 수 있는 비어 있는 리스트를 생성합니다.shoppingList.add("사과")- 리스트에 "사과"를 추가합니다.shoppingList.add("바나나")- 리스트에 "바나나"를 추가합니다.shoppingList.add("오렌지")- 리스트에 "오렌지"를 추가합니다.println(shoppingList)- 리스트의 내용을 출력합니다.- 코틀린 표준 라이브러리를 활용하면 코드의 효율성과 가독성을 높일 수 있다.
- 리스트, 맵, 세트와 같은 데이터 구조를 이해하고 활용하는 것이 중요하다.
- 실무에서 자주 사용하는 패턴을 익혀야 한다.
mutableListOf,mutableMapOf와 같은 변경 가능한 구조를 적절히 사용해야 한다.- 코틀린의 고차 함수와 람다 표현식
- 코틀린 확장 함수
- 코틀린의 컬렉션 함수 (filter, map, reduce 등)
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 구현하기
장바구니에 아이템을 추가하고 총 가격을 계산하는 예제입니다.
data class Item(val name: String, val price: Double)
fun main() {
val cart = mutableListOf<Item>()
cart.add(Item("사과", 1000.0))
cart.add(Item("바나나", 800.0))
cart.add(Item("오렌지", 1200.0))
val total = cart.sumOf { it.price }
println("장바구니의 총 가격: $total 원")
}
실행 결과:
장바구니의 총 가격: 3000.0 원
상황 설명: 쇼핑몰에서 고객이 장바구니에 상품을 담고, 그 총 가격을 계산하는 기능을 구현하는 경우에 사용됩니다.
예제 2: 사용자 정보 관리
사용자의 이름과 나이를 관리하는 맵을 사용하는 예제입니다.
fun main() {
val userMap = mutableMapOf<String, Int>()
userMap["홍길동"] = 30
userMap["김철수"] = 25
userMap["이영희"] = 28
// 특정 사용자의 나이 출력
println("홍길동의 나이: ${userMap["홍길동"]}세")
}
실행 결과:
홍길동의 나이: 30세
상황 설명: 사용자 정보를 효율적으로 관리하고 검색하는 데 맵 구조를 활용합니다.
5. 흔한 실수와 주의사항
실수 1: 리스트를 변경할 수 없는 경우
val shoppingList = listOf("사과", "바나나")
// shoppingList.add("오렌지") // 오류 발생
올바른 코드:
val shoppingList = mutableListOf("사과", "바나나")
shoppingList.add("오렌지") // 정상 작동
주의사항:listOf로 생성된 리스트는 변경할 수 없으므로, 값을 추가하려면mutableListOf를 사용해야 합니다.
실수 2: 맵에서 키를 잘못 사용한 경우
val userMap = mutableMapOf("홍길동" to 30)
println(userMap["김철수"]) // null 출력
올바른 코드:
println(userMap.getOrDefault("김철수", "사용자 없음")) // 사용자 없음 출력
주의사항: 맵에서 존재하지 않는 키로 접근할 경우null이 반환됩니다.getOrDefault를 사용하여 기본값을 설정할 수 있습니다.