[go] Go 언어에서의 구조체와 인터페이스 사용 방법은 어떻게 되나요?

Go 언어는 구조체(struct)와 인터페이스(interface)를 사용하여 객체 지향 프로그래밍을 지원합니다. 이 블로그 포스트에서는 Go에서의 구조체와 인터페이스를 어떻게 정의하고 사용하는지에 대해 알아보겠습니다.

구조체(Struct)

Go 언어에서의 구조체는 필드(멤버 변수)들의 모음으로, 자신만의 데이터 타입을 정의하는데 사용됩니다. 구조체를 선언하기 위해서는 type 키워드를 사용하며, 필드를 정의할 때에는 필드명과 데이터 타입을 명시합니다.

type Person struct {
    Name string
    Age  int
}

위의 예제에서 Person이라는 구조체를 정의하고, NameAge라는 두 개의 필드를 포함하도록 설계했습니다. 구조체를 사용하여 변수를 선언하고 초기화 할 수 있습니다.

var p Person
p.Name = "Alice"
p.Age = 30
fmt.Println(p.Name, p.Age)

인터페이스(Interface)

인터페이스는 메서드 시그니처의 집합으로, 특정 기능을 수행하기 위한 메서드들을 해당 인터페이스를 구현하는 타입이 구현하도록 강제할 수 있습니다. Go 언어의 인터페이스는 자동으로 구현되며, 명시적으로 구현 선언이 필요하지 않습니다.

type Shape interface {
    Area() float64
}

type Circle struct {
    Radius float64
}

func (c Circle) Area() float64 {
    return math.Pi * c.Radius * c.Radius
}

위의 예제에서 Shape 인터페이스를 정의하고, 이를 구현하는 Circle 구조체를 정의했습니다. 이렇게 하면 CircleShape 인터페이스를 만족시키도록 강제할 수 있습니다.

마치며

이렇게 Go 언어에서의 구조체와 인터페이스를 사용하는 방법에 대해 간단히 살펴보았습니다. 구조체와 인터페이스는 Go 언어의 강력한 기능 중 하나로, 객체지향적인 프로그래밍을 지원하면서도 간결하고 유연한 코드를 작성할 수 있도록 도와줍니다.

더 많은 정보는 Go 언어 공식 문서를 참고하시기 바랍니다.