본문 바로가기
개발/개발공부

Golang Gin Framework 시작 / golang, go, 고랭, 고, 언어, 진, 프레임워크

by 치킨개발자 2023. 2. 3.
728x90

Golang에 대해 공부를 좀 해야하는데, 시작하기에 Gin Framework를 통해 서버를 만드는게 좋을 것 같아서 Gin으로 찾아봤다.

Golang Gin 캐릭터, Golang캐릭터는 귀엽다 ㅋ

Golang Gin Framework Init


% mkdir golang-gin-study
% cd golang-gin-study
% go mod init github.com/dev-chicken/study-golang/gin/golang-gin-study
go: creating new go.mod: module github.com/dev-chicken/study-golang/gin/golang-gin-study
% go get -u github.com/gin-gonic/gin
go: downloading github.com/gin-gonic/gin v1.8.2
go: downloading github.com/mattn/go-isatty v0.0.16
...

이런식으로 일단 golang-gin-study 디렉토리 생성을 하고,

Gin Framework를 사용할 것이기 때문에 go get으로 해당 framework를 다운로드 받는다.

 

편한 편집기를 통해 main.go를 생성하면 되는데,

나는 일단 귀찮으니까 vim을 사용해서..

main.go를 만들었다.

package main

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

func Router() *gin.Engine {
  r := gin.Default()
  r.GET("/ping", func(c *gin.Context) {
    c.String(200, "pong")
  })
  return r
}

func main() {
  r := Router()
  r.Run(":8080")
}

/ping router를 만들고 해당 url로 접근시 pong을 return하는 간단한 예시이다.

 

Golang Gin Framework Run


go run main.go로 실행을 해보면 localhost:8080으로 서버가 열리고 localhost:8080/ping으로 접속까지 하면 아래처럼 나온다.

% go run main.go
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /ping                     --> main.setupRouter.func1 (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8080
[GIN] 2023/02/03 - 15:38:28 | 200 |      14.417µs |             ::1 | GET      "/ping"
[GIN] 2023/02/03 - 15:38:28 | 404 |         709ns |             ::1 | GET      "/favicon.ico"

아주 간단하게 서버 생성 완료했는데, Go만의 특징인 go routine, channel등을 deep하게 테스트하면서 공부해볼 예정이다.

반응형

댓글