🔥 구조체 (Struct)

255자
3분

Go 언어에서 구조체(Struct)는 관련된 데이터를 하나로 묶어 표현할 수 있는 매우 유용한 도구예요. 구조체를 사용하면 프로그램에서 다루는 데이터를 의미 있는 단위로 그룹화할 수 있답니다.

예를 들어, 2차원 좌표 평면 상의 한 점을 나타내고 싶다고 해 볼게요. 이 경우 X와 Y 좌표값을 하나로 묶어 Point 구조체로 정의할 수 있겠죠.

type Point struct {
    X int
    Y int
}
 
go

위 코드에서는 Point 구조체를 정의하고 있어요. Point 구조체는 XY라는 두 개의 필드(Field)를 가지고 있는데, 각각 정수형(int) 값을 저장합니다. 이렇게 구조체를 정의하면 Point 타입의 변수를 선언하고 사용할 수 있게 되죠.

이제 Point 구조체를 사용하는 예제 코드를 살펴볼까요?

package main
 
import "fmt"
 
type Point struct {
    X int
    Y int
}
 
func main() {
    // Point 구조체를 사용하여 변수 p1 선언 및 초기화
    p1 := Point{1, 2}
 
    // p1의 X, Y 값 출력
    fmt.Println(p1.X, p1.Y) // 1 2
 
    // 구조체 필드 값 변경
    p1.X = 10
    p1.Y = 20
 
    // 변경된 p1의 X, Y 값 출력
    fmt.Println(p1.X, p1.Y) // 10 20
}
 
go

위 예제 코드를 하나씩 살펴보면:

  1. Point 구조체를 사용하여 p1 변수를 선언하고 초기화하고 있어요. {1, 2}는 구조체 리터럴(Literal)로, 구조체의 필드 값을 순서대로 지정합니다.
  2. fmt.Println(p1.X, p1.Y)를 통해 p1XY 필드 값을 출력하고 있죠. 결과는 1 2가 됩니다.
  3. p1.X = 10p1.Y = 20을 통해 p1XY 필드 값을 변경하고 있어요.
  4. 변경된 p1XY 필드 값을 다시 출력하면 10 20이 출력되는 걸 확인할 수 있답니다.

이처럼 구조체를 사용하면 관련된 데이터를 하나의 타입으로 묶어 표현할 수 있어요. 구조체는 Go 언어에서 매우 중요한 개념 중 하나이므로, 꼭 숙지하시길 바랍니다!