Context 패키지 (실전)
기능 복기
TODO 컨텍스트의 경우에 특이 케이스이므로 여기에 포함시키지 않겠습니다.
컨텍스트 생성
package main
import "context"
func main() {
ctx := context.Background()
}context.Background() 를 통해 새로운 컨텍스트를 생성할 수 있습니다.
반드시 이 컨텍스트를 생성할 때는, 모든 작업의 최상단에서 생성해야 합니다.
취소 가능한 컨텍스트 생성
context.WithCancel()
package main
import "context"
func main() {
ctx := context.Background()
ctx, cancel := context.WithCancel(ctx)
defer cancel()
}context.WithCancel() 을 통해 취소 가능한 컨텍스트를 생성할 수 있습니다.
이 함수는 새로운 컨텍스트와 취소 함수를 반환합니다.
취소 함수를 통해 현재 컨텍스트를 포함한 하위 컨텍스트들에게 취소 시그널을 줄 수 있습니다.
시그널은 ctx.Done() 메서드에서 반환된 <-chan struct{}에서 받을 수 있습니다.