학습
Go 자료형 (Data Types)
Go 자료형 (Data Types) — 초급
자료형 (Data Types)
1. 도입 (왜 배워야 하는가)
자료형은 프로그래밍의 기초 중 하나로, 데이터가 어떤 형태를 가지는지를 정의합니다. 이는 변수를 선언하고 사용할 때 데이터의 종류에 따라 어떤 연산이 가능한지를 결정하기 때문에 매우 중요합니다. 예를 들어, 숫자를 문자열로 처리하려고 하면 오류가 발생할 수 있습니다. 자료형을 이해하지 못하면 코드의 버그를 유발하거나, 데이터의 잘못된 처리를 초래할 수 있습니다. 이로 인해 실제 서비스에 문제를 일으킬 수 있으므로, 자료형에 대한 이해는 필수적입니다.
2. 핵심 개념 설명
Go 언어에서 제공하는 주요 자료형은 다음과 같습니다:
| 자료형 | 설명 | 예시 |
|---|---|---|
| int | 정수형 데이터 | 10, -3 |
| float | 부동 소수점형 데이터 | 3.14, -0.001 |
| string | 문자열형 데이터 | "Hello, Go!" |
| bool | 불리언형 데이터 (참/거짓) | true, false |
이 자료형들은 실생활의 객체들처럼 생각할 수 있습니다. 예를 들어, int는 나이와 같은 정수 정보를 담고, float는 가격과 같은 소수점을 포함한 정보를 담는다고 비유할 수 있습니다. string은 사람의 이름이나 메시지와 같은 텍스트, bool은 질문에 대한 '예' 또는 '아니오'와 같은 간단한 판단을 나타냅니다.
3. 기본 코드 예제
다음은 Go 언어에서 다양한 자료형을 선언하고 사용하는 기본 예제입니다.
package main
import "fmt"
func main() {
var age int = 25 // 정수형 변수 age를 선언하고 25로 초기화
var price float64 = 19.99 // 부동 소수점형 변수 price를 선언하고 19.99로 초기화
var name string = "Alice" // 문자열형 변수 name을 선언하고 "Alice"로 초기화
var isMember bool = true // 불리언형 변수 isMember를 선언하고 true로 초기화
fmt.Println("이름:", name) // 이름 출력
fmt.Println("나이:", age) // 나이 출력
fmt.Println("가격:", price) // 가격 출력
fmt.Println("회원 여부:", isMember) // 회원 여부 출력
}
실행 결과:
이름: Alice
나이: 25
가격: 19.99
회원 여부: true
var age int = 25: 정수형 변수age를 선언하고 25로 초기화합니다.var price float64 = 19.99: 부동 소수점형 변수price를 선언하고 19.99로 초기화합니다.var name string = "Alice": 문자열형 변수name을 선언하고 "Alice"로 초기화합니다.var isMember bool = true: 불리언형 변수isMember를 선언하고 true로 초기화합니다.fmt.Println(...): 각 변수의 값을 출력합니다.
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니 구현
쇼핑몰에서 장바구니를 구현할 때, 사용자의 선택한 상품의 가격을 저장해야 합니다.
package main
import "fmt"
func main() {
var items []string = []string{"사과", "바나나", "포도"} // 상품 목록
var prices []float64 = []float64{1000.50, 2000.75, 1500.00} // 가격 목록
total := 0.0
for _, price := range prices {
total += price // 총 가격 계산
}
fmt.Printf("장바구니에 담긴 상품: %v\n", items)
fmt.Printf("총 가격: %.2f 원\n", total)
}
예제 2: 학생 성적 관리
학생의 성적을 관리하기 위해 정수형 배열을 사용할 수 있습니다.
package main
import "fmt"
func main() {
var scores []int = []int{85, 90, 78, 92} // 학생 성적 목록
var total int
for _, score := range scores {
total += score // 총 성적 계산
}
average := float64(total) / float64(len(scores)) // 평균 성적 계산
fmt.Printf("학생의 평균 성적: %.2f\n", average)
}
5. 흔한 실수와 주의사항
실수 1: 자료형 불일치
var age string = 25 // 잘못된 코드
var age int = 25 // 정수형으로 선언
설명: age를 문자열로 선언하고 정수를 할당하려 하면 오류가 발생합니다.
실수 2: 타입 변환을 잊기
var price int = 19.99 // 잘못된 코드
var price float64 = 19.99 // 부동 소수점형으로 선언
설명: price를 정수형으로 선언하면 소수점이 잘려나갑니다.
6. 정리
int, float, string, bool이 있습니다.