구글에서 밀고 있는 간결한 Go 언어를 공부하려고요.
사실은 블록체인을 공부하고 싶은데요.
나만의 블록체인을 만들고 싶어서 찾던 중에
이더리움이 자료가 많아서 쉽게 접근할 수 있을 거 같아서 결정하게 되었어요.
이더리움 개발 언어가 다양하고
(Java , Python , JavaScript , Go , Rust , .NET , Delphi , Dart)
자바로도 가능해서 시작하기에 거부감이 없을 거 같아요.ㅋ
가만히 생각하다가 이더리움도 처음 시작하는 거라
이왕이면 앞으로도 다양한 분야에서 활용될 기대가 되는 Go언어도 같이
처음 시작하는 의미로 이더리움과 함께 공부하기로 했어요.
설치부터 해볼게요.
우선 Go 홈페이지에 접속해서 최신 버전을 확인합니다.
현재 1.17.3이 최신 버전이네요.
Linux에 마우스를 올리면 아래 다운로드 경로가 표시됩니다.
적어두세요.ㅋ
https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz
Linux 클릭하면 바로 다운로드되지만
리눅스로 다시 옮겨야 되는 번거로움이 있잖아요.ㅋ
귀차니즘으로 리눅스에서 한번에 다운로드합니다.
그리고 리눅스에서 패키지 설치(rpm, yum ..)가 아닌
소스 빌드로 설치되는 프로그램이거나
지금처럼 압축 해제와 같은 응용프로그램 설치 위치는 /usr/local 입니다.
기억하세요.
★ Go 설치 과정을 간단히 정리하면
① /usr/local 위치로 이동
② Go 파일 다운로드
wget https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz
③ 압축해제 , 파일 정리
④ 사용자 계정에 Go 설치 경로 환경 잡아주기
① /usr/local 위치로 이동 [root@localhost ~]# cd /usr/local [root@localhost local]# ll total 0 drwxr-xr-x. 2 root root 6 Apr 11 2018 bin drwxr-xr-x. 2 root root 6 Apr 11 2018 etc drwxr-xr-x. 2 root root 6 Apr 11 2018 games drwxr-xr-x. 2 root root 6 Apr 11 2018 include drwxr-xr-x. 2 root root 6 Apr 11 2018 lib drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64 drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin drwxr-xr-x. 5 root root 49 Nov 18 03:44 share drwxr-xr-x. 2 root root 6 Apr 11 2018 src ② Go 파일 다운로드 [root@localhost local]# wget https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz --2021-11-29 15:12:40-- https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz Resolving dl.google.com (dl.google.com)... 142.251.42.174, 2404:6800:4004:820::200e Connecting to dl.google.com (dl.google.com)|142.251.42.174|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 134804820 (129M) [application/x-gzip] Saving to: ‘go1.17.3.linux-amd64.tar.gz’ 100%[================================================>] 134,804,820 9.91MB/s in 13s 2021-11-29 15:12:54 (10.0 MB/s) - ‘go1.17.3.linux-amd64.tar.gz’ saved [134804820/134804820] [root@localhost local]# ll total 131648 drwxr-xr-x. 2 root root 6 Apr 11 2018 bin drwxr-xr-x. 2 root root 6 Apr 11 2018 etc drwxr-xr-x. 2 root root 6 Apr 11 2018 games -rw-r--r--. 1 root root 134804820 Nov 4 11:22 go1.17.3.linux-amd64.tar.gz drwxr-xr-x. 2 root root 6 Apr 11 2018 include drwxr-xr-x. 2 root root 6 Apr 11 2018 lib drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64 drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin drwxr-xr-x. 5 root root 49 Nov 18 03:44 share drwxr-xr-x. 2 root root 6 Apr 11 2018 src ③ 압축해제 , 파일 정리 [root@localhost local]# tar xvfz go1.17.3.linux-amd64.tar.gz go/ go/AUTHORS go/CONTRIBUTING.md go/CONTRIBUTORS go/LICENSE ~~~~~~~~~~~~~~~~~~~~중간 생략~~~~~~~~~~~~~ go/test/varinit.go go/test/winbatch.go go/test/writebarrier.go go/test/zerodivide.go [root@localhost local]# ll total 131648 drwxr-xr-x. 2 root root 6 Apr 11 2018 bin drwxr-xr-x. 2 root root 6 Apr 11 2018 etc drwxr-xr-x. 2 root root 6 Apr 11 2018 games drwxr-xr-x. 10 root root 257 Nov 4 10:04 go -rw-r--r--. 1 root root 134804820 Nov 4 11:22 go1.17.3.linux-amd64.tar.gz drwxr-xr-x. 2 root root 6 Apr 11 2018 include drwxr-xr-x. 2 root root 6 Apr 11 2018 lib drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64 drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin drwxr-xr-x. 5 root root 49 Nov 18 03:44 share drwxr-xr-x. 2 root root 6 Apr 11 2018 src ♠ go 디렉터리 구경하기 [root@localhost local]# cd go [root@localhost go]# ll total 216 drwxr-xr-x. 2 root root 4096 Nov 4 10:04 api -rw-r--r--. 1 root root 55782 Nov 4 10:04 AUTHORS drwxr-xr-x. 2 root root 29 Nov 4 10:07 bin -rw-r--r--. 1 root root 52 Nov 4 10:04 codereview.cfg -rw-r--r--. 1 root root 1339 Nov 4 10:04 CONTRIBUTING.md -rw-r--r--. 1 root root 107225 Nov 4 10:04 CONTRIBUTORS drwxr-xr-x. 2 root root 80 Nov 4 10:04 doc drwxr-xr-x. 3 root root 18 Nov 4 10:04 lib -rw-r--r--. 1 root root 1479 Nov 4 10:04 LICENSE drwxr-xr-x. 12 root root 165 Nov 4 10:04 misc -rw-r--r--. 1 root root 1303 Nov 4 10:04 PATENTS drwxr-xr-x. 6 root root 76 Nov 4 10:07 pkg -rw-r--r--. 1 root root 1480 Nov 4 10:04 README.md -rw-r--r--. 1 root root 397 Nov 4 10:04 SECURITY.md drwxr-xr-x. 48 root root 4096 Nov 4 10:04 src drwxr-xr-x. 26 root root 12288 Nov 4 10:04 test -rw-r--r--. 1 root root 8 Nov 4 10:04 VERSION ♠ /usr/local 디렉터리가 지져분해서 다운로드 파일을 /tmp (임시폴더)로 이동 [root@localhost local]# mv go1.17.3.linux-amd64.tar.gz /tmp [root@localhost local]# ll total 0 drwxr-xr-x. 2 root root 6 Apr 11 2018 bin drwxr-xr-x. 2 root root 6 Apr 11 2018 etc drwxr-xr-x. 2 root root 6 Apr 11 2018 games drwxr-xr-x. 10 root root 257 Nov 4 10:04 go drwxr-xr-x. 2 root root 6 Apr 11 2018 include drwxr-xr-x. 2 root root 6 Apr 11 2018 lib drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64 drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin drwxr-xr-x. 5 root root 49 Nov 18 03:44 share drwxr-xr-x. 2 root root 6 Apr 11 2018 src ④ 사용자 계정에 Go 설치 경로 환경 잡아주기 패키지로 설치되지 않고 압축만 풀었기때문에 사용자들이 Go를 실행할수 없습니다. 그래서 사용자 계정에 PATH를 잡아줘야 됩니다. Go 실행 경로 : /usr/local/go/bin ♠ tmach 계정으로 전환 [root@localhost go]# su - tmach [tmach@localhost ~]$ ls -al total 16 drwx------. 3 tmach tmach 95 Nov 29 04:15 . drwxr-xr-x. 6 root root 70 Nov 29 04:20 .. -rw-------. 1 tmach tmach 1281 Nov 29 15:11 .bash_history -rw-r--r--. 1 tmach tmach 18 Mar 31 2020 .bash_logout -rw-r--r--. 1 tmach tmach 193 Mar 31 2020 .bash_profile -rw-r--r--. 1 tmach tmach 231 Mar 31 2020 .bashrc drwxrwxr-x. 4 tmach tmach 115 Nov 29 14:32 test ♠ PATH 잡아주기 [tmach@localhost ~]$ vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/go/bin export PATH ♠ profile 적용 [tmach@localhost ~]$ source .bash_profile ♠ profile 적용 정상인지 체크 go 명령어가 잘 실행 되는지 보기 위해 go version 또는 go 실행합니다. [tmach@localhost ~]$ go version go version go1.17.3 linux/amd64 [tmach@localhost ~]$ go Go is a tool for managing Go source code. Usage: go <command> [arguments] The commands are: bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environment information fix update packages to use new APIs fmt gofmt (reformat) package sources generate generate Go files by processing source get add dependencies to current module and install them install compile and install packages and dependencies list list packages or modules mod module maintenance run compile and run Go program test test packages tool run specified go tool version print Go version vet report likely mistakes in packages Use "go help <command>" for more information about a command. Additional help topics: buildconstraint build constraints buildmode build modes c calling between Go and C cache build and test caching environment environment variables filetype file types go.mod the go.mod file gopath GOPATH environment variable gopath-get legacy GOPATH go get goproxy module proxy protocol importpath import path syntax modules modules, module versions, and more module-get module-aware go get module-auth module authentication using go.sum packages package lists and patterns private configuration for downloading non-public code testflag testing flags testfunc testing functions vcs controlling version control with GOVCS Use "go help <topic>" for more information about that topic. |
★ go 샘플 작성해서 잘 실행되는지 볼게요.
[tmach@localhost test]$ vi helloWorld.go package main import "fmt" func main() { fmt.Println("Hello World~~") } [tmach@localhost test]$ go run helloWorld.go Hello World~~ |
hello World 글자 보니깐 맘이 안정되네요. ㅋ
감사합니다.
'IT > PROGRAM' 카테고리의 다른 글
Express 설치 . Node.js + Express 웹서버 구축하기 (0) | 2022.10.03 |
---|---|
go언어 시작하기 . 기초 코딩 문법 정리 ① (1) | 2022.10.01 |
VirtualBox 윈도우 10 설치 . Win10 ISO 파일 (0) | 2022.09.29 |
Pro*C . 한줄 단건만 조회하는 select 예제 (0) | 2022.09.29 |
Pro*C 컴파일 과정과 Makefile 만들기 (0) | 2022.09.28 |
댓글