개요
이전 블로그 포스트에서 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으로 제작한 프로그램을 빌드하여 실행 파일을 만들고, 실행 파일을 통해 프로그램을 실행해 보았습니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.