간단히 go 언어 몇 줄만 실행해보고 싶은데, goland를 띄우는 것은 너무 과한 것같고, 그렇다고 vscode 인스턴스를 다른 것을 띄우는 것도 그렇고, 어떤 환경이 좋을까.. 하고 고민했습니다.
dotnet이나 powershell이나 python이나 php나, 간단히 몇 줄의 코드를 실험해 볼 때는 그다지 번거롭지 않습니다만, go 언어 몇 줄만 실행해보고 싶은 경우 마땅한 REPL이 없습니다. 한 동안 gore
가 있잖아! 하고 이를 사용했는데, 이게 너무 느린 겁니다.
gore는 adhoc test보다는 빠르지요. 하지만… 느립니다.
gore
https://github.com/motemen/gore
gore는 몇 가지 문제점이 있습니다.
- 너무 느립니다.
- 저만 그런가요?
- 명령어들을 세션에 저장하고 이를 파일로 flush한 후에, go run한 response를 producer-comsumer로 화면에 보이는 로직입니다.
- 또 한 번 systax에러난 변수를 다시 정의해서 쓰려고 하면, 이미 정의된 변수라고 나옵니다.
- :clear로 세션을 초기화 할 수 밖에 없습니다.
- custom type을 정의하는 것은 가능한데, 이 type을 이용한 function은 작성할 수 없습니다.
- custom type 정의가 main() 함수안에 정의되기 때문입니다.
- :print해보면 세션에 저장된 코드가 보입니다.
- custom type 정의가 main() 함수안에 정의되기 때문입니다.
결론은 쓸만한 물건이 아니다.
입니다. 대용품을 찾고 있었는데, 그냥 브라우저로 tour of go 와 playground 에 접속해 사용해 봤습니다
playground standalone
우선 이쪽은 디자인이 이쁘지 않아서 넘겼습니다.
clone해서 go run .
하면 실행되지 않을까 합니다.
tour of go
https://tour.golang.org/welcome/1 는 무료로 제공되는(사용할 수 있는) playground입니다. runtime을 조사해 보면 쓸만합니다.
파일시스템은 보안상 사용할 수 없겠지요. 그러면 http client는 사용할 수 있나 봤습니다.
저는 dark reader chrome extension을 사용합니다.
코드는 다음과 같습니다.
|
|
안됩니다. 그래서 local에서 돌려보았습니다.
tour of go standalone
처음에는 https://tour.golang.org/welcome/3 의 설명대로 go get
한 다음에, tour 커맨드를 프로젝트의 bin에 복사해서 사용하려고 하얐지만, tour 파일을 따로 준비하지않으면 다음과 같은 메시지를 볼 수 있습니다.
C:\gaming-in-go\bin>tour
2021/02/23 15:08:14 Couldn't find tour files: could not find go-tour content; check $GOROOT and $GOPATH
그래서 clone해서 사용합니다.
git clone https://github.com/golang/tour
http client를 사용해 봤습니다.
문제없이 잘 사용되었습니다.
필요하다면, 내부 프로젝트의 패키지를 넣어서 웹으로 공개해 놓으면, 필요한 경우에 간단히 라이브러리를 사용해 볼 수 있는 환경이 제공되지 않을까합니다.