# 23년 1월 첫번째 뉴스레터

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

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

---

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

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

---

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

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

---

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

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

---

### **이런 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 (](https://github.com/kamalshkeir/korm)[github.com](http://github.com)[)](https://github.com/kamalshkeir/korm)  
[go-jet/jet: Type safe SQL builder with code generation and automatic query result data mapping (](https://github.com/go-jet/jet)[github.com](http://github.com)[)](https://github.com/go-jet/jet)  
[gokch/ornn (](https://github.com/gokch/ornn)[github.com](http://github.com)[)](https://github.com/gokch/ornn)

---

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

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

---

### **ngrok으로 바로 서빙하기**

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

---

### **고와 러스트의 공생**

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

---

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

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