Web/GoLang

[golang] makefile , gomodule 에 대한 윈도우 사용 후기와 makefile 설정 리뷰

벨포트조던 2023. 5. 5.
반응형

go 개발하면서 빡씨게하진않았고, 2년정도 적당히 사용했는데.. golang은 되도록 ,, 리눅스나 맥에서 사용하는게 좋은것 같다.

 

확실히 윈도우는 쓰기 불편하다는게 맞아보인다.

 

전반적으로 ... 개발은 뭐 리눅스 환경이 좋은건 당연한데, java 기준으로 봤을때 윈도우는 큰 차이가 없는데 go는 좀 개발하는데 불편한게 확실히 있었다. 

 

 

이 글의 주제는 하나로 정하기가 힘들어서 사용시에 체크해야하는 상황을 기억하기 위해 남김다.

 

1. wsl 사용시, 윈도우에서 리눅스를 사용할수 있다. 리눅스 명령어를 쓸수있는 장점이 있다.

이 경우, go env 설정이 다 제각각이여서 테스트시에 고생했다.

윈도우에서 셋팅한 env 값이랑, wsl 에서 설정한 env 값이랑 데이터가 다르다.

이것때문에 wsl 에서는 서버가동이 안되는걸로 착각했다. 

env를 두개다 잘 맞춰야한다.

 

2. makefile로 여러개의 서버를 한번에 구동하지 못한다.

내가 해야되는 상황이

A -> B -> C 서버를 순차적으로 가동해야 C가 돌아가는 상황으로 make 파일로 한번에 서버를 키고 싶었다.

 

get.dev:
	go get ~~~~~~~~~~~~~@dev
	go get ~~~~~~~~~~~~~~@dev
run.window: get.git get.dev
	go mod tidy
	go run cmd/server/main.go
get.git:
	echo ------ start contents
	git checkout dev
	git pull
run.channel:
	make -C ../channel run.window

위처럼 make run.window 하고, run.channel 도 연결해서 바로 다른 프로젝트의 make를 실행하려 했었다.

이런 흐름이 동작은 가능한데, 중간에 웹서버가 실행되면 나머지 명령어는 씹힌다.

 

즉 .  go run main.go 를 하고 나면 뒤의 make 명령어는 실행이 안됨

 

3. 2번 이유 때문에 .bat 파일로 여러개의 서버를 가동하기로 했음

 

@echo off
start powershell.exe -NoExit -command "make -C C:\go_workspace\tracer run.window"
start powershell.exe -NoExit -command "make -C C:\go_workspace\meta run.window"
timeout 5
start powershell.exe -NoExit -command "make -C C:\go_workspace\operation run.window"
timeout 5
start powershell.exe -NoExit -command "make -C C:\go_workspace\channel run.window"
timeout 5
start powershell.exe -NoExit -command "make -C C:\go_workspace\content run.window"

요렇게 

 

4. 파워쉘을 여러개 오픈해서 동작하는 방식으로 취했다.

 

 

 

- 다른 디렉토리에 있는 makefile 실행하는 방법

다른 디렉토리에 있는 makefile의 커맨드를 실행하고 싶을 때.

make -C {디렉토리} {target}

/home/richet/test라는 디렉토리에 Makefile이 있고, run을 실행시키려는 경우

 

/home/richet/test/Makefile

run:
    echo haha

run.env:
    echo ${ENV}

예 1) target run 실행

make -C /home/richet/test run

예 2) 환경변수 ENV = dev 넣어서 run.env실행

make -C /home/richet/test run.env ENV=dev

 

 

참고용 

https://jusths.tistory.com/130

 

Golang 개발시 Makefile 사용해보기

개요 Makefile 을 잘 활용하면 Go build, run, test 등의 작업이 한결 쉬워진다. 일종의 build 와 link 에 대한 script 라고 보면 되겠다.(주의) 윈도우 10 에서만 실행, 테스트 한 것임 참고링크 - YouTube: https://y

jusths.tistory.com

크로스 컴파일

 

반응형

댓글