#고

35 편의 글

고 실전 #1 첫 HTTP 서버
4 분 소요

고 실전 #1 첫 HTTP 서버

net/http 한 패키지로 시작하는 가장 작은 서버를 만들어봅니다. ListenAndServe, HandleFunc, ResponseWriter, 그리고 graceful shutdown까지 정리합니다.

고 고급 #7 코드 생성 — go generate와 stringer
5 분 소요

고 고급 #7 코드 생성 — go generate와 stringer

reflect의 런타임 비용을 피하는 길은 컴파일 타임 코드 생성입니다. go generate 워크플로우, stringer, mockgen 같은 도구를 정리합니다.

고 고급 #6 프로파일링 — pprof와 benchmark
4 분 소요

고 고급 #6 프로파일링 — pprof와 benchmark

go test -bench, pprof로 CPU,메모리,고루틴 프로파일을 떠 봅니다. 성능을 추측 대신 측정으로 다루는 법을 정리합니다.

고 고급 #5 unsafe와 cgo — 안전 영역 밖으로
5 분 소요

고 고급 #5 unsafe와 cgo — 안전 영역 밖으로

unsafe.Pointer의 네 가지 규칙, cgo의 트레이드오프, 그리고 둘 다 거의 안 써야 하는 이유를 정리합니다.

고 고급 #4 reflect 패키지 — 런타임에 타입 다루기
5 분 소요

고 고급 #4 reflect 패키지 — 런타임에 타입 다루기

reflect.Type과 reflect.Value, struct 태그 읽기, 동적 호출까지 다룹니다. 직렬화 라이브러리 안쪽에서 보이는 도구를 정리합니다.

고 고급 #3 제네릭 — type parameter와 constraint
5 분 소요

고 고급 #3 제네릭 — type parameter와 constraint

Go 1.18에 들어온 제네릭을 다룹니다. type parameter 문법, constraint, comparable과 ~ 토큰, 그리고 언제 안 쓰는 게 좋은지까지 정리합니다.

고 고급 #2 메모리 모델과 sync 패키지
5 분 소요

고 고급 #2 메모리 모델과 sync 패키지

Mutex, RWMutex, WaitGroup, Once, atomic까지 채널이 아닌 공유 메모리 동기화 도구를 다룹니다. 언제 무엇을 쓰는지 정리합니다.

고 고급 #1 동시성 패턴 — fan-out,fan-in,pipeline
6 분 소요

고 고급 #1 동시성 패턴 — fan-out,fan-in,pipeline

고루틴과 채널을 조립해 만드는 표준 동시성 패턴 — pipeline, fan-out/fan-in, semaphore까지 정리합니다.

고 중급 #7 표준 라이브러리 투어
5 분 소요

고 중급 #7 표준 라이브러리 투어

Go 표준 라이브러리에서 자주 쓰는 것들 — io, fmt, strings, time, sort, encoding/json까지 한 번에 훑어봅니다.

고 중급 #6 테스팅 — testing 패키지와 table-driven
6 분 소요

고 중급 #6 테스팅 — testing 패키지와 table-driven

Go 표준 testing 패키지로 단위 테스트와 벤치마크를 짜는 법, 그리고 Go 코드의 표준 패턴인 table-driven 테스트까지 정리합니다.

고 중급 #5 context.Context 깊이
6 분 소요

고 중급 #5 context.Context 깊이

Go의 표준 취소,타임아웃,요청 데이터 전달 도구를 다룹니다. context가 동시성 코드의 골격이 되는 이유를 정리합니다.

고 중급 #4 select와 타임아웃
5 분 소요

고 중급 #4 select와 타임아웃

여러 채널을 동시에 다루는 select 문, 그리고 타임아웃,취소,논블록 통신 같은 실전 패턴을 정리합니다.