NeoVim 기반 개발환경 설정

NeoVim과 CoC를 이용해서 개발 환경을 만들기로 했다. 개발 환경을 vi 기반으로 해보려고 하다가 결국 문서를 정리하게 됐다. 운영체제 사용언어 software-properties-common은 apt 레포지토리 관리를 위한 툴들을 제공한다. 이 툴을 이용해서 배포판을 관리를 쉽게 할 수 있다. # sudo apt-get install softwar...

Protocol Buffer

대대적인 수정 작업 중 .. 2019년 8월 20일Protocol Buffer(이하 PB)는 구글에서 개발한 직렬화 프로토콜이다. 구글 얘네들이 검색 색인 작업에 사용하려고 만들었다고 한다. 다양한 형태의 데이터를 대량으로 빠르게 직렬화&역직렬화 할 수 있다고 한다. 구글에서 다루는 데이터가 워낙에 다양하고 양도 많으니 당연한 요구사항 이었겠지. 을 대체...

GRPC

gRPC는 구글이 개발한 오픈소스 RPC(Remote procedure call) 시스템이다. HTTP/2와 Interface description language인 프로토콜 버퍼(Protocol Buffers)를 기반으로 하고 있다. 인증, 양방향 스트리밍, timeout, cancellation, 블럭킹, 넌블럭킹등의 기능을 제공한다. gRPC를 이용하...

Go는 C를 대체 할 수 있을까 ?

원문 그렇지 않다. 애초에 Go는 C/C++를 대체하기 위한 목적으로 디자인하지 않았다. Go는 구글의 네트워킹 인프라스트럭처를 유지하던 C++ 의 엄청난 복잡성과 긴 컴파일 시간을 해결하기 위한 C++의 대체폼으로 설계됐다. 여기에서 중요한 점은 프로그래머들은 구글러이며, 연구자들이 아니란 것이다. 그들은 일반적으로 매우 젊고, 이제 막 학교를 졸업했으...

golang - aws region 목록 가져오기

AWS GoLang SDK를 이용해서 AWS의 전체 리전(region)목록을 가져오는 프로그램을 개발하기로 했다. 개발한 프로그램은 최신의 AWS Region 정보를 보여주는 Joinc Wiki Plugin 개발에 사용 한다. 코드는 아래와 같다. 설명은 주석으로 대신한다.package mainimport ( "fmt" "github.com/aws/aws-...

GoLang 디버거 - Delve

Delve는 Go 언어를 위한 디버깅 툴이다.# go get -u github.com/derekparker/delve/cmd/dlvdlv 실행파일은 $HOME/go/bin 에 설치된다. PATH를 등록하고 테스트해 보자.# export PATH=$HOME/go/bin# dlv versionDelve DebuggerVersionBuild테스트 애플리케이션을 ...

Go언어에서의 TDD

여기에서 사용한 테스트 코드는 에서 다운로드 할 수 있다.클라우드와 MSA와 의 등장으로 (2016년 6월)TDD가 재조명 받고 있다. TDD의 큰 단점 중 하나는 제대로 적용하려면 상당히 많은 시간과 노력이 필요하다는 점이다. 특히 여기 저기 연동되는 라이브러리나 소프트웨어가 많은 경우 테스트가 굉장히 복잡해지는데, 복잡해지는 만큼 테스트의 신뢰성도 함께...

MSA에서의 REST API 테스트 방안

이름 닉네임 사이트 NaverLabs 클라우드(주로 AWS) 환경에서 서비스 백앤드를 개발. 우분투리눅스 18.04 vim-go + ycm Makefile + glide 개발 환경을 소개 합니다. 여기 있는 문서들은 평소의 제 개발환경에서의 경험을 기반으로 하고 있기 때문에 나름 의미가 있을 거라 생각합니다. 우분투리눅스를 데스크탑으로 하고 있고요...

golang 시작하기 - 개발환경 만들기

(2019년 5월 5일)현재 Go의 최신 버전은 1.12.4이다. 이전 문서는 1.9.1 기준이었는데, 1.11 버전이후로 Go의 패키지 관리 정책이 변경됐다. 가 생겼으므로 변경점에 맞춰서 새로 작성하기로 했다.이 문서의 내용은 우분투리눅스 18.04를 기준으로 한다. 우분투 리눅스가 기준인 이유는 그냥 내가 리눅스 개발자라서이다. # cat /etc/i...

Go 패키지관리

Go1.10 버전까지는 패키지를 관리하기 위한 마땅한 도구가 없었다. 하지만 프로젝트의 규모가 커지다 보면, 패키지 관리가 필요해지기 마련이라서 dep, glide, vgo 등의 다양한 툴들이 개발됐다. 요즘 같은 시대에 개발환경을 통일해야 하나라는 주장이 있기도 하지만, 소프트웨어 의존성을 관리의 경우 다양한 툴이 있다는 것은 좋은 소식이 아니다. 다행...