카테고리 글 보관함: 윈도우 10

윈도우10 vscode 에서 golang 프로젝트와 github 연동 리눅스용 실행 파일 빌드

윈도우10 환경에서 vscode 에서 github 저장소와 연동해 go 프로젝트를 만들고, 작성한 go 파일을 github 저장소에 커밋/푸시 하는 방법과 윈도우 환경에서 리눅스용 go 실행 파일을 만드는 방법에 대해 설명한다.

vscode 에서 github 에 파일 올리는 방법에 대해서 자세히 설명한 새로 글을 만들었다.
윈도우10 git 설치와 vscode 에서 github 리파지토리에 파일 올리기

iptables 의 애드온 xtables 에 사용할 CSV 파일을 만들기 위해 KRNIC 에서 다운로드 받은 CSV 파일을 db-ip.com 에서 제공하는 CSV 파일로 변환하는 java 코드를 작성했었다.
go 언어로 만들면 어디든 단독으로 실행 가능한 실행파일을 만들 수 있으니까 배포용으로 go 언어판을 작성 해 봤는데, 별거 없는 코드라 금방 만들 수 있네.
문제는 vscode 사용법. github 연동도 어떻게 할지 모르겠고 익숙치가 않으니 너무 어려웠다. 이클립스가 그리워…

vscode 에서 어떻게 github 연동 했는지 잊지 않도록 일단 메모를 해 둬야겠다.

vscode github 연동

1. github 에서 저장소를 생성한다.
2. vscode 에서 github 유저아이디 디렉토리를 만든다. gowork/github.com/USERID
3. vscode 커맨드 프롬프트에서 유저아이디 디렉토리로 이동 후, git clone https://github.com/USERID/저장소.git
유저아이디 디렉토리 아래 저장소 디렉토리가 생긴다.
4. vscode 커맨드 프롬프트에서 저장소 디렉토리로 이동. go mod init github.com/USERID/REPOSITORY
5. 저장소 디렉토리=go 프로젝트 디렉토리로 사용.
6. 파일을 추가/변경하거나 하면, vscode 왼쪽에 소스컨트롤 부분에 추가/변경한 파일 리스트가 나온다.
파일 오른쪽에 + (Stage Changes) 아이콘을 눌러 스테이지에 올리고, 상단에 체크 표시 아이콘을 눌러서 커밋. … 아이콘을 눌러서 Push 하면 된다.

vscode 소스 컨트롤

실제로 할때는 구글링하고 이것저것 만지면서 해서 이게 제대로 된 순서인지는 잘 모르겠다.
기억에 의존해서 한거라, 나중에 다른 go 프로젝트를 만들게 되면 이대로 해 보고 다시 수정하도록 하겠다.

golang linux / amd64 실행 파일 빌드

1. vscode 로 go 파일 있는 디렉토리에서 커맨드 프롬프트를 연다.
2. set GOOS=linux
3. set GOARCH=amd64
4. go build gofilename.go

go 파일이 있는 디렉토리에 실행파일이 생긴다.
방법은 간단한데 인터넷에서 검색해보면 온통 리눅스나 맥OS 환경을 기준으로 나와있어서 찾기가 어렵다.

윈도우에서 golang 1.14 개발 환경 구축

구글이 개발한 go라는 언어를 알고부터 항상 해 보고 싶었는데 VPS 서버도 생겼겠다 다시 한번 뭔가 만들어 봐야겠다는 생각이 들어서 다시 손을 대봤다.

go 와 vscode 를 포터블판으로 설치해서 개발환경 구축하는 방법에 대해 새로 글을 썼다.
윈도우10 golang vscode 개발환경 구축

go 설치

