golang-concurrency
Go 언어의 동시성 설계 — 고루틴의 수명 주기와 누수 방지, 채널과 `select`, 채널의 소유권과 방향, `sync.Mutex`/`RWMutex`/`sync.Map`/`sync.Once`/atomics, `errgroup`, `singleflight`, 워커 풀, 팬-아웃/팬-인 파이프라인. Go 동시성 코드를 작성하거나 검토할 때, 채널과 뮤텍스 중 하나를 선택해야 할 때, 공유 맵이나 카운터를 보호해야 할 때, 또는 고루틴의 종료 시점이 명확하지 않을 때 사용하십시오. nil panic, 슬라이스 별칭, 숫자 오버플로우와 같이 동시성과 무관한 방어적 코딩에는 적합하지 않습니다(→ `samber/cc-skills-golang@golang-safety` 스킬 참조). 또한 특정 프로그램이 멈춘 경우, 충돌한 경우, 또는 경합(racing)이 발생한 경우 사후 디버깅을 위한 용도로도 사용하지 마십시오(→ `samber/cc-skills-golang@golang-troubleshooting` 스킬 참조).