[go language] 1번째! Hello 세상!

이번에는 간단히 몸풀기로 Hello World 프로그램을 분석해 보겠습니다.

소스코드는 아래와 같습니다.

[hello.go]
package main
import "fmt"
func main()
{
	fmt.Print("Hello 세상아!")
}
이제 하나 하나 간단히 살펴보겠습니다.

package main
go 랭기지는 자바의 package개념을  가지고 왔다고 합니다.
현제 소스코드가 main이라는 팩키지안에 있다고 선언해주는 내용입니다.

import "fmt"
위 코드도 자바를 하신 분이라면 매우 익숙하실 것입니다.
fmt패키지를 가져다 쓰겟다는 의미입니다. fmt팩키지는 아래에서 알아보겠습니다.

func main()
main이라는 함수명을 선언하는 내용입니다.
func 라는 키워드로 함수임을 나타내는 듯 합니다.

fmt.Print("Hello 세상아!")
c언어의 printf() 와 비슷한 역할을 하는 함수입니다. 우리가 위에서 import 했던
fmt 팩키지안에 있는 Print()함수를 사용합니다. 여기서 특이한 점은 세미 클론이 붙지 않는 다는 점입니다.
go랭기지에서는 문장 끝을 ;클론으로 따로 해줄필요가 없다고 합니다. 써줘도 무방합니다.

이제 컴파일과 링크를 하여 실행파일을 만들겠습니다.

여기서 8g는 386아키텍쳐용 컴파일러입니다. 6g는 amd64용 컴파일러 입니다. 마지막으로 5g는 arm용 컴파일러입니다. 다른 명령어도 앞의 숫자로 아키텍쳐를 구별합니다.

- 컴파일 과정.

[8g]명령으로 hello.go파일을 컴파일하여 hello.8파일이 생성됩니다.
#혹시 fmt를 import하지 못했다고 나오면 GOROOT의 패스설정이 잘못 된 경우 입니다.

그다음 [8l]명령으로 hello.8파일을 링킹하여 실행가능한 8.out이 생성됩니다.

그다음 8.out을 실행시켜보면 위와 같이 우리가 원하던 내용이 화면에 출력됩니다.


여기서 끝내면 아쉬우니까 오늘은 "fmt"팩키지를 살펴보도록 하겠습니다.
go 공식 사이트를 보면
fmt 에 대해 이렇게 정의하고 있습니다.

Package fmt implements formatted I/O with functions analogous to C's printf. 
The format 'verbs' are derived from C's but are simpler.

대략 입출력 기능인데 c와 비슷하다는 내용같습니다.

fmt팩키지 안의 함수는 아래와 같이 있습니다.


사용법은 c와 거의 동일합니다.

그외에 타입으로 
type Formatter
type GoStringer
type State
type Stringer

가 더있었는데 , 아직 모하는 건지 잘 모르겠습니다.ㅠㅠ 어서 공부를 더 해서 알아내야 겠네요.

그럼 여기까지 수고하셨습니다.^^*




'Go Language' 카테고리의 다른 글

[go language] 2번째! echo 프로그램  (0) 2010.01.19
Go Language Compiler 설치하기!!  (0) 2010.01.16

Go Language Compiler 설치하기!!

2009년 말에 google 에서Go Language라는 이름으로
 새로운 computer Language를 발표 했습니다. 
현재 linux와 mac을 공식지원하고 cpu아키텍처는 32BIT , 64BIT ,ARM까지 지원합니다.
ARM을 지원하는 것은 안드로이드 때문이라고들 하는데요. 
안드로이드 열풍에 적응하려면 조금이라도 공부해두면 좋을것 같습니다.
리눅스,맥,윈도우에서의 설치하는 과정을 다루어 보았습니다^^


1. 리눅스 

첫번째로 환경 설정을 해야합니다.
홈디덱토리의 .bashrc에 아래의 내용을 추가합니다.

export GOROOT=$HOME/go                                  
export GOARCH=386         #<32bit운영체제일 때>       
#export GOARCH=amd64    <64bit운영체제일 때>      
export GOOS=linux                                               
export GOBIN=$HOME/bin
export PATH=$PATH:$GOBIN

작성이 끝나면 아래의 명령어로 적용시킵니다.
$HOME > source .bashrc

그후 root권한으로
아래의 명령들을 타이핑 합니다.

> apt-get install mercurial
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
> sudo apt-get install bison gcc libc6-dev ed make
# 설치 되있는 거는 빼도 됩니다.
> cd $GOROOT/src
> make all

그러면 한참 컴파일 후 완료 됩니다.
정상적으로 되었나 [8g]명령어로 확인해 보면 다음과 같이 나오면 성공입니다.

2.MacOSX
환경설정은 아래와 같은 내용으로 [/Users/"유저네임"/.MacOSX/environment.plist]를 작성해준다음 재부팅 하면된다. [.MacOSX]폴더와 하위 파일은 직접 만들어 주어야 한다.
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

        
        GOARCH
        386
        GOBIN
        $HOME/bin
        GOOS
        darwin
        GOROOT
        $HOME/go
        
스노우 레오퍼드라서 64비트로 설정해야될줄 알앗더니 32비트로 아키텍처를 설정해야 되더군요.
sudo easy_install mercurial
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
# sudo apt-get install bison gcc libc6-dev ed make 이 과정은 생략됩니다.
# Xcode에 다 포함되어있다고 합니다. Xcode가 미리 설치되있다는 가정하에 진행합니다.
> cd $GOROOT/src
> make all

설치가 모두 끝났습니다. 터미널에서 [8g]명령을 입력해서 다음과같이 나오면 잘 설치 된겁니다.



3. 윈도우 
공식사이트에서는 아직 윈도우를 지원하고 있지 않지만, 역시 누군가가 완벽하진 않지만 되게는 해놓았습니다.
았습니다.

http://code.google.com/p/go-windows

위 사이트에서 go-1.zip파일을 다운 받으시고

원하시는 폴더에 압축을 풉니다. <(c:\go)라고 가정>
그후 환경변수를



GOROOT=c:\go
GOOS=mingw
GOARCH=386
PATH"C:\go\bin"을 추가해 줍니다.

이렇게 설정해 줍니다.
이제 커맨드 창을 열어서 시험해봅니다.
[8g] 명령을 입력했을때 다음과 같이 나오면 성공입니다.


윈도우버전은 정식 버전이 아니기 때문에 386아키텍처만 지원하고 약간의 버그도 있는 듯 합니다.

이제 설치를 마추었으니 열심히 공부해봅시다!!

#위 과정은 ubuntu 9.10, MacOSX 스노우레오퍼드, 윈도우 7에서 진행한 것입니다.

'Go Language' 카테고리의 다른 글

[go language] 2번째! echo 프로그램  (0) 2010.01.19
[go language] 1번째! Hello 세상!  (0) 2010.01.16
prev 1 ··· 8 9 10 11 next