IMCAT.DEV
로그인 가입
Scala 입문 자료구조

Scala 자료형 (Types)

Scala 자료형 (Types) — 초급

자료형 (Types)

1. 도입 (왜 배워야 하는가)

Scala에서 자료형은 프로그램이 데이터를 어떻게 처리하고 저장할지를 결정짓는 중요한 요소입니다. 자료형을 올바르게 이해하고 활용하는 것은 코드의 안정성을 높이고, 프로그램의 성능을 최적화하며, 오류를 줄이는 데 필수적입니다. 만약 자료형을 잘못 사용하면, 예를 들어 숫자 연산을 문자열로 처리하거나, 잘못된 타입의 데이터를 참조하는 경우, 프로그램이 예기치 않게 종료되거나 비정상적인 동작을 할 수 있습니다. 실무에서는 이러한 오류가 고객의 신뢰를 잃게 만들고, 복잡한 디버깅 과정을 요구할 수 있습니다.

2. 핵심 개념 설명

Scala의 자료형은 크게 두 가지로 나눌 수 있습니다: 기본 자료형(Primitive Types)과 참조 자료형(Reference Types)입니다.

기본 자료형

  • Int: 정수를 나타냅니다. (예: 1, 42)
  • Double: 부동 소수점을 나타냅니다. (예: 3.14, 2.718)
  • Boolean: 참(true) 또는 거짓(false) 값을 가집니다.
  • Char: 단일 문자를 나타냅니다. (예: 'a', 'Z')
  • String: 문자열을 나타냅니다. (예: "Hello, Scala!")
  • 참조 자료형

  • Array: 동일한 자료형의 집합을 저장합니다.
  • List: 순서가 있는 데이터 집합을 나타냅니다.
  • Map: 키-값 쌍으로 데이터를 저장합니다.
  • 자료형설명예시
    Int정수10, -5
    Double부동 소수점3.14, -0.001
    Boolean참 또는 거짓true, false
    Char문자'a', '1'
    String문자열"Hello", "Scala"
    Array동일한 자료형 배열Array(1, 2, 3)
    List순서가 있는 리스트List(1, 2, 3)
    Map키-값 쌍Map("key1" -> "value1")

    3. 기본 코드 예제

    아래 코드는 기본 자료형을 사용하는 예제입니다.

    object BasicTypesExample {
      def main(args: Array[String]): Unit = {
        val intValue: Int = 42             // 정수형 변수 선언
        val doubleValue: Double = 3.14     // 부동 소수점 변수 선언
        val boolValue: Boolean = true       // 불린형 변수 선언
        val charValue: Char = 'A           // 문자형 변수 선언
        val stringValue: String = "Scala"   // 문자열 변수 선언
    
        println(intValue)                  // 정수 출력
        println(doubleValue)               // 부동 소수점 출력
        println(boolValue)                 // 불린형 출력
        println(charValue)                 // 문자 출력
        println(stringValue)               // 문자열 출력
      }
    }

    실행 결과

    42
    3.14
    true
    A
    Scala
  • val intValue: Int = 42: 정수형 변수를 선언하고 42를 대입합니다.
  • val doubleValue: Double = 3.14: 부동 소수점 변수를 선언하고 3.14를 대입합니다.
  • val boolValue: Boolean = true: 불린형 변수를 선언하고 true를 대입합니다.
  • val charValue: Char = 'A': 문자형 변수를 선언하고 'A'를 대입합니다.
  • val stringValue: String = "Scala": 문자열 변수를 선언하고 "Scala"를 대입합니다.
  • println(...): 각 변수를 출력합니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰에서 장바구니 구현

    장바구니에 상품 정보를 저장할 때, 각 상품의 가격과 수량을 다루기 위해 기본 자료형을 사용할 수 있습니다.

    case class Product(name: String, price: Double, quantity: Int)
    
    val cart: List[Product] = List(
      Product("Apple", 0.99, 2),
      Product("Banana", 0.59, 5)
    )
    
    val totalPrice: Double = cart.map(p => p.price * p.quantity).sum
    println(s"Total Price: $$${totalPrice}") // Total Price: $4.94

    상황 설명: 쇼핑몰에서 고객이 장바구니에 담은 상품의 총 가격을 계산하는 코드입니다.

    예제 2: 사용자 정보 저장

    사용자의 나이와 이름을 저장할 때 사용할 수 있습니다.

    case class User(name: String, age: Int)
    
    val user1: User = User("Alice", 30)
    println(s"${user1.name} is ${user1.age} years old.") // Alice is 30 years old.

    상황 설명: 사용자 정보를 관리하는 간단한 코드입니다.

    5. 흔한 실수와 주의사항

    실수 1: 자료형 불일치

    val number: Int = "100" // 잘못된 코드
  • 해결: "100"은 문자열이므로, Int형으로 변환해야 합니다.
  • 실수 2: 변수 재정의

    var a: Int = 10
    a = "Hello" // 잘못된 코드
  • 해결: 변수의 타입을 변경할 수 없으므로, 초기 타입과 일치해야 합니다.
  • 6. 정리

  • Scala에서 자료형은 데이터의 저장 및 처리를 결정합니다.
  • 기본 자료형과 참조 자료형의 차이를 이해하는 것이 중요합니다.
  • 실전에서 자주 사용하는 패턴을 통해 자료형을 활용할 수 있습니다.
  • 다음에 학습하면 좋은 주제는 컬렉션(Collection), 함수형 프로그래밍(Functional Programming)입니다.