일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vim-go
- JUCE 튜토리얼
- 공룡책
- C언어
- C++ gui 라이브러리
- Nebula
- tour of go
- go
- OS
- c++ heap
- 프로그래밍
- 백준
- gui
- 리듬게임
- JUCE library
- 자료구조
- C++ library
- LOB
- BOJ
- C++
- 운영체제
- 알고리즘
- 코딩
- JUCE라이브러리
- 연결리스트
- Docker
- JUCE
- go channel
- a tour of go
- C++ gui
- Today
- Total
CafeM0ca
[Go] Go 프로젝트 개발 환경 구축 본문
개발을 시작하기 위해 개발 환경 셋팅에 진심을 다하는 우리..
텍스트를 입력하기 위해 vim을 설치하고
vim을 더 우아하게 사용하기 위해 vim-plug를 설치하고
'이게 있으면 더 좋겠다~' 하면서 코드는 뒷전이고 괜찮은 플러그인 찾는데 시간을 보내는 것 처럼
개발자들은 일하기 위해 일을 위한 일을 한다.
Go언어 프로젝트 초기 셋팅에 대해 알아보자.
vim 셋팅
에디터인 vim부터 건들자.
vim-plug을 설치해주자. 위 github를 통해 환경에 맞는 스크립트를 터미널에서 실행한다.
자동완성을 위해 YouCompleteMe를 추가해준다.
github.com/ycm-core/YouCompleteMe
vim-go도 추가해주자. github.com/fatih/vim-go
본인이 vim을 쓴다면 ~/.vimrc
본인이 nvim을 쓴다면 ~/.config/nvim/init.vim
각 사용하는 vim에 맞춰 아래 스크립트를 추가해주자
call plug#begin('~/.vim/plugged')
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
call plug#end()
"nnoremap g :YcmCompleter GoTo
"nnoremap d :YcmCompleter GoToDeclaration
"nnoremap t :YcmCompleter GetType
"nnoremap p :YcmCompleter GetParent
let g:ycm_keep_logfiles = 1
let g:ycm_log_level = 'debug'
"let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf = 0
let g:ycm_key_list_select_completion = ['','']
let g:ycm_key_list_previous_completion = ['','']
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_warning_symbol = '>*'
let g:ycm_global_ycm_extra_conf = '~/.vim/plugged/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' "YCM fix
저장하고 vim을 키고 명령모드에서 :PlugInstall을 입력하면 아래의 사진과 같은 모습일 것이다.
설치가 끝나면 명령모드에서 :q로 vim을 꺼주고
YCM셋팅을 하러 가보자.
$ cd ~/.vim/plugged/YouCompleteMe/
$ python3 ./install.py --all
자동완성과 vim에서 go를 사용하기 위한 기본이 끝났다.
vim-go가 제대로 깔렸으면 $ vim main.go를 했을때 아래와 같은 기본 템플릿이 보이면 잘 설치된 것이다.
Go로 프로젝트 환경 구축
Go언어를 이제 막 배우고 웹백엔드 프로젝트를 진행해보려는데 막상 시작하려니 어떤식으로 셋팅해야하는지 잘 몰랐는데 다른 사람들은 이 과정을 없길 바라며 작성해본다.
Go는 $HOME/go 아래에서 다양한 프로젝트를 관리하도록 강요한다.
따라서 $HOME/go 아래에다 프로젝트 디렉토리를 생성해주면 된다. (깃허브로 소스코드를 관리한다고 가정)
$HOME/go/src/github.com/github_id/project_name
$HOME/go/src/github.com/github_id/project_name에 cmd/project_name/main.go와 pkg/test.go를 만들자
코드를 작성하고 main.go 있는 곳으로 이동해서 빌드하기 앞서서 프로젝트의 root 디렉토리에서 go.mod를 생성해주자
$ go mod init github.com/github_id/project_name
이제 빌드해주면 끝
$ cd cmd/project_name/
$ go build
$ ./project_name
프로젝트 구조에 관한 더 많은 내용은 여기를 참조하자
github.com/golang-standards/project-layout
내가 만약 오픈소스 Go 코드(원격 패키지)를 사용하고 싶으면 어떻게 헤야할까?
오픈소스 프로젝트에서 import할 url을 줄 것이다. 예를 들면 gihtub.com/github_id/project_name과 같이.
프로젝트의 루트 디렉토리에서 $ go get github.com/github_id/project_name 를 입력하면 go.mod에 자동으로 패키지가 추가되고 우리가 소스코드에서 import해서 사용하면 된다.
github.com/golang-kr/golang-doc/wiki/Go-코드를-작성하는-방법
'Programming > Go' 카테고리의 다른 글
[Go] net/http routing (0) | 2021.03.26 |
---|---|
좋은 API 디자인 (0) | 2021.03.26 |
[Go] JSON encode/decode (0) | 2021.01.09 |
[Go] A Tour of Go Exercise: Web Crawler (0) | 2020.12.09 |
[Go] Mutex (0) | 2020.12.08 |