메뉴 건너뛰기

enjoyTools.net

피씨방스튜디오 만들기 #1/4 - vscode 포터블 설정

 

피씨방스튜디오 만들기 #번외4 - Go 준비

 

 

Visual Studio Code 윈도우용과 NginX, PHP, MySQL 등을 피씨방에서도 설치 없이 압축만 풀어서 바로 쓸 수 있게 하기 위한 삽질이었는데, 여기서는 다 걷어내고 오직 Golang이를 위한 삽질이며 목적은 해당 언어 공부용 세팅임.

주로 배치파일을 활용할 것임.

준비할 파일들은 64비트용으로 할 것임.

 

당장은 테스트, 장난감용

 

gogogogo.png

 

  • 피씨방스튜디오 만들기 #번외3 - Python(3.x) 준비에서 파이썬 걷어내고 git과 golang 추가
    • Git이 없으니까 패키지를 설치할 수 없다. 예전에 만들어놓은 Git clone만 남겨놓고 싹다 없앤 파일이 없어져서 경량화 포기. 깃 안쓰는데 ㅆ...
    • Portable Git이 용량이 약간 작은 것 같다.
  • extension에서 필요로 하는 파일들(을 여기서는 gotools라고 명명했다. go tool xxxx 에 들어가는 것들을 얘기하는게 아님.)을 위해 gotools 폴더 추가 & GoPath 등록
    • go extension에서 쓰는 gotools를 위해 vscode의 setting.json을 매 실행시 건드린다.
  • go get으로 패키지를 설치할 때는 아래와 같이 한다.
    • gotools에 들어갈 전역 툴을 설치할 때는 Ctrl+Shift+t 눌러서 도스창에서 설치 (예: dep 도 이렇게 하면 gotools로 설치됨)
    • 작업영역(=프로젝트 폴더)에 설치할 때는 vscode내 통합터미널에서 설치
  • gotools 업데이트 하는데 git 인증서가 문제가 돼서 그냥 인증서 무시하게 했다. - 이렇게 했다.
  • gotools를 새로 세팅 하려면 gotools 폴더는 지우지 말고 bin, pkg, src 폴더만 지운다. gotools 폴더를 지우면 배치파일 깨진다.
  • go extension 사용시, 오류를 잡았는데도 계속 오류로 표시하는 경우는 F1 > go: go vet 실행해주면 된다.
    • 컴파일한다.
    • 아니면 작업영역 폴더를 닫았다가 다시 연다.
    • go extension이 소스 훓어서 갱신하는 것이 맥쪽은 문제가 없었는데, 윈도우 쪽은 문제가 있는 거 같다.
  • Shift + F2 를 누르면 Launcher Extension 이 실행되며, package 초기화(dep init), 빌드 등 명령 등을 넣어뒀다.

 

작업한 결과물 예시 : 다운로드

 

끝.

 

추가
 
18년도 08월
* sqlite3와 sdl 래퍼 같은 것들이 cgo라는 놈을 써서 mingw gcc 추가
* Ligature : 네이버 D2 Coding ligature 글꼴 최신판으로 설치하면 ligature 바로 적용 됨
 
 
간단 사용법
* 폴더 구성 - Package 구성 없이 단일 소스로 만들려면 아래처럼 하지 않고, 걍 파일 하나만 만들어줘도 된다.
프로젝트 영역 (루트 폴더)
- src
  - package-name
    - source.go 
 
* 압축 풀고 vscode 완전 처음 실행할 때
 - 한국어 언어팩은 삭제했으므로 직접 설치한다.
* 압축 푼 것을 다시 압축 > 다른 곳에서 압축 풀고 처음 실행할 때
 - 한국어 언어팩이 안 먹힌다. 껐다가 다시 켜면 한국어 메뉴 제대로 적용 됨
 - go extension에서 설치하라는 tools(tools/gotools 폴더)가 설치 안되었다고 알림이 뜬다. 안 뜨면 무시하면 되고, 혹시 이런 알림이 뜨면 그냥 업데이트 누르고 다시 설치해준다.
 - Git 메뉴가 영어로 나오면 \tools\vscode\data\user-data\clp 폴더를 지우고 언어팩을 다시 설치한다.
 
* 빌드 / 실행
 - go run ./src/package-name/source.go
 - (작업영역 루트에서) go build package-name >> 루트 폴더에 실행파일 생성
 - (작업영역 루트에서) go install package-name >> 루트 폴더/bin에 실행파일 생성
* 현재 소스(package main만 됨)에서 바로 실행 : F5
* dep init
 - 소스의 import에 의존성 경로 추가 후 소스 저장. 예: import "github.com/aa/bb"
 - Shift + F2 > dep init 선택
 
Git - 아래 git으로 파일 실행하는 것들은 모두 통합터미널에서 실행한다.
* git 사용 - user.name, user.email 설정: 안하니까 하라고 난리를 친다.
 - git config --global user.name "my name"
 - git config --global user.email "my_account@mail_domain"
 
* git 소스 땡겨 오기
 - 터미널에서 git clone "github 소스 복제 경로"
 - 이렇게 하면 가져온 폴더의 루트가 프로젝트 폴더 하위에 생겨버린다.
 - 첨부터 상위로 올라가서 git clone을 걸던지 아니면 저 상태에서 복제된 폴더를 상위로 땡겨오던지 알아서 한다.
 
 
