Go 코드는 패키지로 그룹화되고, 패키지들은 모듈로 그룹화 된다.
패키지 모듈은 코드가 작성된 Go 버전과 필요한 다른 모듈을 포함해서, Go가 코드를 실행하는데
필요한 컨텍스트를 지정한다.
그래서, 모듈에서 기능을 추가하거나 개선이될 경우 모듈의 새 버전이 게시되는데
개발자들은 업데이트 된 패키지를 가져와서 새 버전으로 테스트해서 적용할 수 있다.

 

목표 : 다른 모듈에서 사용할 수 있는 간단한 모듈을 만들어 보자.

 

1. 먼저 특정 폴더에 greetings 라는 폴더를 만든다.

mkdir greetings
cd greetings

 

2. go.mod 파일을 만들기 위해 init을 한다.
go mod init 명령은 코드를 다른 코드에서 사용할 수있는 모듈로 식별하는 go.mod 파일을 만든다.
처음 생성된 go.mod 파일에는 모듈 이름, 코드에서 지원하는 go 버전만 포함된다. ( 아래 이미지 참고! )
여기서 다른 모듈의 패키지를 추가해서 사용하면 go.mod 파일에 사용할 특정 모듈 버전이 나열된다.
이렇게 할 경우 빌드를 재현 할 수 있고, 사용할 모듈의 버전을 직접 제어 가능하다.

$ go mod init example.com/greetings
go: creating new go.mod: module example.com/greetings

3. vi 혹은 다른 text editer를 이용해서 greetings.go 파일을 작성한다. 실습을 위해 아래 코드를 복사해서 붙여넣자!

package greetings

import "fmt"

// Hello returns a greeting for the named person.
func Hello(name string) string {
    // Return a greeting that embeds the name in a message.
    message := fmt.Sprintf("Hi, %v. Welcome!", name)
    return message
}

그럼, 첫번째 모듈이 완성됬다. 인사하는 기능이 있는 모듈이다. 
greetings.go 코드를 살펴보자

  • greetings 라는 패키지를 선언한다.
  • Hello 라는 메서드 하나를 구현한다.
    자바와는 형식이 조금 다르다! 아래를 보자.

  • message 라는 변수를 선언한다. Go에서 := 는 변수를 선언함과 동시에 초기화 한다.
    type를 선언해주지 않아도 오른쪽 값에 따라서 변수의 유형을 결정하는 것이 특징이다.
    아래 처럼, type을 선언해주고 거기에 값을 할당할 수도 있다!
    fmt 패키지를 이용해서 인사를 하는 기능을 구현했다. 아래 Sprintf 메서드의 %v 에는 name의 값이 들어가게 된다.
var message string
message = fmt.Sprintf("Hi, %v. Welcome!", name)



다음장에서는 우리가 만든 모듈을 다른 모듈에서 가져다가 사용해보자.


이전글보기

2021/02/17 - [Go] - Golang 시작하기. hello world 찍어보자!

 

Golang 시작하기. hello world 찍어보자!

간단히 실습해보자. 오늘 실습 할 것은 아래와 같다. 일단, 다른 IDE 툴을 사용하지 않고, command로 실행해 볼 예정이다. hello, world 찍기 main 메서드 실행해보기. 다른 패키지 import 해서 사용해보기

goyunji.tistory.com

 

+ Recent posts