"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go!의 패키지와 모듈 이해하기

Go!의 패키지와 모듈 이해하기

2024-11-06에 게시됨
검색:598

Entendendo pacotes e modulos em Go!


Go에서 패키지와 모듈 풀기: 처음에 이해하지 못했던 점

Go에서 프로그래밍을 시작했을 때 저는 이미 첫 번째 프로그래밍 언어인 C에 대한 탄탄한 기초를 갖추고 있었습니다. Go는 단순성부터 성능까지 C와 많은 공통점을 갖고 있기 때문에 이는 나에게 많은 도움이 되었습니다. 키워드가 적고 복잡성이 적으며 학습 곡선이 더 원활합니다. 그런데 나를 조금 당황하게 만든 부분이 나타났습니다: 패키지, 모듈 및 go mod와 같은 것.

저는 다음과 같이 생각했던 것을 기억합니다. "그냥 간단한 프로그램을 컴파일하고 싶은데 왜 패키지에 대해 걱정해야 합니까?" 모듈은 어떻습니까? 그것은 갑자기 나타나는 것처럼 보이며 모두가 종속성을 관리하는 데 필수적이라고 말합니다. 하지만 걱정하지 마세요. 이미 프로그래밍했지만 아직 Go에서 이러한 내용을 익히지 못한 사람들을 위해 모든 것을 간단한 방법으로 설명하겠습니다.

Go의 패키지: 코드 분할 및 구성

첫째, Go의 패키지 개념은 C에서 본 개념과 매우 유사합니다. 패키지를 코드를 구성하고 재사용하는 방법으로 생각하세요. C에서는 함수를 .h 및 .c 파일로 분리할 때 Go에서도 비슷한 작업을 수행하지만 패키지를 사용합니다. 각 패키지는 기능을 그룹화하고 코드의 다른 부분에서 필요한 것을 가져올 수 있습니다.

예를 들어 모든 기능을 단일 파일에 포함하는 대신 패키지로 분할할 수 있습니다.

package main

import "fmt"

func main() {
    fmt.Println("Hello, Go!")
}

여기서 fmt는 I/O 포맷을 관리하는 표준 라이브러리 패키지입니다. 가져올 때 해당 기능에 액세스합니다. 또한 동일한 방식으로 자신만의 패키지를 만들 수 있으므로 코드 유지 관리 및 구성이 더 쉬워집니다.

그리고 go 모드는 어떻습니까?

이제 모듈 부분입니다. 여기서 상황이 흥미로워집니다. 패키지가 C의 라이브러리와 같다면 모듈은 이 모든 것을 관리하는 "수퍼 패키지"와 같습니다. 이를 통해 프로젝트는 체계적이고 안전한 방식으로 어려움 없이 타사 패키지를 다운로드하고 사용할 수 있습니다.

go mod는 이러한 모듈을 사용하도록 프로젝트를 구성하는 데 도움이 되는 명령입니다. go mod init을 사용하여 새 프로젝트를 시작하면 기본적으로 Go가 종속성을 관리하는 데 사용할 구성을 생성하게 됩니다. 이는 프로젝트에 필요한 패키지를 자동으로 다운로드한다는 의미입니다(C에서처럼 직접 다운로드할 필요 없이).

예를 들어:

go mod init meu-projeto
go get github.com/pacote/fantastico

이 명령을 사용하면 Go는 프로젝트의 종속성에 대한 정보를 저장하는 go.mod 파일을 생성합니다. 그런 다음 go build를 실행하면 Go는 걱정할 필요 없이 인터넷에서 직접 컴파일하는 데 필요한 모든 것을 다운로드합니다.

간단히 말해서 ...

코드를 패키지로 구성하고 모듈을 사용하여 종속성을 관리하면 Go가 훨씬 더 효율적이 됩니다. 처음에는 혼란스러워 보일 수도 있지만(저도 바로 이해하지 못했습니다), 일단 익숙해지면 패키지와 모듈이 코드를 더 확장 가능하고 깔끔하게 만들어준다는 사실을 깨닫게 될 것입니다. 특히 대규모 프로젝트에서는 모든 것이 더 잘 진행됩니다.


릴리스 선언문 이 기사는 https://dev.to/nivicius/entendendo-pacotes-e-modulos-em-go-2k3?1에 복제되어 있습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3