코드 실행과정
- 폴더생성
- .go 파일 생성 및 작성
- Go 모듈 생성
- 빌드
- 실행
위의 다섯 가지 과정을 거친다.
1️⃣ 폴더 생성
Go 언어에서 모든 코드는 패키지 단위로 작성된다.
- 같은 폴더에 위치한 .go 파일은 모두 같은 패키지에 포함된다.
- 패키지명으로 폴더명을 사용한다.
- 폴더가 다르면 패키지도 달라진다.
2️⃣ .go 파일 생성 및 작성
Go문법을 이용하여 Go코드를 만드는 과정이다.
- 확장자는 반드시 .go로 끝나야 한다.
3️⃣ Go 모듈 생성
모든 Go 코드는 빌드하기 전에 모듈을 생성해줘야 한다.
- 1.16 버전 이후로는 Go 모듈이 기본으로 적용된다.
go mod init [폴더명]
- 모듈에는 모듈명과 go 버전, 필요한 패키지 목록 정보가 담겨져 있다.
4️⃣ 빌드
Go 코드를 기계어로 변환하여 실행파일을 만든다.
GOOS
와GOARCH
환경변수를 조정하여 다른 OS와 아키텍쳐에서 실행되는 실행 파일을 만들 수 있다.go tool dist list
명령으로 가능한 운영체제와 아키텍쳐 목록을 볼 수 있다.GOOS=linux GOARCH=amd64 go build
현재 시스템에서 실행되는 실행파일을 만들때는 그냥 go build 하면 된다.
5️⃣ 실행
이렇게 만들어진 실행 파일을 명령어로 실행하면 된다.
Hello World 코드 뜯어보기
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
1️⃣ package main
- main 패키지에 속한 코드임을 컴파일러에게 알려준다.
- 패키지는 코드 묶음이고 여러 기능을 제공한다.
- main 패키지는 프로그램 시작점을 포함하는 특별한 패키지이다.
main()
함수가 없는 패키지는 패키지 이름으로 main을 쓸 수 없다.main()
함수가 없기 떄문에 실행 파일을 만들 수는 없고 다른 패키지에서 외부 패키지로 사용된다.
Go 언어는 패키지 선언으로 시작되어야 한다.
package main은 프로그램 시작점이 있는 패키지다.
2️⃣ import “fmt”
- 표준 입출력을 다루는 내장 패키지인 fmt 패키지를 가져온다.
- 특정 패키지의 기능을 사용하기 위해서는 import로 해당 패키지를 불러와야 한다.
3️⃣ func main() {
- main() 함수를 선언한다.
- 프로그램 진입점 함수이다.
- 프로그램은 항상
main()
에서 시작되고 끝난다.
5️⃣ fmt.Println("Hello World!")
- 표준 출력으로 문자열을 출력하는 함수이다.
- Hello Go World를 실행한다.
'Programming > Go' 카테고리의 다른 글
[Golang] 함수 (Function) (1) | 2022.10.29 |
---|---|
[Golang] 연산자 (Operator) (0) | 2022.10.29 |
[Golang] 표준 입출력 (0) | 2022.10.23 |
[Golang] 변수 (0) | 2022.10.22 |
[Golang] Go는 어떤 언어? (1) | 2022.09.23 |