Skip to main content

Command Palette

Search for a command to run...

23년 8월 전반기 뉴스레터

Published
3 min readView as Markdown

의도한건 아니지만 딱 8월 15일에 뉴스레터를 발간하게 되었습니다. 한국에선 의미 있는 날인만큼 저도 그렇고, 모두 순국선열 분들의 희생에 감사하며 평화로운 하루 보내시길 바랍니다.


저 고 처음 시작하는 데 뭘로 시작하면 되요?

라고 물으신다면 여러분에게는 이 레포가 필요할 것입니다.

기본적인 연산자들에서 제어문, 바이너리, 컬렉션들(이 있었어?), 비동기까지!

실행하며 배울 수 있는 테스트 코드가 작성되어 있는 go_assessment를 시도해보세요!

dmh2000/go_assessment: A port of Rebecca Murphey's js-assessment for Go (github.com)


CLI 툴 하나 더 필요 없습니까?

저는 kingpin을 주로 쓰고 있습니다.

아쉽게도 별 다른 선택지가 없었던게 컸죠. 코브라가 좋다지만 손에 안 익더라구요.

lieut는 앞서 제가 얘기한 라이브러리들에 비해 가벼운 걸 자랑으로 삼고, 그 덕에 충분히 어렵지 않을 것으로 생각됩니다.

Rican7/lieut: An opinionated, feature-limited, no external dependency, "micro-framework" for building command line applications in Go. (github.com)


패턴.. 매칭..?

뭔가 새로운 패턴매칭 라이브러리가 나타났습니다.

제네릭과 메서드 체인으로 나타나는 성능은 잘 모르겠지만, 코드 자체는 아름다운 라이브러리입니다.

PhakornKiong/go-pattern: Pattern Matching library for go (github.com)


HTMX와 함께 하는 웹 게임 개발기

고 언어를 백엔드로, HTMX를 프론트 라이브러리로 활용하면 좋은 웹앱이 나올 거같다는 생각은 자주 합니다.

하지만 행동으로 옮기지는 못 하고 있었습니다.

확신이 없었거든요. 그럴 때 가장 좋은 게 간접 경험이죠.

한번 읽어 보고 고 템플릿 라이브러리와 HTMX로 어떻게 페이지를 만들고 데이터를 주고 받았는지 확인해 보세요!

Building a Web Game with Go & htmx | by Abayomi Popoola | Aug, 2023 | Medium


여러분은 비터비 인코딩이 뭔지 아십니까?

저는 몰랐습니다.

근데 말이죠. 아직 잘 모르겠습니다.

DP를 활용한 인코딩 알고리즘이고, 오류 검출에 유용하다. 대신 메모리 요구량이 높다.

그 정도 밖에 모르겠습니다.

잘 모르겠습니다. 하지만 매력적으로 보입니다.

8ff/viterbi: Convolutional encoder and a Viterbi decoder written in Golang (github.com)


컴파일 언어 in GO

Expr은 고 언어로 쓰여진 컴파일 언어입니다.

물론 패키지로써 임포트해서 쓸 수도 있죠.

강타입 언어고 고 언어와 비슷한 느낌도 많은 언어입니다.

지금 당장 쓸만한 임베딩 되는 언어를 원하시면 한번 시도해 보시는 건 어떤가요?

Expr | Expression language (medv.io)


고 1.21 릴리즈로 바뀌는 것들

고 언어 1.21에 새로 추가된 기능도 많고 변경 사항도 많습니다.

그냥 쭉 보면 막막하니 정리된 문서 몇개를 동봉해 드리겠습니다.

Go 1.21 All You Need to Know, Online Whiteboard for Visual Collaboration (miro.com)

Understanding Go 1.21 generics type inference – Encore Blog

What I worked on for Go 1.21 · The Ethically-Trained Programmer (carlmjohnson.net)


SQL 연결 끊어!

여러분들은 SQL 연결이나 pre statement, rows를 닫지 않아 과도한 트래픽이 유발된 적 없으신가요?

전 있습니다. 가상 네트워크 사용료가 좀 나왔었죠.

하지만 이제 그 걱정을 할 필요가 없어졌습니다.

새로운 린터를 발견했거든요.

A linter I really recommend you to use if you’re doing SQL in Golang | by Piotr Jastrzebski | Aug, 2023 | Turso blog


TypeChat을 아십니까?

마이크로소프트에서 Typescript 기반으로 나온 타입 기반 자연어 처리를 위한 라이브러리라고 생각하시면 좋을 것같습니다.

그 TypeChat의 고 포팅 라이브러리가 나왔습니다.

한번 타입 기반으로 뭔가를 해보실 분들은 해보셔도 좋지 않을까요?

maiqingqiang/TypeChat-Go: 🤖 This is the Go language implementation of microsoft/TypeChat. ⭐️ Star to support our work~ (github.com)


GopherCon Korea 2023이 있었습니다.

근데 제가 7월 말 뉴스레터에 까먹고 싣지 않았죠.

아직 영상이나 자료가 공유된 걸로 보이진 않는데요?

스케치 영상과 유튜브 라이브 영상 풀버전은 남아 있으니, 고퍼콘을 가보지 않았고 편집 영상 나오기 전에 보고 싶으시다면 아래 남겨 드리는 링크를 보시는 것도 좋을 것같습니다.

2일차는 꼭 마지막까지 보시는 걸 추천합니다!

https://youtu.be/ImaHdBHTWUY

https://www.youtube.com/live/WZthMW0BaNA?feature=share

https://www.youtube.com/live/8AUVKh0qJgU?feature=share


애저는 여러분들을 환영합니다.

RIP AWS Go Lambda Runtime | Mark Wolfe's Blog


주니어가 되는 것을 그만두세요.

최근에 시니어와 주니어에 대해서 생각해봤습니다.

저는 직급은 주니어인데요.

과연 시니어와 주니어를 나누는 기준은 뭐고, 우린 어떻게 시니어가 될 수 있을까요?

(번역) 주니어가 되는 것을 그만두세요. (hellomooneekim.netlify.app)

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