개요
이번 블로그 포스트에서는 Golang을 사용하여 웹 서버를 개발하는 방법에 대해서 알아보려고 합니다. Golang에는 많은 웹 프레임워크가 있습니다만, 그 중에서 가장 유명한 웹 프레임워크인 Gin
웹 프레임워크를 사용하는 방법에 대해서 알아봅시다.
- Gin web framework: https://gin-gonic.com/
이 블로그 포스트에서 소개하는 소스 코드는 아래의 링크에서 확인하실 수 있습니다.
블로그 시리즈
이 블로그 포스트는 Golang에서 Gin 웹 프레임워크를 사용하는 방법에 관해 시리즈로 제작되었습니다. Gin 웹 프레임워크의 다른 사용법을 알고 싶으시다면, 다음 링크를 참고하시기 바랍니다.
- [Golang] Gin 시작하기
Go 프로젝트 생성
Gin
웹 프레임워크의 사용 방법을 확인하기 위해, 다음 명령어를 사용하여 Go 모듈을 통해 프로젝트를 준비합니다.
mkdir start
cd start
go mod init github.com/dev-yakuza/study-golang/gin/start
그럼 다음과 같이 ./go.mod
파일이 생성되는 것을 확인할 수 있습니다.
module github.com/dev-yakuza/study-golang/gin/start
go 1.17
Gin 웹 프레임워크 설치
Gin
웹 프레임워크를 사용하기 위해, 다음 명령어를 사용하여 Gin
웹 프레임워크를 설치합니다.
go get -u github.com/gin-gonic/gin
그럼 다음과 같이 ./go.mod
파일에 Gin
웹 프레임워크와 관련된 내용이 추가된 것을 확인할 수 있습니다.
module github.com/dev-yakuza/study-golang/gin/start
go 1.17
require (
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/gin-gonic/gin v1.7.7 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-playground/validator/v10 v10.10.1 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/leodido/go-urn v1.2.1 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/ugorji/go/codec v1.2.7 // indirect
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect
golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12 // indirect
golang.org/x/text v0.3.7 // indirect
google.golang.org/protobuf v1.28.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)
또한, ./go.sum
파일이 생성된 것을 확인할 수 있습니다.
Gin 웹 프레임워크 사용
그럼 Gin
웹 프레임워크를 사용하여 웹 서버를 기동해 보도록 하겠습니다. ./main.go
파일을 생성하고 다음과 같이 수정합니다.
package main
import "github.com/gin-gonic/gin"
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong")
})
return r
}
func main() {
r := setupRouter()
r.Run(":8080")
}
코드를 조금 자세히 살펴봅시다.
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
return r
}
Gin
웹 프레임워크가 제공하는 gin.Default()
를 사용하여 웹 서버를 생성하고 특정 URL(/ping
)에 원하는 동작을 하는 함수를 정의할 수 있습니다. 이번 예제에서는 간단하게 pong
이라는 문자를 StatusOK
(200) 상태와 함께 반환하도록 하였습니다.
func main() {
r := setupRouter()
r.Run(":8080")
}
이렇게 특정 URL과 그에 필요한 동작을 정의한 후, 생성된 웹 서버를 run
함수를 통해 8080
포트로 실행하도록 하였습니다.
이제 다음 명령어를 사용하여 웹 서버를 실행해 봅니다.
go run ./main.go
그리고 웹 브라우저를 열고 http://localhost:8080/ping
URL을 입력하면 다음과 같은 결과를 확인할 수 있습니다.
pong
완료
이것으로 Golang에서 많이 사용되는 Gin
웹 프레임워크를 사용하여 웹 서버를 실행 시키는 방법에 대해서 알아보았습니다. 앞으로는 이 Gin 웹 프레임워크를 사용하는 방법에 대한 블로그 포스트를 작성할 예정입니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.