- [golang]Go언어란 뭐지 ? Go언어 환경변수 등록 목차
이번에 회사에 들어가게 되면서, 회사는 go언어를 backend로 사용하는 거 같으니
인프런에서 인강을 바로 끊고 학습해보았다.
먼저
golang(고언어)에 대해 알아보자
Go언어란?
왜 태어났지?
Go 언어는 구글이 개발한 언어로 빠른 성능과 안정성 & 편의성 & 쉬운 프로그래밍을 목적으로 탄생했다.
그래서 뭐가 좋아서 사용하는건데 ?
-
더보기매우 간단한 문법으로 배우기 쉬습니다.
- loop 문법으로 while이 없고 오직 for만 있습니다.
- class 문법이 없습니다.
-
더보기정적타입 / 강타입 언어입니다.
-
더보기컴파일속도가 빠른 컴파일 언어입니다.
- 컴파일 속도가 빨라서 인터프리터 언어처럼 쓸 수 있습니다.
-
더보기속도가 빠릅니다.
- 여러분이 Go로 알고리즘 문제를 해결한다면 다른 언어와 비교할 수 없는 빠른 속도로 해결할 수 있습니다.
-
더보기고루틴이 있습니다.
- 고루틴은 쓰레드보다 매우 가볍고 쉽게 이용이 가능합니다.
-
더보기풍부한 기본 모듈을 제공합니다.
- 자체 제공하는 패키지들이 강력해서 별도의 웹 프레임워크를 사용하지 않아도 웹을 개발할 수 있습니다. 파이썬으로 순수 웹 개발이 힘들기에 장고, 플라스크 프레임워크를 사용하는 것에 대조됩니다.
-
더보기신뢰할 수 있는 제작사, 대기업들의 사용합니다.
- 구글이 만들었고 YouTube 개발에 사용하는 언어입니다. 해외에는 우버, 넷플릭스, BBC 가 사용하고 있으며 도커 또한 Go로 개발하였습니다. 국내는 카카오엔터프라이즈, 당근마켓, 왓차, 버즈빌 등 대기업, 스타트업이 사용하는 언어입니다.
-
더보기컨벤션이 통일되어 있습니다.
- 컨벤션에 맞추어 코드를 수정해주는 go fmt 기능이 있다.
- VS Code에서 저장을 누르는 순간 formatter가 포멧을 바로 맞추어줍니다.
-
더보기채널 기반 언어입니다.
- Go는 대표적인 채널 기반 언어입니다. 스레드라는 것을 명시적으로 주지 않고 고루틴을 생성하면 알아서 스레드를 생성해주고 적절한 스레드에 고루틴을 할당합니다. goroutine 사이의 커뮤니케이션을 전부 채널을 통해서 한다면 동기화 문제를 신경 쓰지 않아도 된됩니.
-
더보기네이티브 바이너리가 나온다.
- 결과를 배포하는 입장에서 네이티브 바이너리가 나온다는 것은 매우 큰 장점입니다. 요즘은 대부분 서버에 파이썬이나 JVM이 설치되어 있지만, 역시 배포는 네이티브 바이너리로 하는 것이 가장 편합니다.
- 그러나 바이트 코드를 생성하는 언어가 아니므로 바이너리만 배포하는 경우 (C와 C++처럼) 타겟 머신에 맞추어 각각 컴파일을 해야해야합니다.
-
더보기인터페이스 기반의 폴리모피즘
-
더보기Go에서 폴리모픽한 코드를 작성하는 유일한 방법은 인터페이스를 인자로 넘기는 것입니다. 이 덕분에 인터페이스 단위의 추상화가 자연스럽게 이루어집니다.
-
GO 폴더 구조
src -> 프로젝트 source들이 저장되는 곳 확장자가 .go인 파일이 저장 됨.
pkg -> 외부에서 참조하는 소스 코드들
bin -> 우리가 만든 소스 코드를 install 할 경우 bin 폴더에는 실행 가능한 파일이 생성됩니다.
그럼 go는 어디에 설치가 될까? (Mac 기준)
go 폴더 내부에는 pkg,src,bin 폴더가 생성되어있다 !
만일 우리 프로젝트 폴더내의 pkg 폴더에서 파일이 없다면 해당 사진의 경로의 pkg 폴더 내부에서 패키지 파일을 찾습니다!
go 환경설정
"go env" 입력 !
여기서 중요하게 봐야하는 곳은
바로 "GOROOT"와 "ROOPATH"와 "GOBIN" 부분입니다.
GOROOT : GO가 설치된 곳
ROOPATH : 프로젝트의 경로 (현재 저기 폴더는 존재하지 않는 폴더입니다.)
GOBIN: 프로젝트 폴더내의 bin 폴더의 위치 (최종적인 결과물들이 저장되는 위치입니다.)
Editor로 GO 환경변수 설정하기
해당 폴더내에서 파일을 vim 에디터로 열어줍니다.
위와 같이 내용을 수정해주고(수정은 i 눌러서 수정) esc -> wq! 입력 후 저장해주면됩니다!
주의할 점
GOPATH 같은 경우 내 go project의 경로를 적어야하기 때문에 document OR desktop 의 경로 즉, 자신 프로젝트가 위치한 경로를 잘 적어줘야합니다.
저는 zshrc 에서 사용해서 마지막 path 설정 시 zshrc로 설정하였습니다 !
source ~/.bash_profile 입력 !
source 명령어는 스크립트 파일을 수정한 후에 수정된 값을 바로 적용하기 위해 사용하는 명령어입니다.
예륻들어 /etc/bashrc 파일을 수정 후 저장하여도 수정한 내용이 바로 적용되지 않는다. 리눅스를 재시작해야 적용이 됩니다 참고해주세요.
저장이 제대로 됐는지 다시 확인 !
'golang' 카테고리의 다른 글
[golang]Golang 문자열 연산과 결합 (0) | 2021.07.04 |
---|---|
[golang]Go언어 문자열 (0) | 2021.07.02 |
[golang]문법 정리 (0) | 2021.07.01 |
[golang]Go언어 반복문(for문) (0) | 2021.07.01 |
[golang]Go언어 실행 (0) | 2021.07.01 |