일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- cicd
- 성능최적화
- route
- graphql
- scrapping
- npx
- component
- 정규표현식
- go
- express
- 웹크롤링
- Recoil
- 회고
- 포트포워딩
- AWS
- javascript animation
- typescript
- socket.io
- Modal
- react
- 웹팩
- CDN
- Redux
- styled-component
- 반응형웹
- docker
- sequelize
- Today
- Total
프로그래밍 공부하기
Go 본문
go는 병렬처리가 가능하여 매우 빠르게 동작하는 언어이다. 시간이 오래 걸릴만한 동작들을 go 언어로 된 모듈로 만들어 실행시키면 효율적인 작업 처리가 될 것 같아서 조금 학습해 보려고 한다.
1. 다운받기
golang.org/dl/에 가면 go의 설치파일을 다운받을 수 있다. 나의 경우 ubuntu를 사용하므로 리눅스 파일을 Download 경로에 다운받았다.
2. 압축 해제 및 환경변수 설정
sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
go의 설치파일의 압축을 /usr/local 위치에 풀어준다. 만약 이미 go가 설치되어 있다면 rm -rf /usr/local/go 명령을 먼저 실행하여 이전버전의 go를 제거한다.
export PATH=$PATH:/usr/local/go/bin
go의 환경변수를 설정한다.
go version
go의 버전을 확인하여 잘 설치 되었는지 확인한다.
3. 코드 관리
go env | grep GOPATH
위 명령어로 go 코드 작업 위치를 확인한 후 해당 위치로 이동한다. go는 다른 언어처럼 아무 폴더에서 go를 쓸 수 있는 것이 아니라 환경변수에서 GOPATH로 지정된 위치에서만 작업할 수 있기 때문이다.
mkdir bin pkg src
이동한 go 코드 작업 위치에서 bin, pkg, src 폴더를 생성한 후 src 위치로 이동한다.
cd src
mkdir github.com/
cd github.com/
mkdir imhyelim1209
src 위치에서 github.com/ 폴더를 만든 후 그 안에 imhyelim1209 폴더를 생성한다. 그 의미는 github.com/imhyelim1209라는 곳에서 다운받은 코드들은 모두 이 곳에 저장하겠다는 의미이다. 이렇게 도메인 별로 코드를 분류하여 정리하는 것이 관리가 편하다고 한다.
4. 코드 실행
cd imhyelim1209
mkdir testgo
이제 작업하고 싶은 프로젝트의 폴더를 생성하고 해당 폴더를 vscode로 연 다음 main.go라는 파일을 하나 만들어보자. 이 때 다양한 installation 알람이 뜨는데 이를 모두 설치해준다.
package main
func main() {
println("go Test")
}
만들어진 go 파일에 위와 같은 코드를 작성한 뒤 go run main.go로 코드를 실행해보고 잘 동작한다면 성공이다!
go env -w GO111MODULE=auto
추가적으로 만약 Go1.16 버전을 사용하며 작업에서 export하는 모듈들을 만들어 사용하고 싶다면 현재 디렉토리나 상위 디렉토리의 패키지를 import하기 위해선 위와 같이 GO111MODULE 환경변수를 auto로 바꾸어 주어야한다.
노마드 코더 강의: youtu.be/fqnKJa02GK0
go 설치 공식문서: golang.org/doc/install
'Web > [Other] Language' 카테고리의 다른 글
[Python] 웹크롤링 2 - 로그인 (0) | 2021.02.28 |
---|---|
[Python] 웹크롤링 1 - BeautifulSoup와 requests (0) | 2021.01.09 |
[Python] 아스키코드변환: ord, chr (0) | 2021.01.08 |
[Python] //연산과 %연산의 결과는 다른 언어와 다르다. (0) | 2020.12.19 |