Go 프로그래밍 입문 가이드

GolangBeginner
지금 연습하기

소개

이 랩에서는 Go 프로그래밍을 공식적으로 시작합니다. 기본적인 개념을 다루고 간단한 Go 프로그램을 직접 완성해 볼 것입니다.

지식 포인트:

  • 표준 출력문
  • 코드 구조
  • 프로그램 실행
  • fmt 패키지의 일반적인 함수

💡 첫 번째 Go 프로그램

첫 번째 Go 프로그램을 만들어 봅시다. 사이드바를 마우스 오른쪽 버튼으로 클릭하여 프로젝트 폴더에 helloWorld.go라는 새 파일을 만듭니다.

Image Description

참고: 더 나은 경험을 위해 WebIDE (VS Code 와 유사) 를 사용하는 것을 권장합니다. WebIDE 사용 가이드에 대한 자세한 내용은 여기에서 확인하세요.

touch 명령어를 사용하여 새 파일을 만들 수도 있습니다.

touch helloWorld.go

이제 파일을 열고 다음 코드를 작성합니다.

package main

import "fmt"

func main() {
    fmt.Println("hello, world")
}

첫 번째 줄인 package main은 이 프로그램이 main 패키지에 속함을 나타냅니다. 두 번째 줄인 import "fmt"는 텍스트 입출력을 형식화할 수 있게 해주는 Go fmt 패키지를 가져옵니다. main 함수는 프로그램 실행이 시작되는 곳이며, 그 안의 fmt.Println("hello, world")는 터미널에 hello, world를 출력합니다.

프로그램을 실행하려면 터미널을 열고 다음 명령을 입력합니다.

go run helloWorld.go

모든 것이 올바르게 설정되었다면 다음과 같은 출력을 볼 수 있습니다.

hello, world

이것은 간단한 "Hello World" 프로그램입니다. 이제 코드를 한 줄씩 설명하고 작업을 살펴보겠습니다.

프로그램 구조 및 구문

Go 에서 패키지는 코드 관리의 기본 단위입니다. 모든 Go 프로그램은 package 선언으로 시작합니다. 이 경우, package main은 코드가 실행될 메인 프로그램의 일부임을 Go 에 알려줍니다.

import "fmt" 문은 입출력에 사용되는 Go fmt 패키지를 가져옵니다. Go 는 풍부한 표준 라이브러리를 가지고 있어 많은 작업을 쉽게 수행할 수 있습니다. fmt 패키지는 이전 단계에서 보았듯이 텍스트 출력을 형식화하는 데 사용됩니다.

다음으로, main 함수를 정의합니다.

func main() {
}

Go 에서 모든 함수는 func로 시작해야 합니다. 여는 중괄호 {가 줄의 끝에 위치하는 것을 주목하세요. 이것은 Go 의 규칙이며, 여는 중괄호를 새 줄에 배치하는 다른 프로그래밍 언어와는 다릅니다.

만약 실수로 여는 중괄호를 다음과 같이 새 줄에 배치하면:

func main()
{
}

컴파일 오류가 발생합니다.

$ go run helloWorld.go
### command-line-arguments
./helloWorld.go:7:1: syntax error: unexpected semicolon or newline before {

이는 Go 가 여는 중괄호가 바로 같은 줄에 오기를 기대하기 때문입니다.

프로그램의 핵심 문장은 fmt.Println("hello, world")로, fmt 패키지의 Println 함수를 호출하여 문자열 "hello, world"를 콘솔에 출력합니다. 이 함수는 문자열의 끝에 자동으로 줄 바꿈 문자를 추가합니다.

프로그램 실행

Go 는 컴파일 언어이지만, go run 명령어를 사용할 때 Go 는 먼저 소스 코드를 컴파일한 다음 결과 실행 파일을 실행합니다. 따라서 다음 명령어:

go run helloWorld.go

는 다음 두 명령어를 실행하는 것과 같습니다.

## 프로그램 컴파일
go build helloWorld.go

## 컴파일된 프로그램 실행
./helloWorld

새로운 예제를 시도하기 위해, 다른 Gopher 들에게 인사하도록 프로그램을 수정해 봅시다. helloGopher.go라는 새 파일을 만들고 코드를 다음으로 바꿉니다.

touch 명령어를 사용하여 새 파일을 만들 수 있습니다.

touch helloGopher.go
package main

import "fmt"

func main() {
 fmt.Println("hello Gopher.")
 fmt.Println("hello Gopher.")
 fmt.Println("hello Gopher.")
}

이제 go run 대신, go build를 사용하여 프로그램을 컴파일한 다음 생성된 실행 파일을 실행합니다.

## 프로그램 컴파일
go build helloGopher.go

## 컴파일된 실행 파일 실행
./helloGopher

이렇게 하면 다음과 같이 출력됩니다.

hello Gopher.
hello Gopher.
hello Gopher.

fmt 패키지의 주요 함수

1 단계에서, 우리는 출력을 인쇄하기 위해 fmt 패키지의 Println() 함수를 사용했습니다. fmt 패키지는 Go 에서 가장 일반적으로 사용되는 패키지 중 하나이며, 출력을 형식화하기 위한 여러 함수를 제공합니다.

다음은 세 가지 일반적인 출력 함수입니다.

  1. fmt.Print() – 줄 바꿈 없이 텍스트를 출력합니다.
  2. fmt.Println() – 줄 바꿈과 함께 텍스트를 출력합니다.
  3. fmt.Printf() – 형식화된 텍스트를 출력합니다.

이러한 함수들을 더 자세히 살펴보겠습니다. fmt.go라는 새 파일을 만들고 다음 코드를 입력합니다.

package main

import "fmt"

func main() {
    // Standard output
    fmt.Print("hello")
    fmt.Print("world")

    // Println adds a newline character after the standard output
    fmt.Println()
    fmt.Println("labex")

    // Printf provides formatted output
    fmt.Printf("%s\n", "London")
}

go run 명령어를 사용하여 프로그램을 실행합니다.

go run fmt.go

설명:

  • fmt.Print("hello")fmt.Print("world")Print가 줄 바꿈을 추가하지 않기 때문에 같은 줄에 텍스트를 출력합니다.
  • fmt.Println()은 줄을 구분하기 위해 줄 바꿈을 출력합니다.
  • fmt.Printf("%s\n", "London")은 문자열 "London"에 대한 %s 자리 표시자를 사용하여 출력을 형식화합니다.

다음은 함수의 간략한 비교입니다.

함수 표준 출력 줄 바꿈 형식화된 출력
Print × ×
Println ×
Printf × ×

fmt 패키지는 또한 입력 읽기, 오류 처리 등을 위한 다른 함수를 제공하며, 이는 이후 연습에서 다룰 것입니다.

요약

이 랩에서는 첫 번째 Go 프로그램을 작성하고, Go 프로그램의 구조에 대해 배우고, 출력을 위한 fmt 패키지의 기본 함수들을 탐구했습니다. 또한 Go 프로그램을 실행하는 연습을 하고 Print, Println, 그리고 Printf의 차이점을 배웠습니다. 이제 Go 구문과 프로그램 실행에 대한 기본적인 이해를 갖게 되었습니다.