[go golang] Gin 소개 & 설치 (Introduction & Installation)


0. Gin 소개 & 선택한 이유

1. Gin Installation

2. Gin REST API Tutorial

 

0. Gin 소개 & 선택한 이유


0. Go Develop Roadmap in 2020

1) 관련 사이트 : https://github.com/Alikhll/golang-developer-roadmap

- 위 링크를 가보시면 Golang Developer라면 익혀야될 Step에 대해서 나열되어 있다.

- 'Web Frameworks + Routers', 'ORMs', 'Caching', 'Logging', 'Testing', 'RPC' 등의 큰 주제가 있습니다.

- 아직 Golang을 접한지 얼마 안되어 우선 Web Frameworks 중 Gin을 기반으로 Toy Project를 수행하여 익숙해지려 합니다

 

1. Gin Web Framework를 선택한 이유?

1) 관련 포스팅 : medium.com/devtechtoday/top-7-golang-web-frameworks-in-2020-and-beyond-9ca2a89eb904

- 첫 번째로는 Github내 24K로 Stars 수가 가장 많습니다. 개발을 진행함에 있어서 가장 중요한 것은 많이 사용하는 활성화된 오픈소스냐라는 점입니다. 이는 개발자의 숙명인 구글링을 할 때 엄청난 힘이 되기 때문이죠!

 

 

- 두 번째로는 속도가 빠른 편에 속합니다. 거의 Aero를 제외하고는 가장 높은 속도를 자랑합니다.

 

 

 

1. Gin Installation (Gin 설치)


0. 관련 사이트

1) 관련 사이트 : github.com/gin-gonic/gin

- Gin Web Framework의 공식 Github 주소로 해당 Readme 파일에 참고할만한 많은 내용이 있으니 참고해주세요.

- 이번 포스팅의 경우도 위 내용을 바탕으로 직접 정리하였습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

1. 설치 

※ 사전에 Go lang, Visual Studio Code는 설치되어 있다라는 가정하에 진행하도록 하겠습니다.

 

0) /src 하위에 gin을 테스트하기 위해 디렉토리를 하나 파준 뒤 main.go를 생성해줍니다.

 

1) Gin package를 먼저 설치해줍니다.

$ go get -u github.com/gin-gonic/gin

 

 

 

2) main.go 에 예제 코드를 복붙해줍니다 

package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

 

3) main.go 파일을 실행(run) 해준뒤 웹 브라우저에 'localhost:8080/ping'으로 들어가 본 뒤 결과값을 확인하시고 아래와 같다라면 성공하신 겁니다!

$ go run main.go

 

 

4) 기타

# 패키지에 대한 의존성 관리를 위해 module 실행
$ go mod init

# 아래 명령어를 수행하면 go.mod, go.sum이 생긴거를 보실 수 있습니다.
$ go get -u github.com/gin-gonic/gin

# makefile 생성 후 아래와 같이 작성해주면 됩니다.
dev :
	go run main.go
$ make dev (== go run main.go를 실행한 것과 같은 결과값이 나옵니다.)

 

2. Gin REST API Tutorial


0. 작성 예시 코드

1) 아래 코드를 보시면 기본적인 GET, POST Method와 Querystring, paramter값을 보냈을 때 받는 방법에 대해서 아실 수 있을 겁니다

package main

import (
	"fmt"
	"io/ioutil"
	"github.com/gin-gonic/gin"
)

// HomePage : GET, "/"
func HomePage(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "Hello World!",
	})
}

// PostHomePage : GET, "/"
func PostHomePage(c *gin.Context) {
	body := c.Request.Body
	value, err := ioutil.ReadAll(body)
	if err != nil {
		fmt.Println(err.Error())
	}

	c.JSON(200, gin.H{
		"message": string(value),
	})
}

// QueryStrings : GET, "/query"
func QueryStrings(c *gin.Context) {
	name := c.Query("name")
	age := c.Query("age")

	c.JSON(200, gin.H{
		"name": name,
		"age" : age,
	})
}

// PathParameters : GET, "/path"
func PathParameters(c *gin.Context) {
	name := c.Param("name")
	age := c.Param("age")

	c.JSON(200, gin.H{
		"name": name,
		"age" : age,
	})
}

func main() {
	r := gin.Default()
	r.GET("/", HomePage)
	r.POST("/", PostHomePage)
	r.GET("/query", QueryStrings) // /query?name=brenden&age=20
	r.GET("/path/:name/:age", PathParameters) // /path/brenden/20
	r.Run()
}

 

[출처] https://brenden.tistory.com/110

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
24 [rust] Rust 언어 튜토리얼 졸리운_곰 2024.01.16 2
23 [rust] Learn X in Y minutes : Y분 안에 X를 배우세요 졸리운_곰 2023.11.27 3
22 [Kotlin]함수형 프로그래밍 초간단 이해하기 file 졸리운_곰 2023.09.04 1
21 [Kotlin] Eclipse를 이용한 Kotlin 작업환경 구성 file 졸리운_곰 2023.09.02 1
20 [kotlin] 이클립스에 코틀린 세팅하기 file 졸리운_곰 2023.09.02 1
19 [kotlin] [Kotlin] 기본 - Null 처리 '? / ?. / !! / ?: / lateinit / lazy' file 졸리운_곰 2023.09.02 2
18 [flutter/dart] [flutter] flutter_localizations 다국어 적용하는 방법 졸리운_곰 2023.07.02 5
17 [flutter/dart] 플러터(Flutter) 다국어 대응하기 (Localization) file 졸리운_곰 2023.07.02 3
16 [flutter/dart] mac os x : fvm(Flutter Version Management) 설치 및 사용법 file 졸리운_곰 2023.07.01 8
15 [rust] Learn Rust in under 10 mins 졸리운_곰 2023.06.28 68
14 [flutter/dart] flutter - fvm 적용하기 (Futter Version Management) file 졸리운_곰 2023.06.24 2
13 [flutter/dart] Flutter fvm(Flutter Version Management) 사용하기 file 졸리운_곰 2023.06.23 62
12 [kotlin java] [코틀린/Kotlin] 기초 문법 정리 졸리운_곰 2023.06.08 3
11 [kotlin java] 이펙티브 코틀린 간단 정리 (Effective Kotlin) 졸리운_곰 2023.06.08 7
10 [kotlin java] 코틀린 기본 문법 요약 정리 강좌 - [kotlin/cheat sheet] file 졸리운_곰 2023.06.08 5
9 [rust] Rust 요약(메모리 관리) 졸리운_곰 2023.05.10 11
8 [rust] Rust 요약(기초) 졸리운_곰 2023.05.10 1
7 [rust programming] Rust 언어 튜토리얼 졸리운_곰 2023.05.04 3
6 [rust programming] Rust WebAssembly Front End Frameworks 프런트 엔드 프레임워크 졸리운_곰 2023.05.02 1
» [go golang] Gin 소개 & 설치 (Introduction & Installation) file 졸리운_곰 2023.01.03 4
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED