Gin은 Python의 Flask와 같은 web framework 이다.
Go를 공부하는 목적이 결국 서버 개발이니 Gin을 또 공부해야겠지.
그 첫번째로 Gin 앱을 Docker 이미지에 올려서 (비록 로컬이지만) HTTP 서버를 구현해보자.
Gin 으로 HTTP 서버 구현하기
예제가 잘 나와있어서 그대로 따라하면 로컬에서 돌아가는 간단한 HTTP 서버는 금방 만들 수가 있다.
- import "github.com/gin-gonic/gin"
- gin.Default()로 기본 router를 가져와서 원하는 method를 가져와서 설정
- router의 GET, POST, PUT, DELETE,...method를 사용하면 된다.
- func (group *RouterGroup) GET (relativePath string, handlers ...HandlerFunc) IRoutes {}
- "localhost:8080/crawler?url=news.naver.com 요청시에 응답하는 예제라 : router.GET("/crawler", getting)
- router.Run() 호출: port 설정 안하면 기본 8080으로 된다.
- 'go run~' 하면 서버 시작
browser에서 localhost:8080/crawler?url=news.naver.com 로 요청하면 정상적으로 list 가져오는것 확인~
Docker 에 올려서 서버 돌려보기
dev.to/zeedt/deploying-gin-go-web-framework-application-with-docker-55p0
코드는 Gin Framework 예제와 동일하다. 결국 이 코드를 Doker Image에 Copy해서 빌드해서 해당 실행파일을 실행하도록 하면 된다.
- 기본이되는 golang docker image를 docker hub에서 다운 받는다.
- Dockerfile 을 작성한다.
- FROM golang:alpine << base image 를 명시
- ENV 로 변수 설정
- WORKDIR /go/src/crawler-docker << container 가 동작할 기본 path를 설정 ($GOPATH
- COPY main.go . << 해당 WORKDIR 에 main.go copy
- RUN apk update && apk add --no-cache git << image에 git 설치
- RUN go get github.com/ryulitaro/crawler << module 가져오기
- RUN go build main.go << build
- EXPOSE &PORT container port설정
- ENTRYPOINT ["./main"] 실행할 go app 설정
- doker image 만들기 "docker build -t crawler-docker ."
- 완성된 image를 container 에 올려 실행하자 "docker run -d -p 3006:3004 crawler-docker"
- VSCode의 extensions 중 docker도 있어서 한눈에 이미지를 확인할 수 있다. container에 copy된 파일들과 go get으로 clone 된 모듈 파일들을 확인해볼수 있다.
browser에서 localhost:3006/crawler?url=news.naver.com 로 요청하면 정상적으로 list 가져오는것 확인~
간단하게 Go로 짠 코드를 Gin Web Framework를 이용해서 서버를 돌려보고 또, 이를 Docker Image로 만들어 Container에서 올려서 돌리는 것까지 확인해봤다. 역시 한번 해보니 대충 어떻게 동작하는지 이해가 된다. ^^
'자습' 카테고리의 다른 글
Electron + Bootstrap 초보의 간단 앱 만들기 (0) | 2021.01.09 |
---|---|
Electron Quick Start (0) | 2021.01.06 |
Go 코드를 AWS Lambda에서 실행해보기 (0) | 2020.12.31 |
Go 언어 초보의 Go modules 정리 노트 (0) | 2020.12.20 |
Go 언어 초보를 위한 Go Packages (0) | 2020.12.19 |