# 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`는 프론트엔드로 보낼 응답 본문이다. ### ✅ 사용 예제
var c echo.Context
`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()`으로 처리.