메뉴 건너뛰기

enjoyTools.net

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

 

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

 

 

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

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

준비할 파일들은 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내 통합터미널에서 설치
    • 아래 dep 같은 경우는 도스창에서 설치하면 되지만, extension에서 설치하라고 하는 것들은 그렇게 못하기 때문에 vscode 환경설정의 go.inferGopath를 false로 바꾼 후 설치한다. 그리고 나서 true로 되돌리면 된다. 신경 안 써도 될 것 같다.
  • 컴파일은 go install [작업영역 하위 src 디렉터리에 main으로 등록된 package 이름]
    • 또는 go build [작업영역 하위 src 디렉터리에 main으로 등록된 package 이름]
    • 페이지 하단 다운로드에 포함된 helloworld를 예로 들면 go install hello 또는 go build hello 하면 된다.
  • 실행은 .\실행파일명 - 파워쉘 기준으로 환경설정을 잡아서 파일명이 기본파워쉘명령과 같으면 파워쉘이 ㅈㄹㅈㄹ거려서 .\ 붙여야 된다.
  • dep 사용 (=전역패키지 설치)
    • go extension의 go.inferGopath를 true로 설정해놨기 때문에 경로 이동 시 gopath가 바뀌어서 통합터미널에서는 dep init이 안된다.
    •  -> 도스창에서 gopath를 다시 잡고 진행하면 된다
    •  -> Ctrl+Shift+t 눌러서 도스창에서 set "GOPATH=%cd%"
    •  -> 패키지 폴더 생성
    •  -> 패키지 폴더로 이동 후 dep init & dep ensure
    •     (dep init 시, 소스 안에 의존하는 패키지를 적어놓으면 Gopkg.toml,lock 미리 안 만들어도 알아서 정리해주더라)
    • 디버그는 main 소스 편집창에서 F5 누르니까 되더라. go extension 좋네
  • gotools 업데이트 하는데 git 인증서가 문제가 돼서 그냥 인증서 무시하게 했다. - 이렇게 했다.
  • gotools를 새로 세팅 하려면 gotools 폴더는 지우지 말고 bin, src 폴더만 지운다. gotools 폴더를 지우면 배치파일 깨진다.
  • go extension 사용시, 오류를 잡았는데도 계속 오류로 표시하는 경우는 F1 > go: go vet 실행해주면 된다.
    • 아니면 작업영역 폴더를 닫았다가 다시 연다.
    • go extension이 소스 훓어서 갱신하는 것이 맥쪽은 문제가 없었는데, 윈도우 쪽은 문제가 있는 거 같다.

 

  • 소스 땡겨와서 빌드하는 예시 - tidb (vscode는 빈 프로젝트 폴더를 열고 통합 터미널에서 작업)

 

dep init을 매번 하기 귀찮으면 아래처럼 Laucher 실행용으로 세팅을 해두면 된다. (Laucher 실행: Shift + F2)

 

아래 내용을 dep_init.cmd로 이름 짓고 tools/langs/go 에 삽입 (Path가 잡힌 아무 경로에나 둬도 관계 없음)

rem dep_init.cmd

@echo off

 

set "current_item_path=%cd%"

cd ..\..

set "GOPATH=%cd%"

cd %current_item_path%

 

dep init

 

Launcher Extension 설정에 아래 내용 추가

//"launcher.commands": [

{

"description": "dep init - will try at this path. Be carefull!!!",

"executable": "dep_init.cmd",

// "parameters": "",

"startIn": "%item_path%"

}

//],

 

 

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

 

끝.

 

 

추가
 
18년도 08월
* sqlite3와 sdl 래퍼 같은 것들이 cgo라는 놈을 써서 mingw gcc 추가
* 네이버 D2 Coding ligature 글꼴 최신판으로 설치하면 ligature 바로 적용 됨
 - 이 경우 vscode extension에서 disable ligature 를 설치해주는게 좋을 듯
* 위에 적힌 dep init 을 Launcher 설정에 추가했음
 
간단 사용법
* 폴더 구성 - Package 구성 없이 단일 소스로 만들려면 아래처럼 하지 않고, 걍 파일 하나만 만들어줘도 된다.
프로젝트 영역 (루트 폴더)
- src
  - package-name
    - source.go 
 
* 압축 풀고 vscode 완전 처음 실행할 때
 - 한국어 언어팩이 안 먹힌다. 껐다가 다시 켜면 한국어 메뉴 제대로 적용 됨
 - go extension에서 설치하라는 tools(tools/gotools 폴더)가 설치 안되었다고 알림이 뜬다. 안 뜨면 무시하면 되고, 혹시 이런 알림이 뜨면 그냥 업데이트 누르고 다시 설치해준다.
 
* 빌드 / 실행
 - 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이름
 
진짜 끝.