10.2. 프로그램언어 고(Go)의 패키지 사용하기

프로그램언어 고(Go)에서의 기본 패키지 사용하는 방법

프로그램언어 고(Go)에서 기본 패키지를 사용하는 방법은 package문을 사용하여 import하는 방식입니다.

예를 들어 fmt 패키지를 사용하고 싶다면,

import "fmt"

와 같이 import문을 사용합니다. 이렇게 하면 fmt 패키지에 정의된 함수와 타입등을 바로 사용할 수 있습니다.

fmt.Println("Hello World")

이런식으로 말이죠. fmt.Println 함수를 바로 사용할 수 있습니다.

다른 패키지도 비슷한 방식으로 import하여 사용합니다.

import "os"

f, err := os.Open("file.txt")

os 패키지의 Open 함수를 사용하는 예입니다.

패키지 이름을 변경하고 싶다면

import fmt2 "fmt"

이런식으로 alias를 지정할 수 있습니다.

그리고 여러 패키지를 한번에 import할 수도 있습니다.

import (
    "fmt"
    "os"
)

패키지간 서로 의존성이 있는 경우가 있는데, 그럴 때는 import문 순서가 중요합니다.

import "pkg1"
import "pkg2"

pkg1 패키지가 pkg2를 사용하는 경우, 반드시 이순서로 import해야 합니다.

이렇게 Go에서는 package문으로 패키지를 import하여 사용합니다. 필요한 기능이 정의된 패키지를 import하면 간단히 사용할 수 있는 장점이 있습니다.

프로그램언어 고(Go)에서의 custom 패키지 사용하는 방법

프로그램언어 고(Go)에서 custom 패키지를 사용하는 방법은 다음과 같습니다.

package main

import (
    "fmt"

    "example.com/greetings"
)

func main() {
    msg := greetings.GetMessage("gloria")
    fmt.Println(msg)
}

위 예제코드에서 보다시피 import 구문을 사용하여 custom 패키�지를 가져올 수 있습니다. 여기서 “example.com/greetings”가 바로 custom 패키지입니다.

custom 패키지를 만드는 방법은 다음과 같습니다.

1. 먼저 $GOPATH/src 아래에 패키지 폴더를 만듭니다.
예를 들어 example.com/greetings 처럼 폴더 구조를 생성합니다.

2. 그 폴더 안에 Go 코드를 포함한 .go 파일들을 만듭니다.
예를 들어 greetings.go 같은 파일을 하나 더 만듭니다.

3. greetings.go 파일 안에 함수와 변수 등을 정의합니다.

4. 다른 곳의 코드에서 이제 이 패키지를 import하여 사용할 수 있습니다.

이렇게 custom 패키지를 정의하고 사용하면 코드의 재사용성을 높일 수 있습니다. 다양한 함수, 상수, 변수 등을 패키지로 분리함으로써 관리가 용이해지고 모듈화할 수 있기 때문입니다.

예제코드의 greetings 패키지에서 GetMessage 함수를 정의하고, 메인 함수에서 이를 호출하는 것을 확인할 수 있습니다. 이러한 식으로 custom 패키지를 만들고 사용하는 방법을 익혀두면 Go 코딩에 많은 도움이 될 것입니다.

생성한 custom 패키지는 다른 사람과 공유할 수도 있습니다. 이를 통해 Go 커뮤니티에 공헌할 수도 있죠. 필요에 따라 custom 패키지를 잘 만들고 사용하는 능력이 Go 개발자에게 중요하다고 생각합니다.

위 설명이 custom 패키지 사용 방법을 이해하는데 도움이 되었기를 바랍니다. 구체적인 예제와 함께 친절하게 설명드렸습니다. 더 궁금하신 점이 있다면 언제든 질문해 주세요.

프로그램언어 고(Go)에서의 패키지 함수 호출 방법

프로그램언어 고(Go)에서 패키지 내 함수를 호출할 때는 패키지 이름을 접두사로 붙여주는 방식을 사용합니다.

예를 들어 fmt 패키지의 Println 함수를 호출하려면 다음과 같이 작성합니다.

