<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Go on Marsettler</title>
    <link>https://marsettler.com/tags/go/</link>
    <description>Recent content in Go on Marsettler</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 11 Jan 2026 21:48:34 +0900</lastBuildDate>
    <atom:link href="https://marsettler.com/tags/go/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Go releases</title>
      <link>https://marsettler.com/go/go-release/</link>
      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/go-release/</guid>
      <description>&lt;h2 id=&#34;go-126-interactive-tour-by-anton-zhiyanov&#34;&gt;&lt;a href=&#34;https://antonz.org/go-1-26/&#34;&gt;Go 1.26 interactive tour by Anton Zhiyanov&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My highights&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonz.org/go-1-26/#simd&#34;&gt;Vectorized operations (experimental)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonz.org/go-1-26/#pprof-goroutineleak&#34;&gt;Goroutine leak profile (experimental)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Go interesting bugs</title>
      <link>https://marsettler.com/go/go-interesting-bugs/</link>
      <pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/go-interesting-bugs/</guid>
      <description>&lt;h2 id=&#34;how-we-found-a-bug-in-go&#34;&gt;&lt;a href=&#34;https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/&#34;&gt;How we found a bug in Go&amp;rsquo;s arm64 compiler by Thea Heinen&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;A release? Infrastructure changes? The position of Mars?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Our investigation stalled for a while at this point – making guesses, testing guesses, trying to infer if the panic rate went up or down, or if nothing changed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;A reproducible crash with standard library only? This felt like conclusive evidence that our problem was a runtime bug.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/golang/go/commit/f7cc61e7d7f77521e073137c6045ba73f66ef902&#34;&gt;https://github.com/golang/go/commit/f7cc61e7d7f77521e073137c6045ba73f66ef902&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Go 성능 최적화 팁</title>
      <link>https://marsettler.com/go/go-performance-optimization-tips/</link>
      <pubDate>Sun, 04 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/go-performance-optimization-tips/</guid>
      <description>&lt;h2 id=&#34;go-성능-최적화-팁&#34;&gt;Go 성능 최적화 팁&lt;/h2&gt;&#xA;&lt;p&gt;박재완&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;airbridge-와-luft&#34;&gt;Airbridge 와 Luft&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.airbridge.io/&#34;&gt;Airbridge&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;합리적인 비용의 올인원 모바일 마케팅 솔루션&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://engineering.ab180.co/stories/introducing-luft&#34;&gt;Luft&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Airbridge 에서 유저행동 분석을 위해 사용하는 OLAP 데이터베이스&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://engineering.ab180.co/stories/traildb-to-ziegel&#34;&gt;Ziegel&lt;/a&gt; 을 스토리지 엔진으로 사용&lt;/li&gt;&#xA;&lt;li&gt;Go 로 작성&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; to Go</title>
      <link>https://marsettler.com/go/c&#43;&#43;-to-go/</link>
      <pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/c&#43;&#43;-to-go/</guid>
      <description>&lt;h1 id=&#34;c-to-go&#34;&gt;C++ to Go&lt;/h1&gt;&#xA;&lt;h2 id=&#34;introducing-ziegel&#34;&gt;Introducing Ziegel&lt;/h2&gt;&#xA;&lt;p&gt;박재완&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;luft&#34;&gt;Luft&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ziegel and TrailDB&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;luft-1&#34;&gt;&lt;a href=&#34;https://engineering.ab180.co/stories/introducing-luft&#34;&gt;Luft&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OLAP database for analize the analyzing user behavior in real-time&lt;/li&gt;&#xA;&lt;li&gt;Use TrailDB as a storage&lt;/li&gt;&#xA;&lt;li&gt;Written in C/C++ and Go&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;traildb&#34;&gt;&lt;a href=&#34;https://traildb.io/&#34;&gt;TrailDB&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TrailDB is an efficient tool for storing and querying series of events&lt;/li&gt;&#xA;&lt;li&gt;Written in C&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;ziegel&#34;&gt;&lt;a href=&#34;https://engineering.ab180.co/stories/traildb-to-ziegel&#34;&gt;Ziegel&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New storage engine for the Luft&lt;/li&gt;&#xA;&lt;li&gt;Written in Go&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why?&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TrailDB has been a suitable solution for the Luft&lt;/li&gt;&#xA;&lt;li&gt;But development was halted in 2019&lt;/li&gt;&#xA;&lt;li&gt;Issues with peformance and productivity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;issues&#34;&gt;Issues&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Inefficient multi-core utilization&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// finalize. this could take a while with idle CPU usage but don&amp;#39;t panic.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// it&amp;#39;s not freeze;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// it&amp;#39;s because TrailDB indexing process is not parallelized yet :(&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Row store data structure&lt;/li&gt;&#xA;&lt;li&gt;Use multiple language: C/C++ and Go&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;journey-for-the-migration&#34;&gt;Journey for the migration&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add more tests for consistency verification&lt;/li&gt;&#xA;&lt;li&gt;Add interface for engine replacement&#xA;&lt;ul&gt;&#xA;&lt;li&gt;With this interface, we can easily replace the engine(partial or full)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Implement storage engine&lt;/li&gt;&#xA;&lt;li&gt;Peformance tuning&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2x fater for the ingestion, 1.2 slower for the query&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;peformance-tuning&#34;&gt;Peformance tuning&lt;/h2&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;measuring-performance&#34;&gt;Measuring performance&lt;/h3&gt;&#xA;&lt;p&gt;Go provides great tools for measuring performance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go good reads</title>
      <link>https://marsettler.com/go/go-good-reads/</link>
      <pubDate>Sun, 18 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/go-good-reads/</guid>
      <description>&lt;h1 id=&#34;index&#34;&gt;Index&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;##performance&#34;&gt;Performance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;##concurrency&#34;&gt;Concurrency&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;##distributed-systems&#34;&gt;Distributed Systems&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;##generics&#34;&gt;Generics&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;##reiaibility&#34;&gt;Reiaibility&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;##others&#34;&gt;Others&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;performance&#34;&gt;Performance&lt;/h2&gt;&#xA;&lt;h3 id=&#34;we-tried-go&#34;&gt;&lt;a href=&#34;https://www.dolthub.com/blog/2025-09-26-greentea-gc-with-dolt/&#34;&gt;We tried Go&amp;rsquo;s experimental Green Tea garbage collector and it didn&amp;rsquo;t help performance by Zach Musgrave&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;parsing-protobuf-like-never-before-by-mcyoung&#34;&gt;&lt;a href=&#34;https://mcyoung.xyz/2025/07/16/hyperpb/&#34;&gt;Parsing Protobuf Like Never Before by mcyoung&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;deep-dive-into-a-go-binary-by-jesús-espino&#34;&gt;&lt;a href=&#34;https://youtu.be/5VkYXgUqxcE?list=PLDWZ5uzn69ewrYyHTNrXlrWVDjLiOX0Yb&#34;&gt;Deep dive into a go binary by Jesús Espino&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;if-you-want-to-know-how-high-performance-systems-written-in-go-were-built-read-victorialogs--httpsgithubcomvictoriametricsvictorialogs-by-phuong-le&#34;&gt;&lt;a href=&#34;https://x.com/func25/status/1950115605484552333&#34;&gt;If you want to know how high performance systems written in Go were built, read VictoriaLogs:  https://github.com/VictoriaMetrics/VictoriaLogs by Phuong Le&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Custom bloom filters to reduce disk I/O and CPU cycles for redundant logs.&lt;/li&gt;&#xA;&lt;li&gt;Column-oriented block storage for better compression ratio and cache locality.&lt;/li&gt;&#xA;&lt;li&gt;Memory-mapped files with automatic pread fallback for zero-copy reads.&lt;/li&gt;&#xA;&lt;li&gt;Lock-free object pools and arena allocators to reduce heap allocations.&lt;/li&gt;&#xA;&lt;li&gt;Reflection-free JSON parsers for streaming at hundreds of MB/s per core.&lt;/li&gt;&#xA;&lt;li&gt;Compile-time templates replace text/html parsing with near-printf speed.&lt;/li&gt;&#xA;&lt;li&gt;Dictionary-aware Zstd compression balancing CPU cost against bandwidth savings.&lt;/li&gt;&#xA;&lt;li&gt;Multi-core parallelism everywhere with adaptive concurrency limits.&lt;/li&gt;&#xA;&lt;li&gt;Scatter-gather fan-out writes with adaptive concurrency for network saturation.&lt;/li&gt;&#xA;&lt;li&gt;Fast hashing and lock-free randomization for minimal contention.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;how-go-124&#34;&gt;&lt;a href=&#34;https://www.datadoghq.com/blog/engineering/go-swiss-tables/&#34;&gt;How Go 1.24&amp;rsquo;s Swiss Tables saved us hundreds of gigabytes by Nayef Ghattas&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;finding-performance-problems-by-diffing-two-go-profiles-by-zach-musgrave&#34;&gt;&lt;a href=&#34;https://www.dolthub.com/blog/2025-06-20-go-pprof-diffing/&#34;&gt;Finding performance problems by diffing two Go profiles by Zach Musgrave&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;optimising-and-visualising-go-tests-parallelism-why-more-cores-don&#34;&gt;&lt;a href=&#34;https://threedots.tech/post/go-test-parallelism/&#34;&gt;Optimising and Visualising Go Tests Parallelism: Why more cores don&amp;rsquo;t speed up your Go tests&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;leveraging-benchstat-projections-in-go-benchmark-analysis&#34;&gt;&lt;a href=&#34;https://www.bwplotka.dev/2024/go-microbenchmarks-benchstat/&#34;&gt;Leveraging benchstat Projections in Go Benchmark Analysis!&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;benchmarks-and-performance-testing&#34;&gt;&lt;a href=&#34;https://www.willem.dev/articles/benchmarks-performance-testing/&#34;&gt;Benchmarks and performance testing&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;new-unique-package-by-michael-knyszek&#34;&gt;&lt;a href=&#34;https://go.dev/blog/unique&#34;&gt;New unique package by Michael Knyszek&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;This work also led us to reexamine finalizers, resulting in another proposal for an easier-to-use and more efficient replacement for finalizers. With a hash function for comparable values on the way as well, the future of building memory-efficient caches in Go is bright!&lt;/p&gt;</description>
    </item>
    <item>
      <title>CockroachDB</title>
      <link>https://marsettler.com/cockroachdb/</link>
      <pubDate>Sun, 26 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/cockroachdb/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://marsettler.com/cockroachdb-introducing-pebble&#34;&gt;페블(Pebble): RocksDB에서 영감을 받은 키밸류 저장소&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/cockroachdb-livestream-bugfix-and-chill&#34;&gt;(Guide) Jordan Lewis&amp;rsquo;s LARGE DATA BANK livestream: Bugfix and Chill(버그를 수정하자!)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/cockroachdb-livestream-issue-41522&#34;&gt;(Guide) Jordan Lewis&amp;rsquo;s LARGE DATA BANK livestream: CockroachDB is learning the secret technique LISTEN/NOTIFY&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/cockroachdb-with-peter-mattis-sedaily&#34;&gt;피터 매티스와의 인터뷰 - Software Engineering Daily&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/sprintseoul-cockroachdb&#34;&gt;스프린트서울 참가자분들을 위한 카크로치디비(CockroachDB)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/cockroachdb-column-families&#34;&gt;카크로치디비의 컬럼 패밀리&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go의 철학</title>
      <link>https://marsettler.com/go/the-zen-of-go/</link>
      <pubDate>Sun, 05 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/the-zen-of-go/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://twitter.com/davecheney&#34;&gt;Dave Cheney&lt;/a&gt;의 &lt;a href=&#34;https://the-zen-of-go.netlify.com/&#34;&gt;The Zen of Go&lt;/a&gt;를 번역했습니다. 좀 더 알고 싶으신 분은 &lt;a href=&#34;https://www.youtube.com/watch?v=yd_rtwYaXps&#34;&gt;발표 영상&lt;/a&gt;과 &lt;a href=&#34;https://dave.cheney.net/2020/02/23/the-zen-of-go&#34;&gt;블로그 글&lt;/a&gt;을 함께 참고해 주십시오.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;go의-철학&#34;&gt;Go의 철학&lt;/h2&gt;&#xA;&lt;p&gt;쉽고, 읽기 좋으며, 유지가능한 Go 코드 작성을 위한 10가지 엔지니어링 가치. &lt;a href=&#34;https://www.gophercon.org.il/&#34;&gt;고퍼콘 이스라엘 2020&lt;/a&gt;에 발표하였음.&lt;/p&gt;&#xA;&lt;h4 id=&#34;패키지는-하나의-목적만을-달성합니다&#34;&gt;패키지는 하나의 목적만을 달성합니다&lt;/h4&gt;&#xA;&lt;p&gt;잘 디자인된 Go 패키지는 단 하나의 아이디어와 관련 동작을 제공합니다. 좋은 Go 패키지를 위해 좋은 이름을 먼저 정해야 합니다. 엘리베이터 피치라고 생각하며 패키지 이름을 정해보십시오.&lt;/p&gt;&#xA;&lt;h4 id=&#34;에러는-명시적으로-처리합니다&#34;&gt;에러는 명시적으로 처리합니다&lt;/h4&gt;&#xA;&lt;p&gt;단단한 프로그램은 문제가 생기기 전에 실패처리를 하는 요소들로 이루어져 있습니다. 실패를 발생지점에서 의도적으로 처리할 수 있다는 것은 &lt;code&gt;if err != nil { return err }&lt;/code&gt; 의 장황함마저 대수롭지 않아 보이게 합니다. &lt;code&gt;panic&lt;/code&gt;과 &lt;code&gt;recover&lt;/code&gt;는 예외가 아니며, 그런 식으로 사용되게 의도되지 않았습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>xvfb를 이용한 Go headless 테스트</title>
      <link>https://marsettler.com/go/go-headless-test-with-xvfb/</link>
      <pubDate>Thu, 02 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/go-headless-test-with-xvfb/</guid>
      <description>&lt;p&gt;Go에서 &lt;a href=&#34;https://github.com/go-gl/glfw&#34;&gt;GLFW&lt;/a&gt; 등을 이용해 그래픽스 관련 작업을 할 때에도 자동화&#xA;테스트 구성이 가능합니다. 하지만 &lt;a href=&#34;https://github.com/features/actions&#34;&gt;GitHub Actions&lt;/a&gt;과 같이&#xA;디스플레이가 없는 환경에서는 의존성을 가지고 있다는 이유만으로 그래픽스 관련 테스트가 실패합니다.&lt;/p&gt;&#xA;&lt;p&gt;xvfb는 메뉴얼에서 &lt;code&gt;virtual framebuffer X server for X Version&lt;/code&gt; 라고 소개되고 있으며, 서버 사이드&#xA;테스트를 위해 주로 사용됩니다.&lt;/p&gt;&#xA;&lt;p&gt;Ubuntu 기준으로 &lt;code&gt;sudo apt install xvfb&lt;/code&gt;로 설치하고 &lt;code&gt;xvfb-run&lt;/code&gt;에 이어서 테스트 명령어를 추가하여&#xA;테스트할 수 있습니다. 실제 GitHub Actions에 적용한 &lt;a href=&#34;https://github.com/hueypark/marsettler/blob/dadbd044b1c2c6ce29ace6924b7bee5180660e9e/.github/workflows/benchmark.yml#L29&#34;&gt;예시&lt;/a&gt;를&#xA;공유드립니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go</title>
      <link>https://marsettler.com/go/go/</link>
      <pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/go/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://marsettler.com/go/go-headless-test-with-xvfb&#34;&gt;xvfb를 이용한 Go headless 테스트&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/go/the-zen-of-go&#34;&gt;Go의 철학&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/go/using-go-module-with-github-private-repository&#34;&gt;Go module에서 GitHub private repository 사용&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://marsettler.com/go/good-reads&#34;&gt;좋은 읽을거리&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go module에서 GitHub private 저장소 사용</title>
      <link>https://marsettler.com/go/using-go-module-with-github-private-repository/</link>
      <pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/go/using-go-module-with-github-private-repository/</guid>
      <description>&lt;p&gt;Go module에서 GitHub private 저장소를 사용하는 방법입니다.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;git-설정에서-github-접근을-계정과-토큰을-사용하게-변경&#34;&gt;git 설정에서 GitHub 접근을 계정과 토큰을 사용하게 변경&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --global url.&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;GITHUB_USER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;{GITHUB_TOKEN&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}@github.com&amp;#34;&lt;/span&gt;.insteadOf &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://github.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;goprivate-환경변수에-private-저장소-등록&#34;&gt;&lt;a href=&#34;https://golang.org/cmd/go/#hdr-Module_configuration_for_non_public_modules&#34;&gt;GOPRIVATE&lt;/a&gt; 환경변수에 private 저장소 등록&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GOPRIVATE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;github.com/hueypark/asset&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>sql: COMMENT ON INDEX 지원(CockroachDB issue #41316)</title>
      <link>https://marsettler.com/posts/2019-10-20-cockroach-issue-41316/</link>
      <pubDate>Sun, 20 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2019-10-20-cockroach-issue-41316/</guid>
      <description>&lt;p&gt;이슈: &lt;a href=&#34;https://github.com/cockroachdb/cockroach/issues/41316&#34;&gt;sql: add support for COMMENT ON INDEX #41316&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;sql: COMMENT ON INDEX 지원 작업을 했습니다. 이번에는 이슈 등록자가 저에게 먼저 연락을 하는 새로운 경험을 했습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>삭제될 WAL, MANIFEST, sstable을 보관하는 기능 제공 (Pebble issue #284)</title>
      <link>https://marsettler.com/posts/2019-10-15-pebble-issue-284/</link>
      <pubDate>Sun, 13 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2019-10-15-pebble-issue-284/</guid>
      <description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;이슈: &lt;a href=&#34;https://github.com/cockroachdb/pebble/issues/284&#34;&gt;https://github.com/cockroachdb/pebble/issues/284&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;이번에는 Pebble에서 아무에게도 할당되지 않은 이슈를 선택해 수정했습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>초보다 정밀한 단위에 대한 `EXTRACT` 명령이 postgres와 다르게 동작함(CockroachDB issue #40683)</title>
      <link>https://marsettler.com/posts/2019-10-13-cockroach-issue-40683/</link>
      <pubDate>Sun, 13 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2019-10-13-cockroach-issue-40683/</guid>
      <description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;이번에는 간단하게 해결할 수 있는 이슈를 수정했습니다. 이 정도의 이슈는 처음 스프린트에 참여하는 분도 해결할 수 있을 것으로 기대합니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>db: SingleDelete 구현(Pebble issue #222)</title>
      <link>https://marsettler.com/posts/2019-08-19-pebble-issue-222/</link>
      <pubDate>Mon, 19 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2019-08-19-pebble-issue-222/</guid>
      <description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/cockroachdb/pebble&#34;&gt;Pebble&lt;/a&gt;은 LevelDB/RocksDB에서 영감을 받은 카크로치디비용 키-밸류 저장소입니다. 현재(2019년 8월)는 개발 진행중인 상태이며, 2020년 카크로치디비 적용을 &lt;a href=&#34;https://github.com/petermattis/pebble/issues/233&#34;&gt;계획&lt;/a&gt;하고 있습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) Go 스케줄링 파트 3</title>
      <link>https://marsettler.com/posts/2018-12-08-scheduling-in-go-part3/</link>
      <pubDate>Sat, 08 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-12-08-scheduling-in-go-part3/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://www.ardanlabs.com/blog/2018/12/scheduling-in-go-part3.html&#34;&gt;https://www.ardanlabs.com/blog/2018/12/scheduling-in-go-part3.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;프렐류드&#34;&gt;프렐류드&lt;/h3&gt;&#xA;&lt;p&gt;Go 스케줄러의 구조와 의미 이해를 제공하는 3부작의 세 번째 글입니다. 이 글은 동시성에 중점을 둡니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) 카크로치디비(CockroachDB) 블로그 / cgo의 비용과 복잡성</title>
      <link>https://marsettler.com/posts/2018-10-26-the-cost-and-complexity-of-cgo/</link>
      <pubDate>Fri, 26 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-10-26-the-cost-and-complexity-of-cgo/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://www.cockroachlabs.com/blog/the-cost-and-complexity-of-cgo/&#34;&gt;https://www.cockroachlabs.com/blog/the-cost-and-complexity-of-cgo/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) 카크로치디비(CockroachDB) 블로그 / Go에서 가비지 컬렉션을 최적화하는 방법</title>
      <link>https://marsettler.com/posts/2018-10-23-how-to-optimize-garbage-collection-in-go/</link>
      <pubDate>Tue, 23 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-10-23-how-to-optimize-garbage-collection-in-go/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://www.cockroachlabs.com/blog/how-to-optimize-garbage-collection-in-go/&#34;&gt;https://www.cockroachlabs.com/blog/how-to-optimize-garbage-collection-in-go/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) 카크로치디비(CockroachDB) 블로그 / 왜 Go가 CockroachDB에 올바른 선택인가</title>
      <link>https://marsettler.com/posts/2018-10-21-why-go-was-the-right-choice-for-cockroachdb/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-10-21-why-go-was-the-right-choice-for-cockroachdb/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/&#34;&gt;https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) Go 작업훔치기 스케줄러</title>
      <link>https://marsettler.com/posts/2018-10-13-go-work-stealing-scheduler/</link>
      <pubDate>Sat, 13 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-10-13-go-work-stealing-scheduler/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://rakyll.org/scheduler/&#34;&gt;https://rakyll.org/scheduler/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) Go 스케줄링 파트 2</title>
      <link>https://marsettler.com/posts/2018-10-03-scheduling-in-go-part2/</link>
      <pubDate>Wed, 03 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-10-03-scheduling-in-go-part2/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html&#34;&gt;https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;프렐류드&#34;&gt;프렐류드&lt;/h3&gt;&#xA;&lt;p&gt;Go 스케줄러의 구조와 의미 이해를 제공하는 3부작의 세 번째 글입니다. 이 글은 Go 스케줄러에 중점을 둡니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>(번역) Go 스케줄링 파트 1</title>
      <link>https://marsettler.com/posts/2018-10-02-scheduling-in-go-part1/</link>
      <pubDate>Tue, 02 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://marsettler.com/posts/2018-10-02-scheduling-in-go-part1/</guid>
      <description>&lt;p&gt;원문: &lt;a href=&#34;https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html&#34;&gt;https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;프렐류드&#34;&gt;프렐류드&lt;/h3&gt;&#xA;&lt;p&gt;Go 스케줄러의 구조와 의미 이해를 제공하는 3부작의 세 번째 글입니다. 이 글은 OS 스케줄러에 중점을 둡니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Visual Studio Code debug speed up on Windows</title>
      <link>https://marsettler.com/posts/2018-05-14-vscode-go-debug-speed-up-on-windows/</link>
      <pubDate>Mon, 14 May 2018 00:00:00 +0900</pubDate>
      <guid>https://marsettler.com/posts/2018-05-14-vscode-go-debug-speed-up-on-windows/</guid>
      <description>&lt;p&gt;On &lt;code&gt;Visual Studio Code&lt;/code&gt;, &lt;code&gt;Go&lt;/code&gt; debugging is very slow because that always rebuild everything.&lt;/p&gt;&#xA;&lt;p&gt;If you set following settings on your &lt;code&gt;.vscode&lt;/code&gt; folder &lt;code&gt;Visual Studio Code&lt;/code&gt; will only build when changed.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
