Skip to main content

Command Palette

Search for a command to run...

23년 7월 전반기 뉴스레터

Published
•3 min read•View as Markdown

C? Go? Cgo? Ccgo!

여러분들은 cgo를 좋아하시나요?

전 매우 싫어합니다. cgo가 들어간 코드로 인해 고통을 받은 경험이 좀 있기 때문이죠.

하지만 c 코드를 go 코드로 변환한다면 어떨까요?
심지어 곧 성능 향상도 할 수 있다면!?

ccgo/v4 experiment: Trying the new runtime.Pinner (modern-c.blogspot.com)

ccgo command - modernc.org/ccgo/v3 - Go Packages


지옥에서 돌아온 고릴라

이전에 메인테이너를 끝내 찾지 못해 아카이빙된 고릴라 툴킷이 결국 돌아왔습니다.

새 메인테이너 분은 레드햇 소속의 시니어 엔지니어로 보입니다.

[bug] · Issue #707 · gorilla/mux (github.com)


로직에서 효과적으로 데이터를 관리하는 방법

거창한 이름이지만 사실 그렇게 어렵지 않을 수 있는 로직입니다.

research!rsc: Storing Data in Control Flow (swtch.com)


IBM이 sarama의 새 메인테이너가 되었습니다

sarama는 고 언어의 카프카 클라이언트입니다.

원래는 쇼피파이에서 관리했는데, 최근 IBM 산하로 옮겨지게 되었습니다.

사실상 레드햇 소속 개발자가 고릴라 툴킷을 인수한 것에 더불어 IBM이 고 언어 오픈소스에 적지 않은 관심을 쓰고 있는 것같습니다.

Transition sarama ownership · Issue #2461 · IBM/sarama (github.com)


모놀리틱? 마이크로서비스?

구글이 만드는 service weaver라는 프레임워크를 기억하실 겁니다.

서비스 웨이버의 특성상 얼마나 많은 장비를 주냐에 따라, 얼마나 많은 부하를 가지냐에 따라 모놀리틱이 되기도 하고, 마이크로서비스가 되기도 합니다.

매력적인 프레임워크이고, 좋은 튜토리얼이 나왔으니 한번 찍먹해 보는 건 어떨까요??

Monolith or Microservices, or Both: Building Modern Distributed Applications in Go with Service Weaver | by Shiju Varghese | Jul, 2023 | Medium


벌써 나온 slog 라이브러리

어려운 라이브러리는 아니고, 로그 상에서 필터링 해야하는 타입을 제거하는 라이브러리입니다.

로그 상에 남기면 안되는 것들에 대한 처리를 깔끔하게 할 수 있어 보입니다.

m-mizutani/masq: A utility to redact sensitive data for slog in Go (github.com)


아마 최고의 카메라 스트리밍 앱

다양한 하드웨어 카메라와 소프트웨어 엔드포인트에서 스트리밍 되는 영상을 릴레이 하는 고로 짜여진 앱입니다.

놀랍게도 제로 디펜던시로 되어 있어 엄청난 이식성을 보여줍니다.

AlexxIT/go2rtc: Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc. (github.com)


진짜로 나와버린 tson

jetpack-io/tyson: 🥊 TypeScript as a Configuration Language. TySON stands for TypeScript Object Notation (github.com)


나만의 레디스 만들기

redcon은 서버사이드 레디스 프로토콜을 구현한 재밌는 라이브러리입니다.

이걸 이용해서 자신만의 레디스 프록시 서버, 혹은 레디스 그 자체를 한번 만들어 보는 건 어떠신가요?
참고로 전 하나 만들겁니다.

tidwall/redcon: Redis compatible server framework for Go (github.com)


모던 동시성 패턴

알려진 동시성 패턴들에 대한 개요와 상세하고 친절한 설명, 그리고 고를 써야하는 이유까지!

Modern Concurrency with Go. From Learn Concurrent Programming with… | by Manning Publications | CodeX | Jun, 2023 | Medium


검증된 JSON 객체 생성을 위한 라이브러리

coze는 JWT와 비슷한 인상을 주는 메시지에 서명을 추가해서 검증된 메시지임을 증명할 수 있는 JSON을 만들어줍니다.

