모든 포스트

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Go 중급 #7 표준 라이브러리 둘러보기
5 분 소요

Go 중급 #7 표준 라이브러리 둘러보기

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

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

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

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

Go 중급 #5 context.Context 심화
6 분 소요

Go 중급 #5 context.Context 심화

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

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

Go 중급 #4 select와 타임아웃

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

Go 중급 #3 고루틴과 채널 입문
6 분 소요

Go 중급 #3 고루틴과 채널 입문

Go의 가장 큰 강점인 가벼운 동시성을 다룹니다. 고루틴 시작과 채널로 통신하기, 그리고 자주 만나는 함정들까지 정리합니다.

Go 중급 #2 에러 처리 패턴
6 분 소요

Go 중급 #2 에러 처리 패턴

에러 wrapping(%w), errors.Is와 errors.As, 커스텀 에러 타입, 그리고 panic이 어울리는 경우까지 정리합니다.

Go 중급 #1 인터페이스 — 암묵적 구현의 의미
6 분 소요

Go 중급 #1 인터페이스 — 암묵적 구현의 의미

Go 인터페이스의 가장 큰 특징인 암묵적 구현, 작은 인터페이스 가이드, 그리고 빈 인터페이스와 타입 단언/타입 switch까지 정리합니다.