고 자체는 공식 사이트(https://golang.org/)에서 (윈도우의 경우는) MSI 버전으로 설치하면 PATH 설정도 전부 해 주니, 인스톨만 하면 간단.
수동으로 설치할 경우에는 PATH에 go/bin 디렉토리를 넣어주고, GOROOT는 go 디렉토리, GOPATH는 다운받은 팩키지 소스등을 넣어줄 곳이니 마음대로 지정하면 된다.
셋 다 중요하니 처음 고를 설치할 경우에는 그냥 MSI 인스톨러로 설치하자.

IDE 설치

IDE는 이클립스에 goclipse 플러그인을 설치 해 봤는데 현재 고버전(1.14)에서는 자동완성 기능이 더이상 작동하지 않는다.
아래 IDE 투표에서 1위를 자랑하는 비주얼 스튜디오 코드(VSCode) 를 설치하자.

2019 스택오버플로 개발 환경 투표
2019 스택오버플로 개발 환경 투표 결과. 출처:https://insights.stackoverflow.com/survey/2019#technology-_-most-popular-development-environments

https://code.visualstudio.com/
설치 버전이든 포터블 버전이든 아무거나 쓰면 된다.
설치 후 VSCode 디렉토리에 Code.exe 파일을 실행하자.

VSCode go 확장기능 설치

이미 설치 후라 인스톨 버튼 대신 언인스톨 버튼이 보인다.

빨간 박스로 표시한 왼쪽 아이콘을 누르고, 검색에 go 를 넣고, 아래에 go 0.13.1 Rich Go language… 를 선택하면, 오른쪽에 자세한 내용이 보이는데 인스톨 버튼을 누르자.

설치 후에 Ctrl + Shift + P 를 누르고 go install 로 검색하면, 나오는 모든 내용을 체크한 후에 OK 버튼을 누른다.
다 설치하는데 시간이 좀 걸린다…

Language Server

코딩할 때 꼭 필요한 자동완성 기능을 도와주는 것인데, 처음에는 무효화 되어 있다.
File -> Preferences -> Settings 에 들어가서 검색 gopls 을 하면 나오는 Go: Use Language Server 에 체크하면 사용할 수 있는데, 이걸 사용할 경우에 메소드 후보들이 빨리 표시 되는 반면에 그닥 정확히 필요한게 나오지는 않는 것 같다.
끄면 느린 대신에 딱 필요한것만 나오는 것 같고. 끈 경우와 켠 경우 다 써 봐야 할듯.

이상 Go 개발 환경 구축 끝.

hyper-v 부팅시 블루스크린 vmswitch.sys 문제해결

윈도우10에서 hyper-v로 가상서버를 사용하고 있는데, 오늘 갑자기 부팅시 블루스크린으로 부한 재부팅이 되는 경우가 있었다.

블루스크린에는 SYSTEM_SERVICE_EXCEPTION, vmswitch.sys 라고 표시된다.

원인은 아마 윈도우즈 업데이트(creator’s update)에 있는 것 같은데
구글에서 “hyper-v bsod vmswitch.sys” 로 검색해서 나온
아래 링크에 글을 보고 해결 했다.

BSOD when starting Hyper-V, after Windows 10 Creators update (1709)

hyper-v 관리화면을 열어서 가상환경에 설정으로 들어가, 새로운 하드웨어 추가로 Legacy Network Adapter를 추가해서 기존에 Network Adapter 대신 사용하면 된다.
사용하던 Network Adapter는 삭제할 것.

마소에서 뭘 건드렸는지 모르겠는데, 일단 이 방법으로 해결이 되어서 급한대로 포스팅한다.

BSOD: Bluescreen of Death

관리자 권한이 없는 윈도우 PC에서 JDK 8.0 무설치 버전으로 설치하고 이클립스 실행

인스톨러가 작동하지 않는 관리자 권한이 없는 윈도우 PC에서 JDK 8.0을 설치하고 이클립스를 실행해 보자.

개요

  • JDK 8.0 다운로드
  • 7-zip 설치와 JDK 인스톨러 압축 해제
  • 자바 환경변수 등록
  • 이클립스 실행
  • JDK 8.0 다운로드

    다운로드 사이트 – http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    이 글에서는 32비트용 jdk-8u121-windows-i586.exe 을 다운로드한다.
    c:\dev 폴더에 넣는다.

    7-zip 설치와 압축 해제

    다운로드 사이트 – http://www.7-zip.org/download.html
    타입이 .exe로 된 32비트나 64비트 버전을 다운로드한다.
    다운로드한 파일을 실행해서 적당한 폴더에 압축을 푼다.
    이 글에서는 c:\dev\7-Zip 폴더에 풀었다.

    아래 명령으로 jdk 인스톨 팩키지의 압축을 푼다.

    tools.zip 파일이 생성된다.
    c:\dev\jdk8 폴더에 압축을 푼다.

    .pack 파일을 .jar 파일로 변환

    출처:http://stackoverflow.com/questions/1619662/how-can-i-get-the-latest-jre-jdk-as-a-zip-file-rather-than-exe-or-msi-installe

    자바 환경변수 등록

    환경변수 JAVA_HOME 이 필요한 프로그램을 실행할 때를 위해서 환경변수를 등록한다.

    윈도우즈키+R 키를 눌러 파일명을 지정해서 실행창을 연다.
    cmd 를 입력해서 명령창을 연다.
    아래 명령어를 실행해서 환경변수 JAVA_HOME 등록

    이클립스 실행

    이클립스는 JAVA_HOME 환경변수를 보지 않기 때문에 javaw.exe 파일을 찾지 못해서 실행되지 않는다.
    eclipse.ini 파일을 수정하자. 아래 줄을 -vmargs
    이전 줄에 적어 넣는다. (javaw.exe 파일의 위치를 각자 PC 환경에 맞춰서 넣을것)

    -vm 다음에 꼭 개행할 것.

    Realtek 8812AU 칩셋을 사용하는 USB 무선랜 어댑터의 인터넷 접속 끊김 문제 해결 방법 2/2

    이전 포스팅에서 해결된줄 알았는데 이틀 정도 후에 또 인터넷 접속이 끊기는 현상이 일어났다.

    Realtek 8812AU의 최신 드라이버를 찾아서 설치해 보니 현재 5일째 끊기지 않아서 이걸로 해결이 된 것 같으니 포스팅 해 본다.

    드라이버 다운로드/설치 방법
    ※일본 윈도우를 사용 중이라 한글 윈도우에서는 이름이 좀 다를거 같으니 비슷한걸로 잘 선택해 주세요.
    1. http://www.station-drivers.com/index.php?option=com_remository&Itemid=352&func=fileinfo&id=2478&lang=en 에서 다운로드 버튼을 눌러서 드라이버 파일을 다운로드.
    2. 적당한 곳에 압축을 풀어 둔다. (확장자가 exe 인데 7z 으로 바꾸면 보통 압축 프로그램으로도 압축 풀기 가능)
    3. 장치 관리자에서 무선랜 어댑터를 찾아 마우스 오른쪽 클릭. 속성을 선택. 드라이버 탭으로 이동.
    4. 드라이버 갱신 버튼을 클릭.
    5. [컴퓨터의 드라이버를 사용]을 선택
    6. [컴퓨터상의 장치 드라이버 일람에서 선택합니다]를 선택
    7. 디스크 사용 버튼을 클릭. 압축을 풀어둔 폴더의 .inf 확장자의 파일이 하나 있는데 그걸 선택하고 OK 버튼을 누른다.
    8. [호환성 있는 하드웨어만 표시]에 체크를 해제.
    9. 아래에 리스트에서 Realtek Semiconductor Corp. 를 선택하고 왼쪽에서 Realtek 8812AU Wireless LAN 802.11ac USB NIC 을 선택하고 OK 버튼.
    10. 드라이버 호환성 경고창이 뜨는데 OK 버튼을 눌러서 진행하면 드라이버가 설치된다.

    위 station-drivers.com 에서 다운로드 받은 파일 안에는 TP-Link 의 드라이버도 들어있는데 설치해 봤지만, 역시 끊김 현상이 일어났다.
    위에 순서대로 해서 Realtek 8812AU 무선랜 드라이버를 설치하고 나서는 이제까지 5일간 한번도 끊기지 않았다. TP-Link 의 드라이버가 거지 같은듯.

    참고로 한국/일본에서 RTL8812AU 칩셋을 사용하는 무선랜 어댑터 목록.

    • BUFFALO WI-U3-866D
    • ELECOM WDC-86SU3SBK
    • Aukey WF-R13
    • TP-Link Archer T4UH
    • TP-Link Archer T4U
    • NEC Aterm WL900U
    • ASUS USB-AC56
    • Planex GW-900D
    • IODATA WN-AC867U
    • ipTIME A2000U
    • ipTIME A2000UA
    • ipTIME A2000UA-4dBi
    • Netis WF2190
    • 이지넷유비쿼터스 NEXT-1200AC
    • D-Link DWA-182 rev C1