학습
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" // 잘못된 코드