Skip to content

Latest commit

 

History

History
86 lines (59 loc) · 5.87 KB

clh7q1i39000109mnb52ffiw2.md

File metadata and controls

86 lines (59 loc) · 5.87 KB
title datePublished cuid slug tags
23년 1월 첫번째 뉴스레터
Wed May 03 2023 13:15:49 GMT+0000 (Coordinated Universal Time)
clh7q1i39000109mnb52ffiw2
news-23-01
newsletter

여러분들은 고를 왜 하시나요? 아니면 아직 해보신 적이 없으신가요?

아직 시작하지 않았다면, 지금 당장 고를 시작해야하는 이유 5가지를 소개해 드립니다.
지금부터 Go언어를 배워야 하는 5가지 이유 (Golang) : 네이버 블로그 (naver.com)


"당신들은 구글이 아니다."

Oz Nova는 미디움에 "당신들은 구글이 아니다"라는 자극적인 제목의 아티클을 게시했습니다.
당장 문제 해결을 위해 여러 어렵고 복잡한 솔루션을 택하기 보다, UNPHAT을 시도하길 권했습니다.
그가 그렇게 권장하는 UNPHAT은 무엇을 의미하는 걸까요?
You Are Not Google. Software engineers go crazy for the… | by Oz Nova | Bradfield (bradfieldcs.com)


고에서 쓸 수 있는 인메모리 캐시

고 언어로 짜여진 프로그램 내부에서 쓸 수 있는 간단하지만, 빠르고, 편리하고, 동시성에 안전한 캐시 라이브러리가 필요했던 적 없으신가요?
ristretto는 빈 인터페이스(interface{})를 캐싱할 수 있는, 구조체의 인스턴스를 별도 인/디코딩 없이 캐싱할 수 있는 편리한 캐시 라이브러리입니다.
dgraph-io/ristretto: A high performance memory-bound Go cache (github.com)  


고 언어에 내장할 수 있는 빠른 key-Value Store 라이브러리

Badger는 LSM 트리를 기반으로 만들어진 KV Store입니다.
당연히 디스크에 기록되는 영속적인 데이터베이스이며, 동시성에 MVCC를 지원하므로 매우 높은 읽기 성능을 자랑합니다!
가볍게 쓸만한 인 앱 KV Store가 필요하다면 Badget는 어떤가요?
dgraph-io/badger: Fast key-value DB in Go. (github.com)


이런 ORM은 어떤가요?

고 언어 생태계의 ORM에는 GORM, XORM, ent-go가 주로 쓰였습니다.
이런 ORM 라이브러리들이 있음에도 불구하고, 고 언어 커뮤니티에서는 ORM에 대한 끊임 없는 질문과 아쉬움이 나오고 있었죠.
이 시점에 다음 3개의 ORM 라이브러리들은 틈새 시장을 파고들 수 있을까요?
kamalshkeir/korm: KORM is an Elegant and Blazingly Fast ORM using generics and network bus (github.com)
go-jet/jet: Type safe SQL builder with code generation and automatic query result data mapping (github.com)
gokch/ornn (github.com)


힙 얼록을 거의 하지 않는 레디스 클라이언트

레디스 클라이언트는 보통 go-redis를 주로 사용하였습니다.
하지만 역시 개발자라면 더 나은 생산성과 성능을 낼 수 있다면, 그 라이브러리에 관심을 가질 수밖에 없다고 생각합니다.
그럼 go-redis보다 훨씬 빠르면서, 힙 얼록을 거의 하지 않는 레디스 클라이언트가 있다면 써볼만 하지 않을까요?
rueidis라는 레디스 클라이언트는 0.0.90 버전에 almost zero allocation을 달성 했습니다!
버전이 너무 낮은 거같다구요? ㅠ.ㅜ
(1) rueidis v0.0.90: an almost zero allocation redis client library : golang (reddit.com)
rueian/rueidis: A fast Golang Redis client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, etc. (github.com)


ngrok으로 바로 서빙하기

로컬 환경에서 실행 중인 서버를 외부 인터넷으로 터널링 해주는 ngrok에서 고 언어 전용 라이브러리를 릴리즈했습니다.
net/http에 간단한 설정을 추가함으로 쉽게 터널링을 할 수 있게 해줍니다.
Introducing ngrok-go: Ingress network straight from your app


고와 러스트의 공생

지난 2022년 크리스마스에 LondonGophers에서 러스트 코드를 고에서 호출하는 방법에 대한 영상을 올렸습니다.
서로 다른 두 플랫폼의 코드를 융합하기 위한 시도, WASM을 활용한 프레젠테이션으로 미래의 개발 환경을 구경해 보세요!
Go and Rust: Together at Last - Barnaby Keene - Go x Rust: A Very Scalable Christmas 2022 - YouTube


SourceHut, 고 모듈 미러를 블랙리스트에 올린다

SourceHut이 2023년 2월 24일에는 고 모듈 미러에 대한 지원을 중단하기로 했습니다. 
SourceHut는 모든 고 모듈을 고퍼 개개인이 다운로드 받을 때마다 google의 요청을 수반하고, 이 트래픽이 각 모듈 마다 하루 최대 4GiB까지 기록되어, 과도한 트래픽이 생성된 다고 합니다.
SourceHut will blacklist the Go module mirror