Go - 데이터 타입: 초보자를 위한 친절한 가이드

안녕하세요, 열망하는 프로그래머 여러분! 오늘 Go 프로그래밍의 fascinling 세계로 뛰어들 준비가 되셨나요? 오늘 우리는 Go의 기본 개념 중 하나인 데이터 타입을 탐구할 것입니다. 코드를 한 줄도 작성해본 적이 없으신 분들도 걱정 마세요 - 저는 여러분을 단계별로 안내해 드릴 것입니다. 수년 동안 수많은 학생들을 가르쳐온 경험을 바탕으로 말이죠. 시작해 보겠습니다!

Go - Data Types

데이터 타입이란?

구체적인 내용으로 들어가기 전에 데이터 타입이 무엇인지 이해해 보겠습니다. 큰 파티를 준비하는 것을 상상해 보세요 (fun하지 않나요?). 다양한 정보를 관리해야 합니다:

  • 손님 수 (정수)
  • 인당 식사 비용 (소수점이 포함된 숫자)
  • 깜짝 파티인지 여부 (예 또는 아니요)
  • 주인공의 이름 (문자열)

프로그래밍에서 우리는 이러한 다양한 정보를 나타내기 위해 다양한 데이터 타입을 사용합니다. Go는 신중한 언어이기 때문에 여러 가지 데이터 타입을 제공해줍니다.

정수 타입

정수 타입부터 시작해 보겠습니다. 이 타입은 정수를 나타내고, 우리의 파티에서 손님 수와 같은 것을 사용합니다.

기본 정수 타입

Go는 다양한 정수 타입을 제공하며, 크기와 음수를 나타낼 수 있는지에 따라 다릅니다:

타입 크기 (비트) 범위
int8 8 -128 to 127
int16 16 -32,768 to 32,767
int32 32 -2,147,483,648 to 2,147,483,647
int64 64 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
uint8 8 0 to 255
uint16 16 0 to 65,535
uint32 32 0 to 4,294,967,295
uint64 64 0 to 18,446,744,073,709,551,615

이제 코드에서 어떻게 사용할 수 있는지 보겠습니다:

package main

import "fmt"

func main() {
var partyGuests int = 50
var smallPartyGuests int8 = 10
var hugePartyGuests uint64 = 1000000

fmt.Println("Regular party guests:", partyGuests)
fmt.Println("Small party guests:", smallPartyGuests)
fmt.Println("Huge party guests:", hugePartyGuests)
}

이 예제에서 우리는 다양한 파티 타입에 손님 수를 저장하는 변수를 선언하고 있습니다. int 타입은 일반 파티에 사용되고, int8은 작은 모임에 사용되며 (127을 초과하지 않을 것으로 알고 있음), uint64는 엄청난 축제에 사용됩니다 (도시 전체 이벤트를 계획할 수도 있으니까!).

'int'과 'uint' 타입

Go는 또한 intuint 타입을 제공하며, 이들은 최소 32비트 크기지만 시스템에 따라 더 커질 수 있습니다. 이들은 특정 크기가 필요하지 않을 때 가장 편리한 선택입니다.

var flexibleNumber int = 42
var positiveFlexibleNumber uint = 42

여기서 flexibleNumber는 양수 또는 음수가 될 수 있으며, positiveFlexibleNumber는 항상 양수입니다.

부동소수점 타입

이제 부동소수점 숫자에 대해 이야기해 보겠습니다. 이들은 식대 비용과 같은 소수점이 포함된 숫자를 나타내는 데 사용됩니다.

Go는 두 가지 부동소수점 타입을 제공합니다:

타입 크기 (비트) 정밀도
float32 32 약 7자리 십진수
float64 64 약 15자리 십진수

이제 이들을 사용해 보겠습니다:

package main

import "fmt"

func main() {
var costPerPerson float32 = 15.50
var totalBudget float64 = 1000.75

fmt.Printf("Cost per person: $%.2f\n", costPerPerson)
fmt.Printf("Total budget: $%.2f\n", totalBudget)
}

이 예제에서 우리는 float32을 인당 식사 비용에 사용하고 (극도의 정밀도가 필요하지 않음), float64을 총 예산에 사용하고 있습니다 (정확한 계산을 위한 더 많은 소수점 자리).

%.2f은 부동소수점을 두 자리 소수점으로 표시하도록 합니다.

다른 수학 타입

Go는 특정 상황에서 유용한 몇 가지 더 수학 타입을 제공합니다.

복소수

네, Go는 복소수를 처리할 수 있습니다! 두 가지 타입을 제공합니다:

타입 설명
complex64 float32 실수와 허수 부분을 가진 복소수
complex128 float64 실수와 허수 부분을 가진 복소수

다음은 빠른 예제입니다:

package main

import "fmt"

func main() {
var c64 complex64 = 1 + 2i
var c128 complex128 = 3 + 4i

fmt.Println("Complex64:", c64)
fmt.Println("Complex128:", c128)
}

복소수는 자주 사용하지 않을 수 있지만, 필요할 때 Go는 당신을 지원해 줍니다!

Byte와 Rune

Go는 특정 문맥에서 사용되는 두 가지 정수 타입의 별칭을 제공합니다:

타입 별칭 για 일반적인 사용
byte uint8 데이터의 한 바이트를 나타냄
rune int32 유니코드 코드 포인트를 나타냄

다음은 어떻게 사용할 수 있는지 보여줍니다:

package main

import "fmt"

func main() {
var b byte = 65
var r rune = 'A'

fmt.Printf("Byte %d represents: %c\n", b, b)
fmt.Printf("Rune %d represents: %c\n", r, r)
}

이 예제에서 br은 모두 'A'를 나타냅니다. 하지만 b는 ASCII 값을 사용하고, r는 유니코드 코드 포인트를 사용합니다.

결론

와우! 오늘 많은 내용을 다루었습니다. 정수에서 부동소수점, 그리고 복소수까지, Go는 다양한 데이터 타입을 제공해줍니다. 올바른 데이터 타입을 선택하는 것은 올바른 도구를 선택하는 것과 같아요 - 코드를 더 효율적으로 만들고 오류를 방지할 수 있습니다.

Go 여정을 계속하면서 이러한 타입에 익숙해질 것입니다. 처음에는 압도되는 느낌이 들 수 있지만, 완전히 정상입니다! 자전거 타는 것을 배우는 것처럼, 연습만 하면 프로가 될 수 있습니다.

계속 코딩하고, 계속 배우고, 가장 중요한 것은 즐겁게 만들어 주세요! 결국, 프로그래밍은 완벽한 파티를 계획하는 것과 같아요 - 올바른 요소들을 함께 모아서 놀라운 것을 만드는 것입니다. 행복하게 코딩하세요!

Credits: Image by storyset