Skip to main content

Echo에서 HTTP 응답 반환

1. 개요

Dabory의 Go 언어에서는  Echo 프레임워크로 프론트엔드 단에 응답데이터로 Json 데이터를 넘겨줘야 하기때문에                                 c.String()c.JSONBlob()을 사용하여 HTTP 응답을 Json으로 처리하는 방법을 설명한다.


2. c.String(statusCode int, response string) 사용법

✅ 개요

  • c.String()단순 문자열 응답을 반환하는 함수이다.
  • statusCode는 HTTP 상태 코드이며, response는 프론트엔드로 보낼 응답 본문이다.

✅ 사용 예제

return c.String(607, "")

✅ 동작 방식

  • 607이라는 커스텀 HTTP 상태 코드를 응답으로 보낸다.
  • 응답 본문은 "" (빈 문자열)이다.
  • 프론트엔드에서 response.status 값이 607인지 확인 가능.

3. c.JSONBlob(statusCode int, jsonData []byte) 사용법

✅ 개요

  • c.JSONBlob()JSON 형식의 응답을 반환하는 함수이다.
  • statusCode는 HTTP 상태 코드이며, jsonData는 이미 변환된 JSON 데이터([]byte)이다.

✅ 사용 예제

ret, err := json.Marshal(vRet) if err != nil { return c.String(500, "Failed to encode JSON: "+err.Error()) } return c.JSONBlob(http.StatusOK, ret)

✅ 동작 방식

  1. json.Marshal(vRet)을 사용하여 ZbaksanSorderEyetestRes 구조체를 JSON 데이터로 변환한다.
  2. 변환된 JSON을 c.JSONBlob(http.StatusOK, ret)을 통해 프론트엔드로 전송한다.
  3. 프론트엔드는 response.json() 또는 response.data로 JSON을 받을 수 있다.

4. c.String() vs c.JSONBlob() 비교

기능 c.String() c.JSONBlob()
응답 형식 문자열(String) JSON (바이트 배열)
사용 목적 단순 메시지, 상태 코드 반환 JSON 데이터 응답
예제 코드 c.String(607, "") c.JSONBlob(http.StatusOK, ret)
프론트에서 처리 response.text() response.json() 또는 response.data

5. 요약

c.String(607, "")

  • HTTP 상태 코드 607을 반환하여 프론트엔드에서 감지 가능.
  • 프론트엔드에서 response.status 값으로 확인 후 특정 로직 실행.

c.JSONBlob(http.StatusOK, ret)

  • JSON 데이터를 반환할 때 사용.
  • json.Marshal()을 통해 JSON 변환 후 프론트엔드에서 response.json()으로 처리.