[go] 시그널 처리 함수

시그널을 처리하기 위해서는 우선 시그널을 수신할 채널을 만들고, 해당 채널에 받은 시그널에 대한 처리를 정의해야 한다. 아래는 시그널을 처리하는 예제 코드이다.

package main

import (
	"fmt"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	sigChan := make(chan os.Signal, 1)
	signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)

	// 시그널을 수신하여 처리
	sig := <-sigChan
	fmt.Println("수신한 시그널:", sig)
}

위 코드에서는 우선 os/signal 패키지를 임포트하여 사용하고, 시그널을 받을 채널을 만들었다. 그리고 signal.Notify 함수를 사용하여 받을 시그널을 등록한다. 이후 채널을 통해 시그널을 수신하여 처리하도록 하였다.

시그널 처리는 graceful shutdown(우아한 종료)이나 강제 종료 등 프로그램의 안정성을 보장하기 위해 중요한 요소이므로, 필요에 따라 적절한 시그널 처리 로직을 정의하여 사용하는 것이 좋다.

참고 자료: