Golang

    [Go] 선언와 초기화 , zero value

    선언 및 초기화 (Declare & Initialize) //선언 var a int //선언과 동시에 초기화 var b int = 4 처음 변수 a 의 경우 초기값을 할당하지 않았으므로 정수형은 0, 문자형은 “”, 불리언은 false 로 초기화된다. 이렇게 이를 zero value라고 한다. 이때 할당하는 메모리의 모든 bit는 0으로 리셋된다. 메모리에 int 타입 크기에 해당하는 공간이 생기고,그 공간이 위치한 메모리 시작 주소를 a라는 이름로 지칭한다. 만약에 변수 b를 선언하면 컴퓨터는 메모리에 int 타입 크기에 해당하는 공간을 할당하고, 그 공간이 위치한 메모리 시작 주소를 b로 지칭한다. 그리고 해당 메모리 공간에 4라는 값을 복사한다. b = 10 만약 위의 변수 b의 값을 10으로 대입..

    [Go] go build 명령어를 사용해 개발,상용환경 분리하기

    회사에서 개발환경은 리눅스였고, 로컬과 운영은 윈도우환경이었기 때문에 빌드 조건을 분리해야 했다. 따라서 go build constraint를 사용하면 된다. 이는 특정 파일에 대한 빌드 제약을 걸수있는 방법을 말한다. //cli go build -tags=debug //해당 태그가 있으면 해당 파일을 실행 //in file +build debug //-> 해당 파일 실행해서 빌드 +build !debug //-> 해당 파일을 실행하지 않고 빌드 //debug는 키워드를 의미한다. - go build constraint 참고 링크 https://www.jetbrains.com/help/go/configuring-build-constraints-and-vendoring.html#build-constrain..

    [Go] Golang 환경변수, 파일, 명령어

    환경 변수 GOROOT : Go가 실제로 설치된 경로, go 관련된 실행파일, SDK가 위치 GOPATH: go 언어로 된 프로젝트를 사용하거나 사용할 워킹 디렉토리를 가리키는 환경변수를 말한다. 기본적으로 3개의 폴더를 가진다. src : 내가 작성한 프로젝트 소스 코드가 위치 bin : go install로 컴파일이 완료된 바이너리 파일이 저장될 위치 pkg: 외부 패키지의 컴파일이 끝난 오브젝트 파일들이 저장될 위치 +) 1.16버전 이후부터 기본적으로 gopath가 아닌 module 을 사용하게 변경되었다. 따라서 GOPATH 와 상관없이 아무 위치에서나 자신의 소스파일을 작성할수 있으며 모듈을 사용하기 위한 go.mod 파일도 반드시 필요하다. GO111MODULE : go가 package들을 ..