[go] 에러 처리를 위한 HTTP 핸들러 구현 방법
Go 언어로 웹 애플리케이션을 개발할 때, HTTP 핸들러에서 발생하는 에러를 적절하게 처리하는 것은 중요합니다. 이 글에서는 Go 언어에서 HTTP 핸들러에서의 에러 처리 방법에 대해 알아보겠습니다.
1. 패키지 설치
에러 처리를 위해 다음과 같은 패키지를 import 해야합니다.
import (
"net/http"
"log"
)
2. 기본 에러 핸들러
Go 언어에서는 http.Error
함수를 이용하여 기본적인 에러 처리를 할 수 있습니다. 아래는 404 Not Found 에러를 처리하는 예제입니다.
func notFoundHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "404 Not Found", http.StatusNotFound)
}
3. 커스텀 에러 핸들러
커스텀 에러 핸들러를 구현하여 좀 더 세밀한 에러 처리를 할 수 있습니다. 아래는 커스텀 에러 핸들러를 구현한 예제입니다.
func errorHandler(w http.ResponseWriter, r *http.Request) {
err := // 에러 발생 로직
if err != nil {
http.Error(w, "Something went wrong", http.StatusInternalServerError)
log.Println("Error:", err)
}
}
4. 고급 에러 처리 미들웨어
고급 에러 처리를 위해 미들웨어를 사용할 수도 있습니다. 아래는 http.Handler
를 래핑하여 에러를 처리하는 고급 에러 처리 미들웨어의 예제입니다.
func advancedErrorHandler(h http.Handler) http.Handler {
fn := func(w http.ResponseWriter, r *http.Request) {
defer func() {
if err := recover(); err != nil {
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
log.Println("Panic:", err)
}
}()
h.ServeHTTP(w, r)
}
return http.HandlerFunc(fn)
}
위의 방법들을 이용하여 HTTP 핸들러에서 발생하는 에러를 적절하게 처리할 수 있습니다. 각 상황에 맞게 적절한 에러 핸들러를 선택하여 사용하면 됩니다.
에러 처리에 대한 더 많은 내용은 여기에서 확인할 수 있습니다.