[go] Go 언어에서 패키지 내 중복 코드 제거하기

Go 언어에서 개발을 할 때, 패키지 내에서 코드를 관리하는 것은 중요합니다. 때로는 패키지 내에서 중복되는 코드를 발견할 수 있습니다. 이런 중복 코드는 유지보수를 어렵게 만들 수 있고, 코드를 읽기 어렵게 만들 수 있습니다. 이에 Go 언어에서 패키지 내 중복 코드를 제거하는 방법을 알아보겠습니다.

1. 코드 분리

중복 코드를 제거하기 위한 첫 번째 단계는 공통 코드를 별도의 함수나 메서드로 분리하는 것입니다. 이를테면, 많은 함수에서 사용되는 유틸리티 함수가 있다면, 이를 별도의 파일에 정의하고 해당 함수를 가져와 사용할 수 있습니다.

예를 들어, 아래와 같이 utils.go 파일을 만들고 공통 함수를 정의할 수 있습니다.

// utils.go
package utils

func CommonFunction() {
    // 공통 코드
}

그리고 이를 다른 파일에서 import하여 사용할 수 있습니다.

// main.go
package main

import "projectname/utils"

func main() {
    utils.CommonFunction()
}

2. 인터페이스 활용

인터페이스를 사용하여 패키지 내에 중복 코드를 줄일 수도 있습니다. 비슷한 동작을 하는 다양한 유형의 객체를 처리해야 할 때 인터페이스를 활용하여 중복 코드를 제거할 수 있습니다.

예를 들어, 여러 개의 구조체에서 비슷한 메서드를 호출해야 할 때, 각 구조체에 인터페이스를 구현하여 중복 코드를 줄일 수 있습니다.

type CommonInterface interface {
    CommonMethod()
}

type Struct1 struct{}

func (s1 Struct1) CommonMethod() {
    // 구조체1의 공통 메서드
}

type Struct2 struct{}

func (s2 Struct2) CommonMethod() {
    // 구조체2의 공통 메서드
}

3. 패키지 내에서 코드 재사용

내부 패키지에서도 중복을 제거하기 위해 코드 재사용을 고려해볼 수 있습니다. 이를 통해 유지보수성을 높일 수 있고, 코드의 가독성을 향상시킬 수 있습니다.

패키지 내에서 코드를 재사용하기 위해서는 패키지 수준에서 변수나 함수를 정의하고 필요한 파일에서 import하여 사용할 수 있습니다.

예를 들어, 패키지 내에서 공통으로 사용되는 상수를 정의할 수 있습니다.

package mypackage

const CommonConstant = "common"

다른 파일에서 이를 import하여 사용할 수 있습니다.

package main

import "projectname/mypackage"

func main() {
    fmt.Println(mypackage.CommonConstant)
}

패키지 내에서 중복 코드를 최소화함으로써 코드 유지보수성을 향상시키고 가독성을 높일 수 있습니다.

이상으로 Go 언어에서 패키지 내 중복 코드를 제거하는 방법에 대해 알아보았습니다. 코드를 재사용하고 분리함으로써 코드의 가독성을 향상시키고 유지보수를 용이하게 할 수 있습니다.