일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- go
- consumer group
- broker
- create topic
- tls disable
- kafka-connect
- Elk
- Kafka Connect
- Kafka
- minikube
- go test
- Kubernetes
- eck
- Helm
- docker
- Message
- Produce
- Consumer
- gortsplib
- ElasticSearch
- loadbalance
- gin
- Golang
- kibana
- kafka broker
- http
- 쿠버네티스
- topic
- gorm
- k8s
- Today
- Total
목록Home Cam Service 개발하기 (5)
개발자의 개발괴발
각각의 함수의 unit test도 필요하지만 http handler에도 test가 필요하다.각각의 함수가 잘 동작한다는 보장이 있어도 handler에서 에러가 날 수도 있기 때문이다.Handler test하기handler를 테스트 하는것도 handler 함수를 호출해주는 것처럼 테스트를 할 수 있다.func GetAllUsers(c *gin.Context) { // something}그러나 handler는 parameter로 *gin.Context를 받아야한다.어떻게해야할지 몰라 당황스러울 수도 있지만 다행히도 test context를 만들어서 집어넣어줄 수 있다.func GetTestGinContext() (*gin.Context, *httptest.ResponseRecorder) { w := http..
앞에서 DB에 insert, delete하는 테스트코드를 작성해보았다.정상적으로 잘 작동하는걸 확인했으니 실제로 curl로 호출해서 잘 동작되는지 확인해보자. controller 설정아래와 같이 code를 수정하겠다.func main() { db.Init() // Create a new Gin router router := gin.Default() // Define a simple GET endpoint routerUser := router.Group("/users") routerUser.GET("", controller.GetUsers) routerUser.POST("", controller.CreateUser) routerUser.DELETE("/:userId", controller.DeleteUse..

backend 개발에 빼놓을 수 없는것 하나만 뽑으라면 db일 것이다.backend만으로 client의 요청에 응답을 할 수 있지만 영구적으로 데이터를 저장하는데는 한계가 있다.물론 메모리에 저장할 순 있지만 backend 서버가 재기동될 경우 데이터는 모두 날아가버린다.따라서 영구적으로 데이터를 저장할 수 있는 기능을 제공하는 것이 db이다.단순히 영구 데이터 저장만이 목적이 아니라 db를 이용하면 단순히 파일로 저장하는 것보다 많은 이점이 있다.그래서 이전 글에 이어 db를 추가해보도록 하겠다.sqlite3db 종류에는 여러가지가 있고 상황에 따라 적절한 선택을 하면 된다.여기서는 무거운 backend 서비스를 만드는 것도 아니 때문에 sqlite3를 사용하려고 한다.가볍다고해서 다른 db에 뒤쳐지는..
go에 많은 web framework가 있지만 나는 gin을 선택했다.장점, 단점을 읽어봤지만 나에게 중요한 것은 쉽고 빠르게 만들 수 있는 것이기 때문이다.gin 시작하기gin 시작하기는 매우 쉽다.vscode에서 새로운 폴더를 만들고go mod init home-cam위 명령어로 프로젝트를 초기화 했다.go get -u github.com/gin-gonic/gin위 명령어로 gin package를 설치하고 아래와 같이 main.go를 작성해보자.package mainimport ( "fmt" "net/http" "github.com/gin-gonic/gin")func main() { // Create a new Gin router router := gin.Default() // Define a sim..