[go] Go 언어의 인터페이스 구현

들어가기

Go 언어는 강력한 인터페이스(interface) 개념을 제공하여 코드의 유연성을 높이고 재사용성을 증가시킵니다. 이번 블로그에서는 Go 언어에서의 인터페이스의 개념과 구현에 대해 살펴보겠습니다.

인터페이스란 무엇인가요?

인터페이스란 객체의 동작을 정의하는 추상형(abstract type)입니다. 다른 객체가 이러한 동작을 구현하는 경우, 그 객체는 해당 인터페이스를 따른다고 볼 수 있습니다. 이를 통해 다양한 객체들이 동일한 동작을 수행할 수 있는 표준화된 방법을 제공할 수 있게 됩니다.

Go에서의 인터페이스

Go 언어에서는 인터페이스를 정의하는 간단하고 전통적인 방법을 가지고 있습니다. 인터페이스는 메서드 집합으로 정의되며, 해당 메서드들을 구현하는 모든 객체는 해당 인터페이스를 따르게 됩니다.

인터페이스 구현 예제

다음은 간단한 인터페이스를 정의하고 해당 인터페이스를 구현하는 예제 코드입니다:

package main

import "fmt"

// 인터페이스 정의
type Shape interface {
    Area() float64
}

// 구조체 정의
type Circle struct {
    Radius float64
}

// Circle 구조체에 메서드 구현
func (c Circle) Area() float64 {
    return 3.14 * c.Radius * c.Radius
}

func main() {
    // Circle 객체 생성
    c := Circle{Radius: 5}

    // Shape 인터페이스로 Circle 객체 호출
    var s Shape = c
    fmt.Println("원의 면적:", s.Area())
}

위 코드에서 Circle 구조체는 Shape 인터페이스의 Area 메서드를 구현하여 해당 인터페이스를 따르게 됩니다.

결론

Go 언어에서의 인터페이스는 객체 간의 표준화된 동작 정의를 가능하게 하며, 이를 통해 코드의 유연성과 재사용성을 향상시킬 수 있습니다. 이러한 강력한 기능을 적재적소에 활용하여 좀 더 효율적이고 유지보수가 쉬운 코드를 작성할 수 있습니다.