[Golang] 코딩 및 빌드

2021-09-19 hit count image

Golang으로 Hello world를 출력하는 프로그램을 작성 및 빌드를 해보고, 작성한 프로그램을 자세히 살펴봅시다.

개요

이전 블로그 포스트에서 Golang을 설치하고, Hello, World!가 화면에 출력되는 프로그램을 Golang을 사용하여 작성해 보았습니다.

이번 블로그 포스트에서는 다시 한번 Hello, World!가 출력되는 프로그램을 생성하고, 해당 프로그램을 좀 더 자세히 살펴보도록 하겠습니다. 이번 블로그 포스트에서 소개하는 소스코드는 다음 링크를 통해 확인할 수 있습니다.

프로그램 작성

Golang을 사용하여 Hello world를 출력하는 프로그램을 작성해 봅시다. Hello world를 화면에 출력하는 프로그램을 작성하기 위해 main.go 파일을 생성하고 다음과 같이 수정합니다.

package main

import "fmt"

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

프로그램 작성이 완료되었다면, 다음 명령어를 실행하여 프로그램을 실행해 봅니다.

go run main.go

그럼 다음과 같이 Hello, World!가 화면에 잘 출력되는 것을 확인할 수 있습니다.

Hello, World!

코드 분석

그럼 이제 우리가 Golang으로 작성한 Hello world를 출력하는 소스코드를 자세히 살펴봅시다.

package main

package는 Golang에서 코드를 묶어주는 하나의 단위입니다. Golang으로 프로그램을 작성할 때, 모든 프로그램은 package로 시작이 되어야 합니다. 이 package는 현재 작성하고 있는 소스코드가 어떤 패키지에 소속되어있는지 알려주는 역할을 합니다.

패키지명은 아무거나 사용할 수 있지만, 패키지 명이 main인 소스코드가 꼭 필요합니다. package main은 프로그램의 시작점을 가지고 있음을 의미하며, Golang은 이 패키지를 기준으로 프로그램을 시작하게 됩니다.

Golang의 프로그램은 main 패키지 하나와 다른 여러 패키지들로 구성됩니다.

import "fmt"

fmt라는 패키지를 로드(import)함을 의미합니다. 패키지는 소스코드의 집합입니다. 다시 말하면 패키지는 여러 기능들을 가지고 있는 하나의 단위입니다. 우리는 fmt 패키지가 제공하는 Println이라는 기능을 사용하여 Hello, World!를 출력할 예정입니다. 이처럼 패키지가 가지고 있는 특정 기능을 사용하려면 해당 패키지를 로드해야 합니다.

func main() {
    ...
}

Golang에서는 함수를 정의할 때, func 키워드를 사용합니다. 함수명은 아무거나 사용할 수 있지만, 함수명에 main을 사용함으로써, Golang에 프로그램의 시작점을 알려주었습니다.

즉, Golang으로 프로그램을 작성할 때, main으로 시작하는 package가 존재해야 하며, 해당 패키지에는 main이라는 함수가 꼭 존재해야합니다. 그렇지 않으면 Golang은 프로그램의 시작점을 찾을 수 없으므로 프로그램을 시작시킬 수 없습니다.

fmt.Println("Hello, World!")

우리가 앞에서 가져온 fmt 패키지에 포함된 Println이라는 함수(기능)을 호출하겠다는 의미입니다.

빌드

이렇게 Golang으로 작성한 프로그램은 빌드하여 실행 파일을 만들 수 있습니다. 실행 파일을 만들기 위해서는 Module을 생성해야 합니다. 다음 명령어를 실행하여 Module을 생성합니다.

go mod init hello_world

모듈의 이름(hello_world)은 어떤 것이든 상관이 없으나 유니크해야 합니다. 보통은 폴더명을 사용합니다.

이렇게 모듈을 생성하면 폴더 안에 go.mod가 생성된 것을 확인할 수 있습니다.

.
├── go.mod
└── main.go

이제 다음 명령어를 실행하여 Golang으로 작성한 프로그램을 빌드합니다.

go build

빌드가 완료되면 다음과 같이 hello_world 파일이 새로 생성된 것을 알 수 있습니다. (각 OS에 맞는 실행 파일이 생성됩니다. macOS가 아닌 분들은 파일명이 다를 수 있습니다.)

.
├── go.mod
├── hello_world
└── main.go

이제 다음 명령어를 실행하여 우리가 작성한 프로그램을 실행해 봅니다.

./hello_world

그럼 다음과 같이 프로그램이 잘 실행되는 것을 확인할 수 있습니다.

Hello, World!

완료

이것으로 Golang으로 작성한 Hello world 프로그램을 자세히 살펴보았습니다. 또한, Golang으로 제작한 프로그램을 빌드하여 실행 파일을 만들고, 실행 파일을 통해 프로그램을 실행해 보았습니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

책 홍보

스무디 한 잔 마시며 끝내는 React Native 책을 출판한지 벌써 2년이 다되었네요.
이번에도 좋은 기회가 있어서 스무디 한 잔 마시며 끝내는 리액트 + TDD 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
Posts