Programming Language/golang6 Echo 로 JSON POST DATA 처리하기 Redfish 이벤트 모니터링을 위한 Hook Server를 하나 만들어야 하는 상황이 생겼다. POST DATA를 받아서 엘라스틱 서치로 로그나 다른 메신저로 보내 보려는 중이다. 일단 POST DATA를 어떻게 처리할지를 잘 모르기 때문에, 간단한 POST DATA를 다루는 법만 알아내 끄적여본다. ## POST 소스 코드 작성 먼저 받을 데이터 필드 구조체를 만든다. (type Redfish struct) POST DATA를 받아서 처리할 redfish 함수를 만들고 echo.Context를 이용해 JSON 응답을 해줄 수 있다. 서버에서도 올바르게 찍힌 것인지 json marshaling을 이용해 print로 찍어 보았다. e.POST 구문으로 POST 경로 라우팅과 데이터가 들어오면 처리할 함수.. 2020. 8. 28. Vegeta로 웹성능 테스트 해보기 (golang echo vs python3 http.server) 최근에 알게 된 golang으로 만든 웹 성능 테스트 툴인 Vegeta를 테스트해보았다. Vegeta는 모두가 알고 있는 그 베지터다! 뭔가 라이선스는 상관없나? 생각이 들긴 한다. gatling을 주로 사용해 성능 테스트를 했었다. 그런데 Vegeta는 golang 퍼포먼스 툴에다가 이름이 베지터라니 안 써볼 이유가 없었고, 써보니 생각보다 더 매력적인 툴이었다. ## Vegeta 설치 - 음 golang 컴파일해서 쓸려고 했는데, wsl에 깔린 golang 버전이 낮아서 `unknown field 'MaxConnsPerHost'` 에러가 난다. golang 1.11 버전부터 add 되었다고 하는데 설치하기 귀찮아서 걍 pre-compiled 버전 다운로드 받았다. root@DESKTOP-A52MBHK.. 2020. 8. 8. echo framework 로 APP server 간단히 띄우기 echo는 golang에서 많이 쓰는 경량 web framework으로서 python flask와 비슷한 것 같다. 간단한 API 서버나, Custom prometheus exporter 를 echo로 만들면 편하지 않을까 해서 예전부터 봤던 건데 좋은 것 같다. 다른 비슷한 framework 로는 Gin, Goji가 있는 것 같다. ## echo 설치 alinos@DESKTOP-A52MBHK:~/go/src/github.com/alinos/alinosweb$ go get -u github.com/labstack/echo/... alinos@DESKTOP-A52MBHK:~/go/src/github.com/alinos/alinosweb$ ls ~/go/src/github.com/labstack/echo/ .. 2020. 7. 28. VisualCode 에서 WSL 환경으로 작업하기 나는 Windows 10을 데스크톱으로 상당히 선호한다. 하지만 터미널 작업이나, 코딩 이나 CLI 작업할 때는 윈도우즈 터미널로 주로 WSL Ubuntu 18.04 환경을 사용하는데 여기서 마땅한 에디터를 사용할 수 없어서 큰 좌절을 하고 vim으로 코딩을 하고 있었다. WSL 환경에서 Visual Studio Code를 설치해봤었으나, WSL 환경이라 안된다고 거절을 당했었다. 근데 이런 것 때문에 얼마전 업데이트가 된 모냥이다. REMOTE EXPLORER 란 확장 프로그램인데 아직 프리뷰 상태다. 이걸로 WSL을 접속해서 작업을 좀 해봤는데 아주 맘에 든다. ### REMOTE - WSL 플러그인 확인 ### REMOTE EXPLORER에서 Connect to WSL 버튼 누르기 ### WSL 환.. 2020. 7. 28. cobra 로 ctl 명령어 만들기 systemctl 이 등장하면서, kubectl, doctl, hostnamectl 등 통합형 명령어 혹은 특정 플랫폼의 REST API를 제어하는 커맨드 인터페이스가 요즘 대세이다. ctl 명령어 플랫폼이 유행하면서 SE인 나도 즐겨 사용하고 내가 관리하는 프로그램들도 ctl 형태로 관리를 한다면 좋겠다는 여러 상상력을 자극했다. 마침 최근에 golang 을 공부하고 있어서, ctl 플랫폼에 대해 조금 더 정보를 얻을 수 있었는데 kubetl, hugo, doctl 등 대부분 힙한 ctl 프로그램들이 cobra란 라이브러리로 만들어졌단 걸 알 수 있었다. cobra는 ctl 프로그램을 만들면서 필요한 여러가지(설정 파일, 오타 발생 시 비슷한 명령어 제안 등)를 제공해준다. 그래서 cobra 로 여러 .. 2020. 7. 27. 쉘만 쓰다가 고랭 써보기 나는 거의 10년 넘은 SE(System Engineer) 다. 그동안 bash 로만 모든 걸 해결하고 살았다. bash로 도저히 하기 어려울때만, python/php의 도움을 살짝 받았었는데 이제 본격적으로 go를 사용해보려고 최근부터 조금씩 만지고 있는 중이다. 조금씩 만지작 해본 뒤 생각으로는, SE, Devops, SRE라고 하는 사람들이 기본 정도는 배워두면 진짜 좋은 시스템 언어가 아닐까 생각이 좀 된다. (사실 난 언어에 대한 깊은 이해가 없다. 내 앞에 닥친 시스템 상황들을 해결하기 위한 도구로 보는 게 강하다.) 그래서 SE 관점으로 golang으로 스크립트와 시스템에 필요한 것들을 만들어서 공유해볼 예정이다. 최근에 보면서 공부하고 있는 사이트들이다. https://nomadcoders.. 2020. 7. 8. 이전 1 다음