fmt.Println("Hello World")

여기서 fmt가 패키지 이름이고, Println이 그 패키지 내 함수입니다.

이렇게 호출하면 fmt 패키지 내의 Println 함수가 호출되어 “Hello World” 문자열을 출력합니다.

패키지 이름과 함수 이름 사이에 점(.)을 찍어주는 것이 중요합니다. 이 점은 패키지와 함수의 구분을 위한 것입니다.

다만 패키지 내 함수가 아닌 경우에는 이 접두사를 붙이지 않아도 됩니다.

main() {
  fmt.Println("from fmt") 
  println("from builtin") 
}

위 예제의 println 함수는 내장 함수이기 때문에 접두사 없이 바로 호출할 수 있습니다.

하지만 동일한 이름의 함수가 패키지와 내장에 모두 존재한다면, 명확성을 위해 패키지 이름을 접두사로 붙여주는 것이 좋습니다.

이렇게 패키지 이름을 접두사로 사용하는 방식은 다른 언어와 차별화되는 고(Go)언어의 특징적인 문법입니다.

패키지 개념 자체가 고유한 만큼, 이를 활용하는 방식도 독특하다고 볼 수 있겠습니다.

프로그램언어 고(Go)에서의 패키지의 서브 패키지 사용방법

프로그램언어 고(Go)에서 패키지를 사용할 때 서브 패키지를 사용하는 방법은 다음과 같습니다.

먼저 패키지를 만들고 그 안에 서브 패키지를 정의합니다. 예를 들어 mypkg라는 패키지 안에 subpkg라는 서브 패키지를 만듭니다.


mypkg/
    subpkg/
        subpkg.go

위와 같은 구조로 패키지와 서브 패키지를 구성하면 됩니다.

그리고 서브 패키지의 소스 코드인 subpkg.go에서는 패키지 선언시 전체 경로를 써주어야 합니다.


package mypkg/subpkg

func Hello() {
    println("Hello from subpkg!") 
}

위와 같이 mypkg/subpkg으로 전체 경로를 패키지 이름으로 선언하면 됩니다.

마지막으로 다른 곳에서 이 서브 패키지를 사용할 때도 전체 경로 이름을 사용합니다.


import "mypkg/subpkg"

func main() {
    subpkg.Hello() 
}  

import할 때 mypkg/subpkg으로 하여 전체 경로를 적어주면 서브 패키지를 사용할 수 있습니다.

이와 같이 고(Go)에서 패키지 안에 서브 패키지를 만들고 사용하는 방법입니다. 전체 경로를 사용하여 구분하므로 패키지 이름 충돌을 방지할 수 있습니다.

프로그램언어 고(Go)에서의 패키지의 변수 또는 상수 가져오는 방법

프로그램언어 고(Go)에서 다른 패키지의 변수나 상수를 가져오기 위해서는 import 문을 사용합니다.

import "패키지경로"

위의 코드를 사용하여 패키지를 가져올 수 있습니다.

그리고 가져온 패키지의 변수나 상수를 사용할 때에는 다음과 같이 패키지 이름을 prefix로 붙여서 사용합니다.

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello World") 
}

위의 코드에서 fmt 패키지의 Println 함수를 사용하고 있습니다.

또한 별칭(alias)을 지정할 수도 있습니다.

import f "fmt"

func main() {
    f.Println("Hello World")
}

이렇게 별칭을 지정하면 패키지 이름을 짧게 사용할 수 있습니다.

패키지 내의 변수나 상수도 동일한 방식으로 접근할 수 있습니다.

package mypackage

const MY_CONST = "foo"

var MY_VAR = "bar"

다른 패키지에서 위의 변수와 상수를 아래처럼 사용할 수 있습니다.

import "mypackage"

func main() {
    print(mypackage.MY_CONST) 
    print(mypackage.MY_VAR)
}

이렇게 Golang에서는 import 문을 통해 패키지를 가져오고, 가져온 패키지의 변수나 상수, 함수들에 접근할 땐 패키지 이름을 prefix로 붙여서 접근합니다.

Leave a Comment