- 파블로프의 개
- golang으로 알고리즘 연습하기
- 간단한 프로젝트 구현하기
- static typed(type 미리 선언), strong typed(implicit 형변환 x)
- 모두 컴파일에러로 이어짐
- compile language
- 실행파일 바로 떨어짐
- garbage collection
- 컬렉터 내장되어 메모리관리 자동, 생산성 높일 수
- concurrency
- go 키워드를 통한 여러개 함수 실행(goroutine) 및 채널을 통한 통신 가능
- vs. 쓰레드(커널의 도움 받아 생성 부담스러움)
- multicore env
- module, package
- 자체 모듈화 제공, 다른 사람 소스 그대로 가져와 바로 사용 가능(go get, go install), 의존성 관리 쉬움
- fast compile speed
- docker도 이거로 만들어짐
- 웹브라우저, 서버, 디비 등 큰 규모의 복잡한 애플리케이션 개발에 적합 (메모리 관리 철저해야 하는 것에는 부적합)
docker run -it --name go golang:latest /bin/bash
- 기준 디렉터리, workspace 위치를 정의 하는 것
- workspace는 bin, pkg, src 디렉터리로 구성됨
export GOPATH=위치
- 이후에 go env 명령어를 통해 GOPATH 확인 가능
- 소스를 받아오거나 패키지를 컴파일할 때 해당 경로 기준으로 진행됨
- 진행하는 프로젝트 위치로 매번 수정해주기
기본적인 실행법 및 코드 구조 영어원본 참조하세요!
기본 문법은 여기가 최고입니다.
go build <source> # 소스가 위치하는 디렉터리에 컴파일
go install <source> # 관련 패키지 모두 받아와 컴파일 후 bin 디렉터리에 실행 파일 생성
go get <주소> # 외부 소스 fetch + build + compile
gofmt -w 소스.go # 자동 정렬!!!