[go] time 패키지를 사용한 스케줄링 방법

Go 언어에서 시간 기능을 다루는 데 중요한 패키지 중 하나는 time 패키지입니다. time 패키지를 사용하면 스케줄된 작업을 처리하는 등 다양한 시간 기반 작업을 수행할 수 있습니다. 이 글에서는 time 패키지를 사용하여 Go 언어로 스케줄링하는 방법에 대해 알아보겠습니다.

시간 지연 (Time Delay)

Go 언어에서 시간 지연을 만드는 가장 간단한 방법은 time.Sleep 함수를 사용하는 것입니다. 해당 함수를 사용하면 프로그램 실행을 주어진 시간(초, 밀리초 등)만큼 멈출 수 있습니다.

예를 들어, 아래의 예제 코드는 3초 동안 프로그램을 멈춘 후 "Done" 메시지를 출력합니다.

package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println("Start")
	time.Sleep(3 * time.Second)
	fmt.Println("Done")
}

주기적 작업 (Periodic Jobs)

time 패키지를 사용하여 주기적으로 작업을 수행할 수도 있습니다. 이를 위해서는 time.Tick 함수를 사용합니다. 아래 예제는 1초 간격으로 현재 시간을 출력하는 코드입니다.

package main

import (
	"fmt"
	"time"
)

func main() {
	ticker := time.Tick(1 * time.Second)
	for range ticker {
		fmt.Println("Tick at", time.Now())
	}
}

시간 기반 이벤트 처리 (Time-based Event Handling)

때로는 특정 시간에 이벤트를 처리해야 하는 경우가 있습니다. time.After 함수를 사용하면 주어진 시간이 경과된 후에 이벤트를 처리할 수 있습니다.

아래 예제는 2초 뒤에 "Done" 메시지를 출력하는 코드입니다.

package main

import (
	"fmt"
	"time"
)

func main() {
	<-time.After(2 * time.Second)
	fmt.Println("Done")
}

요약

Go 언어의 time 패키지를 사용하면 다양한 시간 기반 작업을 처리할 수 있습니다. 시간 지연, 주기적 작업, 시간 기반 이벤트 처리 등을 위한 유용한 함수들이 time 패키지에 포함되어 있으므로, 이러한 기능들을 활용하여 프로그램을 보다 효과적으로 제어할 수 있습니다.

더 많은 정보는 공식 Go 언어 문서에서 확인할 수 있습니다.