프로그래밍(Web)/Golang

    [바미] Go - File Upload 만들기.

    지난번에 이어서myapp/app_test.go 파일에 테스트 코드를 추가적으로 만들어줍니다. func TestFooHandler_WithoutJson(t *testing.T) { // 1 assert := assert.New(t) res := httptest.NewRecorder() req := httptest.NewRequest("GET", "/foo", nil) mux := NewHttpHandler() mux.ServeHTTP(res, req) assert.Equal(http.StatusOK, res.Code) } 먼저 실패하는 코드를 만들어 줍니다. 1 : GET으로 /foo에 호출하는데 input없이 진행합니다. 그러면 response가 올텐데 StatusOK가 나와야 한다고 하고, 실제 결과를..

    [바미] Go - test환경 만들기

    지난번에 이어서 myapp이라는 폴더를 만든 뒤, app.go파일을 만들어 줍니다. 패키지를 분리하는게 테스팅하기 편리하기 때문에 여기에 지난번에 main에 만들었던 코드들을 들어낼 것인데요. app.go package myapp import "net/http" type User struct { FirstName string `json:"first_name"` LastName string `json:"last_name"` Email string `json:"email"` CreatedAt time.Time `json:"created_at"` } func indexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello World") }..

    [바미] Go - 간단한 JSON Transfer 만들기.

    Web Handler에 이어서 main함수의 http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello Bar!") }) 부분 중 fooHandler처럼 func(w http.ResponseWriter, r *http.Request) 부분을 바깥으로 빼서 수정 해줍니다. func barHandeler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello Bar!") }) 이렇게 수정한 뒤 main함수에 이에 해당하는 코드를 수정해줍니다. http.HandleFunc("/bar", barHandler) 이렇게 각각 경로에 해당하는 Handl..

    [바미] Go - 간단한 Web Handler 만들기

    package main func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // 1 fmt.Fprint(w, "Hello World") // 2 }) http.ListenAndServe(":3000", nil) // 3 1 : http.HandleFunc으로 선언 하여 경로는 처음 경로인 "/"으로 해주고, 함수 타입을 w http.ResponseWriter, r *http.Request" 으로 넣어줍니다. 2 : 함수의 내용. 3 : port 번호 3000으로 지정 합니다. 여기서 중요한 건 http.HandleFunc, http.ListenAndServe인데 HandleFunc은 어떤 Handler를 등록하..