본문 바로가기
코딩 아카이브/Golang

맨땅에 헤딩하는 Go 백엔드 2

by SteadyForDeep 2022. 3. 1.
반응형

2022.03.01 - [코딩 아카이브/Golang] - 맨땅에 헤딩하는 Go 백엔드 1

 

맨땅에 헤딩하는 Go 백엔드 1

https://woony-sik.tistory.com/12 Golang REST API 만들기 오늘은 Golang으로 간단한 REST API를 만드는 방법을 쓸까 한다. 바로 시작하자 우선은 Directory를 하나 만들고 시작 mkdir rest go module 등록 go mo..

davi06000.tistory.com

여기에서 이어지는 글이다.

 

// 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으로 보내진 것을 확인할 수 있다.

이렇게 데이터를 조작해서 담은 결과도

정상적으로 잘 담아진다.

 

이제 웬만한 동작들은 수행할 수 있는 준비가 되었다.

반응형

댓글