Golang PlayGround: https://go.dev/play/
GO의 장점:Go는 병렬성, 동시성에 대해서 다른 언어에비해 장점을 가지고있다.
C에비해 가독성이좋고 생산성이 좋으며 메모리관리가 간편하고
Python이나 JS같은 언어에비해 빠르다
다운로드 -> 윈도우용 -> 설치 후 CLI에 : Go version 확인
그후 환경변수 변경 (GOPATH) 후 IDE (VS CODE)를 설정한다
.go 파일을 만들면 플러그인 설치할거냐고 알아서 묻는다
아니면 그냥 플러그인가서 go 설치하면 된다.
고 파일 실행 명령어
go run ***.go
go mod init <모듈이름> :모듈만들기
go build <경로> : go 빌드화하기
go install <경로> : go 응용프로그램으로 만들기
go get <패키지 명> : 패키지 받아오기
Godoc.org : GO 패키지 모음소
모듈에대한 문서 : https://go.dev/blog/using-go-modules
새로운 모듈을 만들어 봅시다.
외부 어딘가에 비어 있는 새 디렉토리 $GOPATH/src를 cd해당 디렉토리에 만든 다음 새 소스 파일을 만듭니다 hello.go.
package hello
func Hello() string {
return "Hello, world."
}
다음에서 테스트도 작성해 봅시다 hello_test.go.
package hello
import "testing"
func TestHello(t *testing.T) {
want := "Hello, world."
if got := Hello(); got != want {
t.Errorf("Hello() = %q, want %q", got, want)
}
}
go mod init example.com/hello
go test
PASS
ok example.com/hello 0.178s
Go 모듈의 주요 동기는 다른 개발자가 작성한 코드를 사용(즉, 종속성 추가)하는 경험을 개선하는 것이었습니다.
hello.go가져오기를 업데이트하고 rsc.io/quote 이를 구현하는 데 사용 합시다 Hello.
package hello
import "rsc.io/quote"
func Hello() string {
return quote.Hello()
}
go mod init <모듈 이름>
go mod tidy // 모드 add하기
go test
go list -m all //모든 종속성 모듈 가지고 오기
간접적으로 종속성이 필요한 패키지까지 함께 있는 모습을 볼 수 있다.
종속성을 주입하기위해 패키지를 그냥 다운받는 방법도 있다.
go get golang.org/x/text
go: downloading golang.org/x/text v0.6.0
go: upgraded golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c => v0.6.0
그외 패키지 관리 명령들
go list -m -versions rsc.io/sampler : 해당 패키지의 버전 보기
go get rsc.io/sampler@v1.3.1 : 특정버전 다운받기
아직 실제로 코딩을 한 단계는 아니고 npm 처럼 go get을 이용해서 패키지 관리를 할 수 있다는것을 알았다.
코딩은 타입스크립트와 어떤 차이가있는지 직접 비교해보면서 해보겠다.