GO - Hello World!
예전에 Go라는 언어가 막 등장해서 뜨기 시작했을 때 관심을 갖게 되었습니다. 저한테 Go는 그저 신기한 언어였습니다. 특이한 문법과 C언어와 비슷하면서도 비슷하지 않은 문법. 새로운 것 좋아하고 호기심이 많은 저에게 딱이었습니다. 그리고 귀여운 캐릭터까지! (호불호가 많이 갈리긴 하지만요)
그래서 무작정 Go 라는 언어를 공부했었는데(repo 마지막 커밋 날짜를 보니 2020년 12월 17일었군요), 역시나 당시에는 써먹을 곳이 많지 않아 뒷전으로 두게 되었고 결국 지금은 아예 다 까먹게 되었습니다. 그리고 지금. 그 Go를 다시 꺼내보려고 합니다.
Go를 다시 꺼내게 된 이유는 예전에 1인 프로젝트에 관련한 글을 읽고 마음 속에 담아만 두다가, 이제는 뭐라도 시작해봐야겠다 하는 마음에 가장 인상 깊었던 언어를 꺼내들게 되었습니다. 물론 지금 현업에서 사용하고 있는 언어에 대한 깊이를 더 쌓는 게 좋지 않나에 대한 생각도 당연히 들지만, 개발 쪽에서 요즘 재미를 다시 찾고 싶다는 생각에 시작했습니다.
Golang 설치
현재 제 개발 노트북에는 OS가 리눅스 민트가 설치되어 있어서 그 기준으로 작성되었습니다.
# 설치
sudo apt install golang -y
# 확인
go version
그 외의 OS는 공식 홈페이지에서 다운 받거나 명령어를 이용하여 설치하시면 됩니다.
sample 코드 살펴보기
현재 Goland라는 IDE를 사용중인데, Goland을 이용해서 Goland 프로젝트를 생성하면 Sample 코드를 생성할 수 있습니다. 중요한 건 아니지만 이 샘플 코드를 간단하게 살펴보겠습니다.
package main
import (
"fmt"
)
func main() {
s := "gopher"
fmt.Println("Hello and welcome, %s!", s)
for i := 1; i <= 5; i++ {
fmt.Println("i =", 100/i)
}
}
약간 C 계열 프로그래밍 언어의 형태와 유사합니다. 이 코드를 실행하려면 GoLand 내에서 빌드 구성을 해서 실행시키는 방법도 있지만,
go run .
으로 실행하는 방법도 있습니다.
자바와 비교해보자면, 우선 세미콜론이 없습니다. 물론 이제는 오랫동안 해았기 때문에 세미콜론이 습관적으로 뒤에 붙고, 또 IDE들이 좋아져서 자동으로 채워주거나 알려주기도 합니다. 하지만 그래도 세미콜론을 안붙여도 된다니..! 물론 Go에만 해당되는 건 아니지만 편리한 건 틀림없습니다.
그리고 for문에 불필요한 괄호도 존재하지 않습니다. 이건 Python과도 유사하죠? 또 변수를 초기화할 때 := 문자를 쓰는데 자세한 건 앞으로 공부하면서 정리할 예정입니다.
Hello, World
Go 프로젝트 생성
package main
import "fmt"
func main() {
fmt.Println("Hello, Go")
}
Go 파일은 패키지 선언, import, main 함수 순서로 작성됩니다. 그리고 모든 Go 내장 패키지는 https://pkg.go.dev/std 에서 확인할 수 있습니다.
Go 코드에서의 특이점
- 세미콜론을 사용할 수 있지만 필수는 아니며 일반적으로 생략한다.
- 일반적인 Go 코드 스타일을 따르지 않으면 컴파일 에러 발생할 수 있다.
package main
import "fmt"
func main()
{
fmt.Println("Hello, Go")
}
// 중괄호를 개별 라인에 넣으려고 하면 컴파일 에러 발생.
기본 명령어
# 컴파일
go build main.go
# 실행 파일 실행
./main
# clean
go clean main.og
# 실행
go run main.go