Go 클로저(Closure) 완벽 정리 — 개념부터 트랜잭션 패턴까지
Go 클로저(Closure) 완벽 정리 — 개념부터 트랜잭션 패턴까지Go로 백엔드를 짜다 보면 func(tx *gorm.DB) error { ... } 같은 코드를 자주 마주치게 됩니다. 이게 바로 클로저(Closure)입니다. 이 글에서는 Go 클로저가 정확히 무엇인지, 어떤 상황에서 쓰는지, 장단점과 주의할 점까지 실제 코드 예제로 정리합니다.1. 클로저(Closure)란 무엇인가?클로저는 자신을 둘러싼 스코프(주변 환경)의 변수를 "기억"해서, 그 함수가 밖으로 전달되거나 나중에 실행되어도 해당 변수에 계속 접근하고 값을 바꿀 수 있는 함수를 말합니다.말로만 보면 어려우니 코드로 보겠습니다.func makeCounter() func() int { count := 0 return func(..