🔖 2019년 4월에 (https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65) 게시물을 보고 나서 Go언어 공부를 시작하게 되었습니다.
📁 모든 파일은 공부하면서 다른 입문자들의 GO언어 공부에 도움되었으면 좋겠다는 마음으로 정리해둔 파일입니다.
👨💻 GO_Files/StudyBook - GO언어에 존재하는 총 25개의 문법, 파일 입출력에 대한 다양한 예제들을 정리해뒀습니다.
2007년 3명의 구글의 개발자들이 C++의 복잡성이 싫어 개발을 시작
- 켄 톰프슨 : 유닉스 , B언어, C언어, UTF8 개발
- 롭 파이크 : 인페르노, UTF8 개발
- 로버트 그리즈머 : 크롬 자바스크립트 엔진 개발
- 컴파일 속도가 매우 빠른 컴파일 언어
- 컴파일 언어이지만 컴파일러가 소스 코드를 해석하는 pass 수를 줄여서 인터프리터 언어처럼 빠르게 동작
- 언어의 문법이 간결하여 높은 성능과 생산성을 낼 수 있다
- Go는 기본 라이브러리가 풍부하며, 써드파티 라이브러리가 많고, 코드가 간결하고, 키워드는 약 25개 정도로 적음
- 객체지향 언어들과 표현 방식이 매우 다르다
- 문법 자체는 익히기 쉽지만 Go로 제대로된 객체지향 프로그래밍을 하기 위해선 많은 숙련이 필요하다
- 고루틴이라는 비동기 매커니즘을 제공하여 이벤트 처리 및 병렬 프로그래밍 작성이 쉽다
- 고루틴은 OS에서 관리하는 경량 스레드보다 더 가볍기 때문에 CPU 코어갯수와 무관하게 수백, 수천만 고루틴을 작성해도 성능에 문제가 발생하지 않는다
break, default, func, interface, select, case, defer, go, map, struct, chan, else, goto, package, switch, const, fallthrough, if, range, type, continue, for, import, return, var
- go build : 소스 파일 자체의 정보만을 사용하여 Go 바이너리를 빌드한다. 별도의 makefile은 없다.
- go test : 유닛 테스트 및 마이크로벤치마크
- go fmt : 코드 서식 지정
- go get : 원격 패키지의 검색 및 설치
- go vet : 코드 내의 잠재적인 오류를 찾아내는 정적 분석기
- go run : 코드를 빌드하고 실행하는 바로 가기
- godoc : HTTP를 통해 문서 확인
- gorename : 변수, 함수 등을 type-safe 방식으로 이름 변경
- go generate : 코드 생성기를 호출하는 표준 방식
- NetFlix
- Twitch
- Dropbox
- Uber
- Docker
- MongoDB
- Paypal