IMCAT.DEV
로그인 가입
Kotlin 입문 도구

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)
    }

    실행 결과:

    [사과, 바나나, 오렌지]

    코드 한 줄씩 동작 설명:

    1. fun main() { - 프로그램의 시작점인 main 함수를 정의합니다.
    2. val shoppingList = mutableListOf<String>() - 문자열을 담을 수 있는 비어 있는 리스트를 생성합니다.
    3. shoppingList.add("사과") - 리스트에 "사과"를 추가합니다.
    4. shoppingList.add("바나나") - 리스트에 "바나나"를 추가합니다.
    5. shoppingList.add("오렌지") - 리스트에 "오렌지"를 추가합니다.
    6. println(shoppingList) - 리스트의 내용을 출력합니다.
    7. 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를 사용하여 기본값을 설정할 수 있습니다.

      6. 정리

    8. 코틀린 표준 라이브러리를 활용하면 코드의 효율성과 가독성을 높일 수 있다.
    9. 리스트, 맵, 세트와 같은 데이터 구조를 이해하고 활용하는 것이 중요하다.
    10. 실무에서 자주 사용하는 패턴을 익혀야 한다.
    11. mutableListOf, mutableMapOf와 같은 변경 가능한 구조를 적절히 사용해야 한다.
    12. 다음에 학습하면 좋은 주제

    13. 코틀린의 고차 함수와 람다 표현식
    14. 코틀린 확장 함수
    15. 코틀린의 컬렉션 함수 (filter, map, reduce 등)