#프로그래밍 언어

189 편의 글

Go 실전 #4 DB 연동 — database/sql과 트랜잭션
5 분 소요

Go 실전 #4 DB 연동 — database/sql과 트랜잭션

database/sql 기본기, prepared statement, 트랜잭션, 커넥션 풀 설정을 다룹니다. 그리고 sqlc,sqlx,GORM 같은 위층 도구까지 정리합니다.

Go 실전 #3 JSON 입출력과 입력 검증
5 분 소요

Go 실전 #3 JSON 입출력과 입력 검증

encoding/json의 Marshal/Unmarshal, struct 태그, 디코딩 에러 처리, 그리고 안전한 입력 검증 패턴까지 정리합니다.

Go 실전 #2 라우팅 — Go 1.22+ ServeMux
4 분 소요

Go 실전 #2 라우팅 — Go 1.22+ ServeMux

Go 1.22+ 부터 들어온 표준 ServeMux의 메서드/패턴 매칭을 다룹니다. chi, gorilla/mux 같은 외부 라우터가 필요한 경우도 함께 정리합니다.

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

Go 실전 #1 첫 HTTP 서버

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

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

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

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

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

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

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

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까지 한 번에 훑어봅니다.