상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Go에서 HTTP 응답을 처리하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Go 언어에서 HTTP 응답을 처리하는 방법은 매우 직관적이며, Go의 표준 라이브러리인 `net/http` 패키지를 통해 쉽게 구현할 수 있습니다. 이 패키지는 HTTP 서버와 클라이언트를 구축하는 데 필요한 다양한 기능을 제공합니다. 아래에서는 Go에서 HTTP 응답을 처리하는 방법에 대해 자세히 설명하겠습니다. 1. HTTP 서버 설정 Go에서 HTTP 서버를 설정하려면 `http.HandleFunc` 함수를 사용하여 특정 경로에 대한 요청을 처리할 <a href='https://sangseek.com/sangseeks/핸들/ko'>핸들</a>러 함수를 등록합니다. 이 핸들러 함수는 `http.ResponseWriter`와 `*http.Request`를 매개변수로 받습니다. ```go package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:]) } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } ``` 위의 예제에서 `handler` 함수는 클라이언트의 요청에 대해 응답을 생성합니다. `http.ListenAndServe` 함수는 지정된 포트에서 HTTP 서버를 시작합니다. 2. HTTP 응답 작성 `http.ResponseWriter` 인터페이스는 HTTP 응답을 작성하는 데 사용됩니다. 이 인터페이스는 다양한 메서드를 제공하여 응답의 상태 코드, 헤더 및 본문을 설정할 수 있습니다. 2.1 상태 코드 설정 응답의 상태 코드는 `WriteHeader` 메서드를 사용하여 설정할 수 있습니다. 예를 들어, 404 Not Found 상태 코드를 설정하려면 다음과 같이 합니다. ```go func notFoundHandler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotFound) fmt.Fprint(w, "404 - Not Found") } ``` 2.2 헤더 설정 응답 헤더는 `Header` 메서드를 사용하여 설정할 수 있습니다. 예를 들어, `Content-Type` 헤더를 설정하려면 다음과 같이 합니다. ```go func jsonHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusOK) fmt.Fprint(w, `{"message": "Hello, World!"}`) } ``` 2.3 본문 작성 응답 본문은 `Write` 메서드를 사용하여 작성할 수 있습니다. 이 메서드는 바이트 슬라이스를 인수로 받아 응답 본문에 <a href='https://sangseek.com/sangseeks/데이터/ko'>데이터</a>를 씁니다. ```go func helloHandler(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, World!")) } ``` 3. JSON 응답 처리 Go에서는 JSON 응답을 쉽게 처리할 수 있습니다. `encoding/json` 패키지를 사용하여 Go 구조체를 JSON으로 변환하고, 이를 HTTP 응답으로 보낼 수 있습니다. ```go import ( "encoding/json" ) type Response struct { Message string `json:"message"` } func jsonResponseHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") response := Response{Message: "Hello, JSON!"} json.NewEncoder(w).Encode(response) } ``` 4. 에러 처리 HTTP 응답을 처리할 때 에러를 적절히 처리하는 것이 중요합니다. Go에서는 에러를 반환하고 이를 클라이언트에게 적절히 전달하는 방법이 있습니다. ```go func errorHandler(w http.ResponseWriter, r *http.Request) { err := someFunctionThatMightFail() if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } // 정상적인 응답 처리 } ``` 5. 미들웨어 사용 Go에서는 미들웨어를 사용하여 요청과 응답을 가로채고 추가적인 처리를 할 수 있습니다. 미들웨어는 HTTP 핸들러를 인수로 받아 새로운 핸들러를 반환하는 함수입니다. ```go func loggingMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Printf("Request: %s %s\n", r.Method, r.URL) next.ServeHTTP(w, r) }) } func main() { mux := http.New<a href='https://sangseek.com/sangseeks/ServeMux/ko'>ServeMux</a>() mux.HandleFunc("/", handler) http.ListenAndServe(":8080", loggingMiddleware(mux)) } ``` 결론 Go에서 HTTP 응답을 처리하는 방법은 간단하고 유연합니다. `net/http` 패키지를 사용하여 서버를 설정하고, 응답의 상태 코드, 헤더 및 본문을 쉽게 작성할 수 있습니다. JSON 응답 처리, 에러 처리 및 미들웨어 사용을 통해 더욱 강력한 웹 애플리케이션을 구축할 수 있습니다. Go의 이러한 기능들은 <a href='https://sangseek.com/sangseeks/웹 개발/ko'>웹 개발</a>을 보다 효율적이고 직관적으로 만들어 줍니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기