본문 바로가기

좋아하는 것_매직IT/7.gin

gin Router 의 차이점 깔끔하게 정리한다면? (Default 와 New)

반응형

gin Router 의 차이점은? (Default 와 New)

gin.Default()  및 gin.New()  함수는 Gin 엔진의 라우터를 생성하는 데 사용됩니다. 

우선 샘플코드는 아래와 같습니다.

두 예제 모두 "/hello" 엔드포인트로 들어오는 GET 요청에 대해 "Hello, world!" 메시지를 JSON 형식으로 반환하는 간단한 Gin 애플리케이션을 보여줍니다. 
하나는 gin.Default()를 사용하여 Gin 엔진을 생성하고, 다른 하나는 gin.New()를 사용합니다.

gin.Default()

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	// gin.Default()를 사용하여 Gin 엔진을 생성합니다.
	r := gin.Default()

	// 라우터 설정
	r.GET("/hello", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{"message": "Hello, world!"})
	})

	// 서버 실행
	if err := r.Run(":8080"); err != nil {
		panic(err)
	}
}

gin.New()

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	// gin.New()를 사용하여 Gin 엔진을 생성합니다.
	r := gin.New()

	// 라우터 설정
	r.GET("/hello", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{"message": "Hello, world!"})
	})

	// 서버 실행
	if err := r.Run(":8080"); err != nil {
		panic(err)
	}
}

 


이 두 가지 함수 간의 주요 차이점은 다음과 같습니다:


1.루트 핸들러 설정 차이

gin.Default() 함수를 사용하여 생성된 Gin 엔진은 기본적으로 루트 핸들러에 Logger 및 Recovery 미들웨어를 설정합니다. 이는 개발 및 테스트 목적으로 유용하며, 요청 및 오류에 대한 로그를 표준 출력으로 보낼 수 있습니다.

gin.New() 함수를 사용하여 생성된 Gin 엔진은 루트 핸들러에 어떤 기본 미들웨어도 설정하지 않습니다. 
이는 사용자가 직접 미들웨어를 추가하고 관리하려는 경우에 유용합니다.

728x90


2.기본 미들웨어 차이

gin.Default() 함수를 사용하여 생성된 Gin 엔진은 Logger 및 Recovery 미들웨어를 자동으로 추가합니다.
gin.New() 함수를 사용하여 생성된 Gin 엔진은 어떤 기본 미들웨어도 추가하지 않습니다.

일반적으로 개발 및 테스트를 위한 목적으로는 gin.Default()를 사용하는 것이 편리합니다. 

그러나 프로덕션 환경에서는 gin.New()를 사용하여 라우터를 생성하고 필요한 미들웨어를 직접 추가하는 것이 좋습니다. 
이렇게 하면 불필요한 미들웨어를 포함하지 않고 더 가벼운 애플리케이션을 유지할 수 있습니다.

오늘의 티스토리는 여기까지고요.
항상 믿고 봐주셔서 감사합니다.

728x90

 

728x90
300x250