Go언어에서의 TDD

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

curl을 이용한 인터넷 데이터 전송

웹 서버에 대한 배치작업이 필요한 경우가 있다. 이런 작업에 웹 브라우저를 사용할 수 없는 노릇이니 CLI 도구를 사용해야 한다. curl은 가장 널리 사용하는 인터넷 데이터 전송을 위한 도구다. # curl --versioncurl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.1...

MSA에서의 REST API 테스트 방안

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

Jenkins로 go 빌드 환경 구축

Jenkins는 CI(Continuous Integration)툴이다. Git, SVN과 같은 형상관리 툴과 연동을 해서, commit(혹은 Push)한 코드를 읽어와서 빌드하고 테스트 하고 배포를 위한 패키지를 만드는 일을 한다.최근의 소프트웨어 개발 방법론의 트랜드는 "애자일"과 "데브옵스(DevOps)로 대표 할 수 있다. 이들 개발론들은 개발과 배포...

Go HTTP 패키지 성능 측정

Go HTTP 패키지 성능 측정메시지 드리븐 방식의 웹 기반 API 서버를 개발해야 하는 요구 사항이 생겼다. 백엔드는 등의 고성능 소프트웨어(혹은 프로토콜을 사용하는)로 구성할 계획이라서, 웹 API 서버가 버틀랙이 될 것으로 예상하고 있다. 요즘에는 AWS로 인프라를 구축하고 있는데, 성능은 scale-out으로 해결한다는 기본 방향을 가지고 있다. ...

분산 시스템 성능 측정

분산 시스템 성능 측정주로 ab와 wrk 등을 이용해서 애플리케이션들에 대한 테스트를 수행했다. 단일 애플리케이션 성능 측정에는 쓸만하지만 분산 시스템 성능 측정에 써먹기는 애매모호하다. 아래와 같은 분산 시스템이 있다고 가정해 보자. 테스트를 쉽게 하기 위해서 모델을 단순화 했다. 중요한 점은 비동기 구간이 있어서, 단순히 Frontend API Ser...