www.udemy.com/course/go-programming-language/

 

Web Development w/ Google’s Go (golang) Programming Language

Learn Web Programming from a University Professor in Computer Science with over 15 years of teaching experience.

www.udemy.com

 

'작성중...' 카테고리의 다른 글

그림으로 배우는 IT 인프라 구조 후기  (0) 2021.03.01
Java Reflection이란?  (0) 2021.01.23
Java HashMap vs LinkedHashMap vs TreeMap  (0) 2020.12.19
Go: 기본 문법  (0) 2020.12.17
// helloworld.go
package main

import "fmt"

func main() {
	fmt.Println("hello world!")
}

 

  • run: 작성한 go 파일을 컴파일 없이 실행한다 - 작성 후 테스트 할 때 주로 사용 (atom: cmd+i)

  • build: 실행하지 않고, 실행 가능한 바이너리 파일로 빌드해서 해당 폴더에 만들어 준다. 파일명은 작성한 코드의 파일명과 동일

  • install: src에 있는 여러 폴더들을 하나의 애플리케이션이라고 하고, src에서 참조하는(의존관계에 있는) 외부 라이브러리 패키지들이 들어있는 pkg 폴더 등을 포함해서 최종적으로 실행 가능한 파일로 컴파일 해서 bin 폴더 아래에 만들어준다. 이때 파일명은 소스 파일들이 있는 상위 폴더명이다.

'Go' 카테고리의 다른 글

Go: Golang의 특징  (0) 2020.12.17
Go: 환경설정  (0) 2020.12.16
  • golang에서 특정 명령어들이 git을 이용한다.(의존관계) 
  • 프로젝트 구조
    • src: go를 이용해서 개발할 때  실질적으로 프로그램 소스들이 저장되는 곳
    • pkg: 외부에서 패키지 파일을 끌고 왔을 때
    • bin: 빌드(install) 후 실행파일들의 저장 공간

 

마찬가지로 go가 설치된 폴더로 가 보면 bin, pkg, src 폴더가 존재한다.

 

  • 환경변수 세팅: go env
    • GOROOT: 현재 go 가 설치된 곳
    • GOPATH: 진행할 프로젝트의 경로 => 설정 필요
    • GOBIN: 실행파일 경로 => 설정 필요

// ~/.bash_profile을 생성해서 환경변수 세팅 후, source ~/.bash_profile 명령어로 적용시켜준다
export GOPATH="/Users/soyeon/Documents/go_study"
export GOBIN=$GOPATH/bin

export PATH="$PATH:$GOPATH:$GOBIN"

 

  • golang.org 에서 레퍼런스 문서 확인
    • godoc -http=:8080: 로컬호스트에서 go 엔진에서 가지고 있는 서버가 실행됨, 레퍼런스 문서를 로컬호스트에서 확인 가능하다
  • atom 에디터에서 go-plus, script, platformio-ide-terminal을 설치해준다

 


배운점

- 왜 나는 bash_profile을 설정했는데도 터미널을 새로 켤때마다 source ~/.bash_profile을 해 줘야하는 것인가?

=> 이 문제 때문에 go-plus도 제대로 실행되지 않음ㅠㅠ

 

이유는 zsh를 사용하고 있었기 때문이었다. bash를 기본으로 사용하고 있으면 .bashrc -> .bash_profile 순으로 실행되지만,

mac 기본 쉘이 zsh를 사용하고 있었기 때문에 .zshrc -> .bash_profile이 실행될 수 있도록 아래와 같은 부분을 추가해준다.

// ~/.zshrc 에 아래 부분 추가
if [ -f ~/.bash_profile ]; then
	. ~/.bash_profile
fi

 

+ 추가) bash_profile vs bashrc vs zshrc ?

  • bash_profile: 시스템에 로그인할 때마다 실행 = only sourced when bash is started as an interactive login shell, or as a non-interactive shell with the `--login` option
  • bashrc: 이미 로그인한 상태에서 새 터미널 창을 열때마다 실행 = sourced on every start in interactive mode when bash does not act as a login shell.
  • zshrc: bash와 같은 쉘의 한 종류인데, 맥 터미널이 디폴트로 사용하고 있다. zshrc는 bashrc와 다르게 login/non-login 모두 상관 없이 실행된다. 

 


첨에 gomodule이 뭔지도 모르고 프로젝트를 시작해서 gopath 등 환경변수 세팅하는데 애먹었었는데..

알고보니 이런 불편한 점들을 개선하기 위해 gomodule이라는 방식으로 개발하면 된다고 함

개발하고자 하는 패키지에서 아래 명령어로 go.mod 파일을 생성한 뒤, main.go 함수를 추가하고 개발하면 된다고 한다..

go mod init github.com/{username}/{repository}

 

'Go' 카테고리의 다른 글

Go: Golang의 특징  (0) 2020.12.17
Go: Build vs Run vs Install  (0) 2020.12.17

+ Recent posts