benchmark FastAPI (Python) vs Echo (Go) 단순 호기심에 동일 기능을 벤치마크 해봤다. 언어의 성격이나 장단이 다르니 동일한 조건의 테스트는 아니라고 생각된다. 다른 파이썬 라이브러리로도 벤치마크 해봐야겠지만, 결론적으로는 Go 로 작성된 echo 프레임웍이 RPS 면이나 응답속도로도 압도적으로 빨랐다. 1. Envapple m1 macbook air, osx v.11.6.2 bigsur, memory 16GB2.FastAPI (Python), MysqlDB 연동 API 1)
gRPC gRPC 구현 - Client Streaming RPC #2 이번 글에서는 gRPC 의 Client Streaming RPC 예제를 구현 해보도록 한다. Client Streaming RPC 는 다량의 데이터를 스트리밍 방식으로 전송한다는 점에서 지난 글에서 다뤘던 Unary RPC 와 다르다. (아래 그림에서 왼쪽 아래) gRPC Learning (Part 1) - Yang(Bruce) Li - Medium Client Streaming RPC의 구현시작하기Client Streaming RPC는 큰 데이터를
gRPC gRPC 구현 - Unary RPC #1 gRPC의 대표적인 4가지 서비스 예제를 직접 구현해보고 정리해 보기로 했다. 이번 글에서는 gRPC 의 가장 단순한 서비스 형태인 Unary RPC 를 작성 해보도록 한다. Performance is not an Option - gRPC and Cassandra gRPC에 대한 소개gRPC 프레임웍에 대한 소개는 좋은 글을 소개하는 것으로 대신하며, 다음 링크(Microservices with gRPC -
Makefile ShellScript 와 Makefile 이번에 ShellScript 와 같이 정리해보려는 Makefile 의 경우, 보통 C 로 작성된 소스를 의존성을 기술하여 make 라는 명령어로 컴파일을 도와주는 스크립트다. 요즘 go 에서 makefile 을 활용하는 몇가지 글들을 접하면서 ShellScript 보다 체계적이고 깔끔하게 느껴져서 이제는 대부분을 makefile 로 자동화 작업을 하고 있다. 이 글에서는 ShellScript 와 Makefile 어느 것이
go versioning Go 패키지 생성에서 버전관리 까지 GitHub 에서의 go 프로젝트 생성과 versioning 과정을 코드로 정리해 보고자 한다.유의적 버전 2.0.0 | Semantic Versioning https://github.com/golang-standards/project-layout Semantic 버전관리Go에서는 패키지 버저닝을 위해 Semantic Versioning을 사용하길 제안하고 있으며, 간단하게 정리를 하자면 다음과 같다.~기존 버전과 비호환~ 되며 API가 바뀌면 “MAJOR 버전”을 올리고,~기존 버전과
go modules Go Modules 갈아타기 go 1.11.1 이 나오기 전에는 dep 이라는 의존성 관리툴을 사용했고, 이번에 1.11.1 이 나오면서 modules 가 추가되어 적용해 보려한다.go modules 는 go mod 라는 go 명령어로 사용가능 하며, 아래와 같은 옵션을 제공하고 있다. go mod init 모듈이름 : 패키지 초기화go mod tidy : 패키지 정리, 패키지 삭제