1. Go 프로그램의 기본 구조

Go 프로그램은 패키지를 선언한 후 필요한 패키지를 import하는 것으로 시작하며, 패키지 수준의 변수, 상수 및 유형 선언, 마지막으로 패키지에 포함된 함수들이 이어집니다. "Hello World"를 예로 들면, 다음은 Go 프로그램의 전형적인 기본 구조입니다:

package main // 독립적으로 실행되는 프로그램을 나타내는 main 패키지를 선언

import "fmt" // 입력 및 출력 함수를 포함하는 fmt 패키지를 import

// 프로그램의 진입점인 main 함수
func main() {
    fmt.Println("Hello, World!") // 터미널에 Hello World를 출력
}

패키지의 개념과 목적

Go 언어에서 패키지는 여러 개의 Go 소스 파일의 컬렉션이며, 고수준의 코드 재사용 메커니즘으로 기능합니다. Go의 각 파일은 패키지에 속하며, 패키지 이름은 해당 패키지가 위치한 디렉토리 이름과 동일해야 합니다.

소스 코드 파일의 명명 규칙

Go 소스 파일의 명명은 일반적으로 소문자를 따르고, 여백이나 특수 문자를 포함하지 않습니다. (예: hello_world.go). 소스 파일 이름은 패키지 이름과 일치할 필요는 없지만, 동일한 패키지 내의 모든 파일에서 패키지 선언문은 일관된 패키지 이름을 가져야 합니다.

프로그램 내에서 주석 사용

Go 언어에서 주석은 두 가지 형태로 나타납니다: //로 시작하는 한 줄 주석 및 /*로 시작하고 */로 끝나는 여러 줄 주석입니다. 주석의 내용은 컴파일러에 의해 무시됩니다.

// 이것은 한 줄 주석입니다

/*
이것은 여러 줄에 걸친 주석입니다
여러 줄에 걸쳐 작성됩니다.
*/

2. main 함수 및 프로그램의 진입점

Go 프로그램에서 main 함수는 특별히 프로그램의 진입점으로 설계되었습니다. Go 런타임은 자동으로 main 패키지 내의 main 함수를 호출하여 프로그램을 시작합니다.

package main

import "fmt"

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

main 함수는 인수를 받지 않고 반환 값이 없습니다. main 함수의 실행이 끝나면 프로그램이 자동으로 종료됩니다. 프로그램이 종료될 때 상태 코드를 반환해야 하는 경우, os.Exit 함수를 사용해야 합니다.

3. 프로그램 빌드 및 실행

go build 명령어 사용

go build 명령어를 실행하면 소스 코드 파일이 컴파일되고 실행 파일이 생성됩니다. 터미널에서 소스 파일이 위치한 디렉토리로 이동한 다음 다음 명령어를 입력합니다:

go build hello_world.go

성공적으로 실행되면 현재 디렉토리에 hello_world (또는 Windows의 경우 hello_world.exe)이라는 실행 파일이 생성됩니다.

go run 명령어 사용

go run 명령어는 Go 프로그램을 컴파일하고 실행하는데 매우 편리합니다. Hello World 프로그램을 실행하려면 다음을 입력할 수 있습니다:

go run hello_world.go

이 명령을 실행한 후 터미널에서 즉시 "Hello, World!" 출력을 확인할 수 있어야 합니다.

4. 프로그램 출력

Go 프로그램에서 fmt 패키지에서 제공하는 Println 함수를 사용하여 정보를 터미널에 출력할 수 있습니다. 아래는 터미널에 "Hello, World!"를 출력하는 코드 예제입니다:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!") // 터미널에 출력
}

프로그램을 실행한 후 출력 결과는 직접 명령행 터미널에서 확인할 수 있습니다. 또한 log 패키지를 사용하거나 표준 출력 스트림 os.Stdout을 직접 조작해서 더 복잡한 출력 요구사항을 충족할 수 있습니다.

import "os"
os.Stdout.WriteString("Hello, World!\n") // 표준 출력 스트림 직접 조작

import "log"
log.Println("Hello, World!") // 날짜 및 시간 정보를 포함하는 출력에 log 패키지 사용

이러한 기본적인 출력 방법은 사용자와의 상호 작용 및 프로그램 디버깅을 위해 중요한 수단으로 사용되며, 중요한 정보를 출력하는 데 일반적으로 사용됩니다.