[go] 시간을 활용하여 특정 시간에 작업 실행하기

일정한 시간에 작업을 실행하고 싶다면 Go 언어의 time 패키지를 활용할 수 있습니다. 이 패키지를 사용하여 특정 시간에 작업을 실행하는 방법을 살펴보겠습니다.

타이머 만들기

특정 시간에 작업을 실행하기 위해 타이머를 만들어야 합니다. time.After 함수를 사용하여 특정 시간이 경과한 후에 작업을 실행할 수 있도록 타이머를 설정할 수 있습니다.

package main

import (
	"fmt"
	"time"
)

func main() {
	delay := 10 * time.Second
	timer := time.After(delay)
	<-timer
	fmt.Println("작업을 실행합니다.")
}

위 예제에서는 10초 후에 “작업을 실행합니다.”라고 출력하는 간단한 예제를 보여줍니다.

주기적인 작업 실행하기

일정한 주기로 작업을 반복적으로 실행하고 싶다면 time.Ticker를 사용할 수 있습니다. 아래 예제는 1초 간격으로 작업을 실행하는 방법을 보여줍니다.

package main

import (
	"fmt"
	"time"
)

func main() {
	ticker := time.NewTicker(1 * time.Second)
	done := make(chan bool)

	go func() {
		for {
			select {
			case <-done:
				return
			case <-ticker.C:
				fmt.Println("주기적인 작업을 실행합니다.")
			}
		}
	}()

	time.Sleep(5 * time.Second)
	ticker.Stop()
	done <- true
	fmt.Println("작업을 종료합니다.")
}

위 예제에서는 time.Ticker를 사용하여 1초 간격으로 “주기적인 작업을 실행합니다.”라고 출력하고, 5초 후에 작업을 종료하는 방법을 보여줍니다.

마무리

이렇게 Go 언어의 time 패키지를 사용하여 특정 시간에 작업을 실행하거나 주기적으로 작업을 실행할 수 있습니다.

더 자세한 내용은 Go 언어 공식 문서를 참고할 수 있습니다.