Go에서 컨텍스트 패키지는 요청 범위 값, 취소 신호 및 기한을 관리하는 데 도움이 됩니다.
컨텍스트를 시작하는 두 가지 일반적인 방법은 context.TODO() 및 context.Background()입니다.
비슷하게 동작하지만 용도는 다릅니다.
context.Background()는 특별한 처리(예: 취소 또는 기한)가 필요하지 않은 경우 기본값입니다.
이는 main, init에서 또는 더 구체적인 컨텍스트가 필요하지 않은 작업을 초기화할 때 자주 사용됩니다.
func main() { ctx := context.Background() server := http.Server{Addr: ":8080", BaseContext: func(net.Listener) context.Context { return ctx }} log.Fatal(server.ListenAndServe()) }
이 예에서 context.Background()는 HTTP 서버에 대한 기본 컨텍스트를 설정하는 데 사용됩니다.
context.TODO()는 자리 표시자 컨텍스트입니다. 어떤 컨텍스트를 제공해야 할지 확신이 없거나 나중에 리팩토링할 계획이 있을 때 사용하세요.
func processOrder() { ctx := context.TODO() // Placeholder, decision on context pending err := db.SaveOrder(ctx, orderData) if err != nil { log.Println("Failed to save order:", err) } }
여기서 context.TODO()는 보다 구체적인 컨텍스트가 정의될 때까지 데이터베이스 작업에 일시적으로 사용됩니다.
두 함수 모두 빈 컨텍스트를 반환하지만 서로 다른 의도를 표현합니다.
context.Background()를 사용해야 하는 경우:
context.TODO()를 사용해야 하는 경우:
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3