Golang (1) - First Step

Seong·2023년 1월 15일
0

Golang

목록 보기
1/1

Golang PlayGround: https://go.dev/play/

GO의 장점:Go는 병렬성, 동시성에 대해서 다른 언어에비해 장점을 가지고있다.
C에비해 가독성이좋고 생산성이 좋으며 메모리관리가 간편하고
Python이나 JS같은 언어에비해 빠르다

1. 설치하기

https://go.dev/

다운로드 -> 윈도우용 -> 설치 후 CLI에 : Go version 확인

그후 환경변수 변경 (GOPATH) 후 IDE (VS CODE)를 설정한다

VSCODE 설정법

.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을 이용해서 패키지 관리를 할 수 있다는것을 알았다.

코딩은 타입스크립트와 어떤 차이가있는지 직접 비교해보면서 해보겠다.

profile
메모장

0개의 댓글