| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- kibana
- broker
- gin
- Kubernetes
- topic
- gortsplib
- eck
- 쿠버네티스
- k8s
- loadbalance
- Produce
- Consumer
- gorm
- ElasticSearch
- create topic
- Golang
- kafka broker
- go test
- Message
- Elk
- tls disable
- consumer group
- http
- minikube
- Helm
- Kafka
- go
- Kafka Connect
- docker
- kafka-connect
- Today
- Total
목록전체 글 (43)
개발자의 개발괴발
I wanted to learn Kubernetes and get some hands-on experience, but my budget was limited.A full multi-node Kubernetes setup can easily mean running three or more machines, which is a bit much just for learning.That’s where minikube comes in. It lets you run Kubernetes locally for learning and quick tests.I have an M2 MacBook Air, so I decided to install minikube and give it a try.Before installi..
원래 여름에 사려고 했는데 미루고 미루고 미루다 이제 샀다!여름 즈음엔 가격이 49만원인가 55만원인가 했었는데 지금 사려고 하니깐 65만원까지 올라버렸다 ㅠ미리미리 살걸... 네이버에서 구매했고 있던 포인트 다 털고 삼성월렛 삼성카드 이벤트해서 6천원 추가 할인 받아서 구매!어제 결제했는데 오늘 와버렸다! 추석때 가지고 놀 장난감 생겼고~~ 사진은 다른 블로그에도 많지만 나도 투척박스를 열면 전원, 제품보증서, 본체가 있다.본체는 가벼워쑥 빠지고 전원은 한국용/유럽용(?) 두가지로 있었다.제품 보증서는 별 내용이 없다.(한국어 없는게 아쉽) SD카드는 따로 사야한다... 같이 있었으면 좋았을텐데..퀵가이드에 따르면 아래 사항을 충족하는 SD카드를 쓰라고 하니깐 구매하실 분들은 참고하세요~- Use a ..
Authorization과 Authentication에는 다양한 구현 방식이 존재한다.인증 로직을 직접 구현할 수도 있지만, 실제 서비스 환경에서는 사용자 관리, 보안 설정, 인증 플로우 등 고려해야 할 요소가 많다.Keycloak은 이러한 기능들을 폭넓게 제공하는 오픈소스 인증·인가 서버로, 비교적 적은 비용으로 표준적인 인증 시스템을 구축할 수 있다.본 글에서는 Keycloak을 기반으로 한 세션 인증 방식을 간단히 구현해보려 한다. 시스템 구조보통은 위와 같은 구조가 될 것 같다.User가 brower를 통해서 frontend에 접속하여 Backend Api를 호출하며 원하는 동작을 할 것이다.그 전에 User가 login을 하여 session id를 획득하고 획득한 session id를 이용해 B..
사진이나 동영상을 찍으면 구글 포토나 icloud에 자동으로 백업이 된다.사진만 있으면 어느정도 커버가 가능하지만 동영상까지 있다면 무료로 제공되는 용량은 금방 바닥나게 된다.나같은 구두쇠는 주기적으로 돈이 나가는 구독을 좋아하지 않는다.그래서 집에 설치해둔 truenas에 immich라는 서비스를 설치하기로 했다.immich는 설치도 쉽고 모바일 앱도 제공해줘서 자동으로 사진과 동영상 백업을 편하게 할 수 있다.TrueNAS에 immich 설치(실패)TrueNAS의 좋은점이 기본적인 Nas의 기능을 제공하는것 뿐만 아니라 원하는 앱들을 추가로 설치할 수 있다.TrueNAS에 접속하면 왼쪽 메뉴에 Apps가 있고 원하는 앱을 검색해서 설치할 수가 있다.마침 Immich가 있어서 아주 쉽게 설치를 끝낼 수..
많은 backend api를 호출하기 위해선 api key가 필요하다.swagger에서도 당연히 이 기능을 제공해준다. Base code바로 앞의 포스트의 코드를 아래와 같이 조금 수정하겠다.package mainimport ( "fmt" "github.com/gin-gonic/gin" "net/http" _ "example/swagger/docs" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger")...// @title Swagger Example API// @version 1.0// @description This is a sample server Petstore server.// @host localho..
Backend 개발자와 Frontend 개발자가 API 명세를 소통하는데 많은 방법이 있다.그 중에 Swagger가 제일 편리해보인다.설명도 추가할 수 있고 실제로 Request도 날려보면서 테스트를 해볼 수 있기 때문이다.python의 FastApi를 사용할땐 swagger를 자동으로 만들어줘서 편리했지만 Go의 경우에는 자동으로 만들어주지 않는다.그래서 go에서 swagger를 사용하기 위해선 추가적인 작업들을 해줘야 한다. Swagger 설치framework를 gin으로 사용한다고 가정하겠다.# module name을 example/swagger로 지정$ go mod init example/swagger# go gin package 설치$ go get -u github.com/gin-gonic/gi..
asdf 사용하게 된 계기golang을 사용할때 다양한 버전을 사용할 때가 있다.예전의 프로젝트는 예전의 버전으로, 최신의 프로젝트는 최신 버전으로 쓸 때가 그 예이다.이때 로컬에 설치된 golang을 새로 설치한다면 기존의 버전은 쓸 수 없다. 여러 버전의 golang을 설치하기 위해 환경변수를 바꾸거나 brew를 사용하는 등 다양한 방법이 있다.하지만 그 방법들은 번거로운 작업들이 많아 깔끔하게 asdf를 사용하기로 했다.asdf 설치(v0.18.0)brew install asdfmac에서 설치는 위와 같이 간단하다.다른 os 혹은 다른 설치 방법은 여기를 참고하시라.(windows는 제약이 좀 있는듯 해서 wsl을 사용하는것 같다.)asdf 사용하기golang 사용을 위해 설치했기에 golang을 ..
mlflow는 머신러닝 Experiment를 관리하고 재현성 있게 만들기 위한 오픈소스 플랫폼이다.머신러닝 모델을 학습하다보면 모델 저장도 하고 저장된 모델의 성능같은 부가 정보들을 같이 기록해야한다.아무 도구 없이 파일로 기록하다보면 기록하기도 힘들고 다시 찾아보기도 힘든데 mlflow를 사용하면 쉽게 기록하고 쉽게 찾아볼 수 있다.mlflow 설치하기설치하기는 매우 쉽다.pip install mlflowpip로 간단하게 설치할 수 있다. 이렇게하면 로컬PC에 바로 설치가 되지만 Docker를 이용해 로컬PC와 환경을 분리하고 싶다.(가상환경을 써도 분리할 수 있지만 dockerfile로 분리해보겠다.) Dockerfile# 베이스 이미지 (Python 포함된 경량 이미지)FROM python:3.13..
지난번 글에서 gortsplib로 cctv 영상을 다운받고 ffmpg로 mp4로 변환을 해보았다.여기서 각각 한 프레임을 추출해서 object detection model같은 것으로 추론해보려고 했다.단순히 생각해서 NALU가 한 프레임이라서 한 단위의 NALU만 이미지로 변환하면 된다라고 생각을 했었는데 NALU가 프레임의 단위는 아니었다.gortsplib로 한 프레임을 추출해보고 싶었는데 영상에 대한 지식이 모자라 성공하지 못했다.하지만 gocv라고 opencv를 wrapping해놓은 것이 있었다.opencv로는 rtsp 영상에서 이미지 추출하는걸 예전에 쉽게 했었던 기억이 있어 가능할 것이라 생각했다.gocv 사용하기아래와 같이 코드를 짰다.(gpt와 copilot에게 감사)python으로 했을때도..
각각의 함수의 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..