* git push
 - vscode extension의 Git add remote 라는 extension을 설치했다.
 - F1 > Git: Add remote > origin (branch 이름) 입력 > 깃(헙) 주소 입력
 - vscode 사이드바 Git ... 메뉴에서
 ** (소스 레포지터리 초기화 안되어 있으면) 깃 아이콘 누르고 작업영역 폴더 초기화
 ** push to 선택 > origin 선택 > 계정 이름 입력 > 계정 암호 입력
 
* git remote 잘못 입력시
 -  git remote remove undefined
 - 또는  git remote remove 지울remote이름
 
진짜 끝.

180830

8월 24일자로 go 1.11이 출시되면서 변경사항 반영을 위해 약간 수정.
 
* 통합터미널 Powershell 실행시 GOPATH 오락가락 하던 문제 수정
 - 이제 통합터미널에서 workspace로 제대로 고정된다.
 - InferGopath 설정이 통합터미널에는 영향을 주지 않기 때문에, 이렇게 할 수 밖에 없다.
 
* Go Module
 - Launcher (Shift+F2) 명령 추가 : module init, install mod, GO111MODULEON, GO111MODULEOFF
 - Go extension의 F5 디버그 :
 ** modules 때문에 위 내용 처럼, GO111MODULEON, OFF 추가.
 ** 에러나면 팝업창에서 시키는대로 launch.json 열기(=생성)하고 Luancher에서 GO111MODULE ON 을 실행한다.
 ** 애초에 modules가 GOPATH 밖에서 운용하는게 기본값이기 때문에 vendor 폴더 포기하고 걍 GOPATH를 완전히 없애버리게되면, GO111MODULE 같은 이상한 환경변수를 건드리지 않아도 되니 더 나을 수도 있을 수도 있을지도 모르겠다.
 
* 통합터미널 작업용 스크립트 추가
 - set_go111module_on.cmd, set_go111module_off.cmd, module_auto.ps1, module_enable.ps1, module_disable.ps1 : GO111MODULE 관련
 - setas_lin64.ps1, setas_rasp.ps1, setas_win64.ps1, setas_wasm.ps1 : GOOS, GOARCH 설정 수정용, 다 치자니 귀찮아서...
 
조만간 또 써야될 것 같다. 일단 끝.
 

180902

* Ctrl+Shift+T 누르면 나오는 터미널을 CMD에서 Powershell로 변경

* dep ensure 배치파일 잘못된 거 교정

* go111module.conf 설정에 따라 go mod, dep/vendor 선택되게 변경

 

링크를 보면 go extension에서 go 1.11을 위한 자동완성과 함수 제안을 제대로 지원하지 못하는 것 같다. 뭐 언젠가는 개선되겠지.

(기존 dep을 이용한 vendor는 문제가 없고, go mod가 문제다.)

 

launch.json 설정이 귀찮아서 아래 그림과 같이 vscode 실행시 GO111MODULE 환경변수 지정할 수 있게 함.

해놓길 잘한 것 같다. vscode에서 go extension용 go tools 설치시 반드시 go111module.conf를 off로 놓고 설치해야 한다.
그리고 go extension의 자동완성 문제가 해결될 때까지는 off로 해놓고 살아야겠다.

go111module.png

 

링크와 이 링크의 내용을 보면 dep을 버리고 module로 가는 건 맞는 것 같은데, GO111MODULE을 빼고 특별히 환경변수에 신경써야할 부분은 없어보이니 당분간 손댈 일 없을 것 같다.

 

이단 끝.


180910

 

* vscode 환경설정은 아래와 같이 해뒀다.

- Launcher : 기존 dep 관련 배치파일 명령 모두 제거(주석)하고 module용 명령들만 남김

- inferGoPath=true : 당장의 첫 줄 import 주석 입력을 피하기 위해서 작업영역 루트를 GOPATH로 유지

- 프로젝트 트리: modules 이전과 동일하게 작업 -> {작업영역 루트(=$env:GoPath)}/src/{패키지명}

- (혹시 몰라서) $env:Home 추가 -> gohome

- vscode 종료시 GOPATH(=gotools)내 src, pkg 폴더 삭제 -> 이건 안되게 막으려면 아래와 같이 한다.

배치파일 수정 - {루트}/tools/vscode/run_vscode.bat

 

...

 

rem vscode 종료 시, 크로미움 캐시데이터 삭제

%VSC_DRIVE%

cd %VSC_ROOT%

rmdir .\data\user-data\Cache /s /q

rmdir .\data\user-data\CachedData /s /q

 

rmdir %GOPATH%\pkg /s /q -> 이거 rem 주석처리

rmdir %GOPATH%\src /s /q -> 이것도 rem 주석처리

 

go clean -cache

 

...

 

 

 

이제 Go 버전이 올라가서 GoPath가 완전히 없어지기 전까지는 뭐 특별히 할 거 없겠다.

 

go mod vendor 배치파일 추가하고 launcher 설정에도 추가.

 

삼단 끝.


180912, 180920, 180922

 

스샷.png 사용자 패치 안되고 (느리거나, 안되거나)

MS 베타 안되고

Google PR 뭔지 모르겠고 (Experimental Gocod-gomod는 뭐냐 대체)

 

걍 GOPATH, inferGOPATH, go mod vendor 일케 굴리기로 함.

정식버전 나오면 또 돌려봐야지. -_-;

 

사단 끝.