반응형
2022.03.01 - [코딩 아카이브/Golang] - 맨땅에 헤딩하는 Go 백엔드 1
여기에서 이어지는 글이다.
// json 파싱해서 다루기
package main
import (
"encoding/json"
"fmt"
"net/http"
)
type ReqInfo struct {
UserID string
PassWD int
}
var IDPW_mapper map[string]int
func main() {
// localhost:port/
http.HandleFunc("/", func(wr http.ResponseWriter, r *http.Request) {
wr.Write([]byte("This is main page."))
})
// localhost:port/json
http.HandleFunc("/json", func(wr http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodPost {
var user_info ReqInfo
IDPW_mapper = make(map[string]int)
json.NewDecoder(r.Body).Decode(&user_info)
fmt.Println(user_info)
IDPW_mapper[user_info.UserID] = user_info.PassWD
fmt.Println(IDPW_mapper)
json.NewEncoder(wr).Encode(IDPW_mapper)
}
})
http.ListenAndServe(":8880", nil)
}
이전 글의 코드를 변형했다.
우선은 json으로 부터 얻어진 key와 value를 저장할 수 있는 map을 만들었다.
Go의 map은 파이썬의 dict 처럼 해싱된 테이블을 말한다.
따라서 map을 통해서 만든 해시 테이블을 다시 json으로 만드는 것도 가능하다.
이렇게 ID와 PW를 이용한 로그인 서버를 만든다고 하자.
최초 가입이라고 생각하면 이 정보를 받아서 테이블에 가지고 있어야 할 것이다.
코드를 동작해 보면 IDPW_mapper에 넣어진 자료들이 잘 파싱되어 json으로 보내진 것을 확인할 수 있다.
이렇게 데이터를 조작해서 담은 결과도
정상적으로 잘 담아진다.
이제 웬만한 동작들은 수행할 수 있는 준비가 되었다.
반응형
'코딩 아카이브 > Golang' 카테고리의 다른 글
TDD와 cleancode로 만들면서 배우면서 Golang backend -4 (0) | 2022.04.20 |
---|---|
TDD와 cleancode로 만들면서 배우면서 Golang backend -3 (0) | 2022.04.15 |
TDD와 cleancode로 만들면서 배우면서 Golang backend -2 (0) | 2022.04.11 |
TDD와 cleancode로 만들면서 배우면서 Golang backend -1 (0) | 2022.04.10 |
맨땅에 헤딩하는 Go 백엔드 1 (0) | 2022.03.01 |
댓글