Go언어에서 가장 유명한 프레임워크 Gin 과 Fiber 가 있습니다. 이 중에서 훨씬 더 유명한 Gin을 먼저 알아보겠습니다. Gin의 홈페이지는 https://gin-gonic.com/ 입니다.
C:\work\gapi 폴더를 만들고, 그 안에서 go mod init gapi 를 실행합니다.
Gin 프레임워크 모듈을 설치해줍니다. go get -u github.com/gin-gonic/gin 을 실행합니다.
그리고, main.go 를 작성해봅시다.
package main
import "github.com/gin-gonic/gin"
func main() {
app := gin.Default()
app.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"hello": "world",
})
})
app.Run("0.0.0.0:8000")
}
go run main.go 로 프로그램을 실행한다.
웹브라우저에서 http://localhost:8000 을 입력하면 다음과 같이 나오면 정상이다.
이번에는 포트정보를 .env 파일에 넣고, 불러와서 사용하도록 해보자. 먼저, .env 파일을 생성해서 아래와 같이 추가해준다.
PORT=8000
godotenv 모듈을 설치한다. go get -u github.com/joho/godotenv 를 실행한다.
main.go 를 아래와 같이 수정해줍니다.
package main
import (
"log"
"os"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
)
func main() {
// .env 파일 로드
if err := godotenv.Load(); err != nil {
log.Fatalf("Error loading .env file: %v", err)
}
// 환경 변수에서 포트 가져오기
port := os.Getenv("PORT")
if port == "" {
log.Fatal("PORT is not set in the .env file")
}
app := gin.Default()
app.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"hello": "world",
})
})
app.Run("0.0.0.0:" + port)
}
또, go run main.go 를 실행하고, 웹브라우저에서 http://localhost:8000 을 호출해봅니다. hello world 가 잘 나왔으면 성공~!
여기에서 핸들러를 여러개 추가해보겠습니다. API가 늘어날수록 핸들러도 늘어나겠지요.
package main
import (
"log"
"os"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
)
func main() {
// .env 파일 로드
if err := godotenv.Load(); err != nil {
log.Fatalf("Error loading .env file: %v", err)
}
// 환경 변수에서 포트 가져오기
port := os.Getenv("PORT")
if port == "" {
log.Fatal("PORT is not set in the .env file")
}
app := gin.Default()
app.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"hello": "world",
})
})
app.GET("/svc1/req1", func(c *gin.Context) {
c.JSON(200, gin.H{
"SVC1": "REQ1",
})
})
app.GET("/svc1/req2", func(c *gin.Context) {
c.JSON(200, gin.H{
"SVC1": "REQ2",
})
})
app.GET("/svc2/req1", func(c *gin.Context) {
c.JSON(200, gin.H{
"SVC2": "REQ1",
})
})
app.GET("/svc2/req2", func(c *gin.Context) {
c.JSON(200, gin.H{
"SVC2": "REQ2",
})
})
app.Run("0.0.0.0:" + port)
}
그리고, 다시 go run main.go 를 실행하고, 웹브라우저에서 http://localhost:8000/svc1/req1 을 호출해봅니다. 역시 잘 될 것입니다.
그런데, main.go 파일이 너무 복잡해집니다. 다음 글에서는 이 것을 좀 간결하게 만들어보도록 하겠습니다.
'프로그래밍 > Go' 카테고리의 다른 글
Gin framework (2) : 컨트롤러 확장하기 (0) | 2025.01.01 |
---|---|
Go언어 설치, 첫 프로그램 작성하기 (0) | 2024.08.23 |
Fiber v2.x Tutorial (0) | 2021.10.01 |
비밀번호 단방향암호화(SHA256) 하기 : Fiber v2.x (0) | 2021.10.01 |
로그인/로그아웃 처리하기 : Fiber v2.x (0) | 2021.10.01 |