JWT를 대체해서 쓸 수 있을 것같긴 한데, 좀 더 범용적으로 쓸 수 있는 방안을 찾으면 재밌을 것같습니다.

Cyphrme/Coze: Coze - cryptographic JSON messaging specification (github.com)


이걸로 cURL을 대체할 수 있을까?

고 언어로 짜여진 CLI 용 http client 앱이 하나 더 나왔습니다.

사용성은 뭔가 cURL을 연상케 하는 느낌이 큰 것같습니다.

abdullah-alaadine/http-client: HTTP Client is a command-line tool for executing HTTP requests (github.com)

More from this blog

[GDC] Weekly Newsletter September 2nd

[GDC] Weekly Newsletter September 2nd Go 애플리케이션 성능 향상: 프로파일 기반 최적화 활용하기 소개 Go 컴파일러는 실행 시 어떤 코드가 자주 사용되는지 알 수 없기 때문에, 정적인 추측에 의존하여 최적화를 수행합니다. 이로 인해 실제 실행 환경에서 성능이 저하될 수 있습니다. 프로파일 기반 최적화(PGO)는 Go 컴파일러에게 애플리케이션 실행 프로파일을 제공하여 컴파일러가 더 정확한 최적화를 수행할 수 있...

Sep 8, 202417 min read

[GDC] Weekly Newsletter September 1st

Go 언어에서의 모델 검증 요약 Go 언어에서 모델 검증은 소프트웨어 개발에서 필수적인 부분입니다. 적절한 검증을 통해 데이터 유효성을 보장하고 이후 작업을 간소화할 수 있습니다. 이 글은 Go 언어에서 모델 검증을 수행하는 다양한 방법과 validator v10 라이브러리에 대해 설명합니다. 소개 Go 언어는 강력한 타입 시스템을 제공하지만, 모델 검증을 위한 내장 기능은 부족합니다. 따라서 개발자는 직접 검증 로직을 작성하거나 외부 라이브러...

Sep 1, 202428 min read

[GDC] Weekly Newsletter August 5th

BleuIO와 Go를 사용하여 BLE 애플리케이션 구축하기 Summary 이 글은 BleuIO USB 동글과 Go 프로그래밍 언어를 사용하여 Bluetooth 저에너지(BLE) 개발을 시작하는 방법을 단계별로 안내합니다. BleuIO는 사용하기 쉬운 AT 명령어로 BLE 애플리케이션 개발을 단순화하는 다재다능하고 사용자 친화적인 BLE USB 동글입니다. Description 이 글은 개발 환경을 설정하고 BLE 동글과 상호 작용하는 간단한 ...

Aug 25, 202435 min read

# [GDC] Weekly Newsletter August 3rd

본 아티클은 시험삼아 모두 Gemini Flash로 생성했습니다. 잘못된 부분은 제 메일로 알려주셨으면 합니다! gRPC over HTTP/3: 차세대 분산 시스템을 위한 혁신 요약 gRPC over HTTP/3는 분산 시스템의 성능과 효율성을 향상시키기 위한 새로운 기술입니다. gRPC는 이미 빠르고 효율적인 RPC 프레임워크로 알려져 있으며, HTTP/3는 최신 HTTP 프로토콜로서 낮은 지연 시간과 높은 성능을 제공합니다. 이 조합은 네...

Aug 18, 202461 min read

Go 언어 뉴스레터: //go:linkname 사용 제한에 대한 논의

이 기사는 Gemini를 이용해 작성된 것입니다. 토론 Go 표준 라이브러리 내부(특히 런타임 내부)에 접근하기 위해 //go:linkname을 과도하게 사용하면 Go 생태계의 많은 패키지에 의존하는 패키지가 표준 라이브러리 내부를 변경할 때 문제가 발생할 수 있습니다. 예를 들어, https://go.dev/cl/583756는 github.com/goccy/go-json이 런타임의 내부 타입 API를 대부분 복사했기 때문에 해당 패키지를 ...

Jun 22, 20241 min read
G

Go Developer Community

28 posts