본문 바로가기
CS/Go

[프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world

by Warehaus 2023. 4. 30.

 

 

안녕하세요 warehouse 입니다.

 

최근 프로젝트를 진행하면서

Go 언어를 접하게 되었습니다.

 

C++, Python 위주로 사용하였으나,

일부 모듈에서 Go 언어의 도입이 필요했기 때문인데요.

 

Go는 이미 꽤나 많은 프로젝트를 구현하는데 사용되어 왔고

현재 Rust 와 함께  C, C++ 의 뒤를 이을 언어 중 하나로 여겨지는 언어입니다.

 

이런 두터운 신망을 얻는 언어인 만큼 수많은 레퍼런스들이 온라인에 있다보니

제 포스팅이 새로 시작하는 분들에게 크게 도움이 되지 않을수도 있다는 생각도 듭니다.

 

허나,

저와 비슷한 흐름과 속도로 학습하시는 분들에게는

나름 읽어볼 만 하지 않을까 라는 생각이 있으며,

거창하게 공부하는 느낌이 아닌

핸드폰으로 쓱쓱 읽어볼 만한 기록을 남기는게 저의 목표입니다.

 

기록을 남기는 행위 자체 만으로 저의 성장에 도움이 되다보니

저는 꽤나 고무적인 상태입니다.

 

서론이 길었습니다.

 

앞으로의 포스팅은 대부분의 내용은 아래 사이트와 책을 참고하여 작성 될 예정입니다.

 

 

The Go Programming Language

DevOps & Site Reliability With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE.

go.dev

 

잘못 된 내용은 댓글로 남겨주시면

저에게는 큰 도움이 될 것 같습니다.

 

 

 

환경구성

 

우선 제 맥북에 필요한 환경을 구성합니다.

아래 사이트에서 다운로드를 진행합니다.

 

https://go.dev/dl/

 

All releases - The Go Programming Language

 

go.dev

 

15년산 맥북을 쓰는 저는 x86-64 에 해당하는 패키지를 받았습니다.

 

 

단계별로 설치를 진행합니다.

 

 

설치 용량은 30MB가 채 되지 않습니다.

설치가 완료되면 창을 종료합니다.

 

 

시작하기, Hello world

 

Go 설치는 끝났습니다.

제가 설치한 버전은

1.20.3 입니다.

 

아래 문서에 보면 Getting started 튜토리얼이 있습니다.

 

https://go.dev/doc/tutorial/getting-started

 

Tutorial: Get started with Go - The Go Programming Language

Documentation Tutorials Tutorial: Get started with Go Tutorial: Get started with Go In this tutorial, you'll get a brief introduction to Go programming. Along the way, you will: Install Go (if you haven't already). Write some simple "Hello, world" code. Us

go.dev

 

 

Hello world 테스트 코드를 작성합니다.

파일명은 helloworld.go 로 생성했습니다.

 

 

근데 어떻게 돌려야할까요?

명령어는 다음과 같습니다.

 

go run helloworld.go

 

수행 결과는 아래와 같습니다.

 

> go run helloworld.go
Hello, World!

 

Go 는 컴파일이 되는 언어입니다.

반복적으로 사용하는 경우 한번 컴파일 한 뒤 저장 된 컴바일 결과(바이너리파일)을 반복적으로 이용할 수 있습니다.

 

 

go build

 

앞에서 만들었던 helloworld.go 파일은

아래 명령어를 이용하여 빌드 가능합니다.

 

> go build helloworld.go

 

빌드가 완료되면 helloworld 바이너리 파일이 생성되는 것을 확인할 수 있습니다.

생성 된 helloworld 바이너리를 실행해 보면 go run 으로 실행한 결과와 동일하다는 것을

확인할 수 있습니다.

 

> ./helloworld
Hello, World!

 

 

Go 코드의 구성

 

Go 코드는 다른 언어의 라이브러리 그리고 모듈과 유사한 패키지로 구성됩니다.

 

패키지는 패키지의 역할을 정의하는 디렉토리 그리고 디렉토리 안에 있는 .go 소스파일로 이뤄집니다.

 

각 소스파일은 파일이 속한 패키지를 나타나는 package 정의로 시작되며,

그 뒤에는 import하는 다른 패키지 목록 그리고 이 파일에 저장되어 있는 프로그램의 선언 목록이 순서대로 이어집니다.

 

package main

import "fmt"

 

위에 예시에서는 main 이라는 패키지 정의,

fmt 패키지를 import 하였다는 것을 확인할 수 있습니다.

 

 

 

 

 

wh.