🔥 구조체 (Struct)

255자
3분

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

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

go
type Point struct {
    X int
    Y int
}
 
go
type Point struct {
    X int
    Y int
}
 

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

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

go
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
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
}
 

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

  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 언어에서 매우 중요한 개념 중 하나이므로, 꼭 숙지하시길 바랍니다!

YouTube 영상

채널 보기
AI에서 고차원 임베딩이 무엇일까?
AI는 데이터를 어떻게 분류할까? 벡터의 거리와 KNN 알고리즘 | 선형대수학
2편, B-Tree 자료구조의 구조와 속성
Trie 자료구조 파이썬 구현: Search와 Starts With 연산 | Trie 자료구조 이야기
11편, 왜 DB마다 성능이 다를까? 엔진별 B-Tree 저장 방식 비교
AI는 왜 수백 차원의 벡터를 사용할까? 고차원 공간과 행렬 | 선형대수학
트라이(Trie) 자료구조: 파이썬으로 삽입(Insert) 연산 구현하기 | Trie 자료구조 이야기
Trie 자료구조 완전 정복 - 개념부터 시각화까지 | Trie 자료구조 이야기