GO 언어 익히기

Go 언어는 Strong Type 의 언어이며 문법이 매우 간결한 편이다. 또한 gofmt 와 같은 유틸리티가 기본적으로 내장되어 있어 코드를 일관성 있는 포맷으로 유지시키도록 되어있다.

LiteIDE 의 경우, 심지어 작성중인 코드를 ctrl+S 로 저장함과 동시에 gofmt 가 동작하여 코드를 일관성있는 포맷으로 변경시켜준다. 아키텍트였던 필자에게는 Java 개발 시 PMD 와 Eclipse 의 Formatter 기능을 합쳐놓은듯한 기분이 든다. 

이 강좌는 적어도 한두개 이상의 프로그래밍 언어를 할 줄 아는 사람을 대상으로 하기 때문에 가급적 연산자나 타입의 “의미”에 대해서는 길게 언급하지 않으며 Java, C/C++, JavaScript 와 비교해볼 때 새롭거나 다른 개념이 적용된 부분에 대해 주로 이야기 하도록 하겠다.


Hello World

Fortran, COBOL, Shell Script 까지 포함하여 이 Hello World 를 찍어볼 언어가 몇가지나 되는지 기억도 안날정도이다. 못해도 20여개 이상의 언어로 Hello World 를 찍어본듯하다.
이번에도 또 찍어보자. Hello World 를 찍고 Go 언어에 대해 설명을 들어가보도록 하겠다.

일반 모든 진행은 LiteIDE 를 사용하여 해 나아가므로 화면캡춰를 자주 사용하더라도 양해 부탁한다.

LiteIDE 를 실행한 후 제일 먼저 해주어야 할 것은 바로 GOPATH 를 LiteIDE 에 추가해주는 것이다.
(Windows 버전은 아직 확인을 안해보았지만 Mac OS X 버전의 경우, .app 이 사용하는 환경변수와 Terminal 에서 사용하는 Shell 의 환경변수가 공용하지 않기 때문에 Mac 에서는 GOPATH 를 수동으로 입력해주어야 한다)


메뉴에서 “Manage GOPATH…” 를 누르면 다이얼로그가 뜨는데, 하단부의 “custom Directories” 부분에 원하는 GOPATH 를 추가해준다

GOPATH 가 추가된 모습이다.

File>New… 메뉴를 누르면 New Project or File 다이얼로그가 보인다.
GOPATH: 리스트에서 위에서 추가한 GOPATH 를 “더블클릭” 한다. 그러면 하단의 Location: 부분의 경로가 업데이트 된다.

Template: 에서 Go Source File 을 선택하고, Name 에 HelloWorld 를 입력한다.
Location: 을 $GOPATH/src/HelloWorld 로 입력하고 OK 를 누른다


HelloWorld.go 파일이 자동으로 생성되었지만 좌측 상단의 “1:Folders” 뷰에 아무것도 보이지 않는다.
나중에 설명하겠지만 일단 “Folders” 로 선택되어있는 콤보박스를 눌러 “File System” 으로 다시 선택한다. 그러면 HelloWorld.go 가 보일것이다.


아래는 기본으로 생성된 HelloWorld.go 파일의 코드이다.
// HelloWorld
package main

import (
       "fmt"
)

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

package 는 현재 go 파일이 속하는 패키지 이름을 적는다. main 패키지는 특수한 패키지로, 프로그램의 Entry Point 가 되는 main() 함수를 갖는 Entry 패키지임을 지정하는 것이다.

import "fmt" 는 fmt 패키지를 import 한다는 의미이다.
    fmt 패키지는 Formatted I/O 패키지로, C 의 printf 나 println 과 유사한 함수들을 포함한다.

func 함수 선언자이다

CMD+B 를 눌러서 Build 를 해보면, File System Window 에 파일이 하나 추가된것을 볼 수 있다

소스파일이 컴파일되고 실행파일이 빌드되었다. Mac OS X 기준으로 2.1MB 용량의 파일이 생겼다. 
Go 는 VM 자체를 개별 실행파일에 포함하도록 되어있어서 기본적인 Footprint 사이즈가 이정도 나오게 된다.

CMD+R 로 실행을 시켜본다.

하단의 Output Window 에 Hello World! 가 출력됨을 볼 수 있다.


반응형

'Software Development > Go (golang)' 카테고리의 다른 글

3.3 Go - Package  (4) 2016.03.01
3.2 Go - 기본 문법 및 Type  (488) 2016.02.29
2. Go - 개발환경 구성  (458) 2016.02.28
1.3 Go 언어란? - 다른 언어와 비교  (1159) 2016.02.28
1.2 Go 언어란? - 주요 특징  (845) 2016.02.28
블로그 이미지

Good Joon

IT Professionalist Since 1999

,