프로그래밍(Web)/업무관련

    [바미] Golang JSON nil값 Check 함수 만들다 생긴 일.

    Kafka로 이루어진 로그 수집 서버가 수정 사항이 생겨 코드를 수정할 일이 생겼습니다. 발생한 로그들을 정의한 Struct에 입력받아 로그 파일과, 파일들을 만들어주는 함수가 있는데 func create(w http.ResponseWriter, r *http.Request) { defer FailSendding(w) var inArr []Exam //input slice define body, leng := bodycheck(w, r) err := json.Unmarshal(body, &inArr) if err != nil { SenddingToPanic(err) } for _, in := range inArr { MSGCheckking(&in, string(body), leng) // check & ..

    [바미] Golang 같은 변수의 값 체크 시 “suspect or ” warnning 해결 방법

    if a.a != "foo" || a.b != "bar" || a.c != "haha" || a.c != "hoho" || a.c != "huhu" { } 위와 같은 식으로 입력 값을 체크하는 코드를 작성하였는데 a.c에서 suspect or 라는 warnning 문구가 떴습니다. warnning 문구라서 그냥 넘어갔으나 a.c에서 체크하는 값을 입력했음에도 에러가 났습니다. 그래서 구글에 검색해보니 나랑 같은 현상을 겪는 사람을 stackoverflow에서 찾을 수 있었는데 stackoverflow.com/questions/62470008/error-when-building-getting-suspect-or error when building , getting : "suspect or " I'm enc..

    [바미] 고통스런 yarn build

    오늘 젠킨스에 서버 셋팅해주기 위해 먼저 서버안에 git clone, 필요한 패키지 / 필요한 언어 설치 후 clone한 코드들을 yarn을 이용하여 build 후 시작해주려 했습니다만... 위와 같은 빌드 에러가 떴습니다. 분명 윈도우 상에선 정상적으로 빌드 - 실행이 되었는데 왜 빌드가 안되었는지 살펴보니 윈도우에서는 상관 없었는데 리눅스에서는 대소문자 구분이 제대로 되어야 했었습니다. 그래서 코드들을 살펴보니 import하는 부분에서 파일들의 경로들이 대, 소문자 구별이 안되어 있었습니다. 예를 들면 "../../Exam/Ex" 라는 경로가 실제 경로라 하여 아래와 같이 import 했을 때 import example "../../exam/ex" 윈도우 환경(VS Code)에서는 이 부분을 자동으로..

    [바미] Golang Kafka(sarama) + negroni 연동완료.

    package main import ( "fmt" "github.com/Shopify/sarama" ) var kafkaClient sarama.AsyncProducer func main() { brokers := []string{"broker:9092"} kafkaClient, _ = sarama.NewAsyncProducer(brokers, nil) } func SendMessage(topic string, message string) { kafkaClient.Input()

    [바미] kafka - ErrLeaderNotAvailable에러 해결하기.

    설 명절이 지나고 다시 회사 컴퓨터로 kafka를 실행시켰습니다. 근데 전 주 까지만 해도 됐던 것이 갑자기 아래와 같은 에러를 출력되었습니다.... PS C:\Users\DEV\Documents\Go\sarama-master\examples\http_server> go run http_server.go -addr=":8080" -brokers="localhost:9092" -verbose=true -certificate="" -key="" -ca="" -verify=false [sarama] 2021/02/16 13:55:33 client/metadata retrying after 250ms... (3 attempts remaining) [sarama] 2021/02/16 13:55:33 client/..

    [바미] Golang sarama 연동하기(http_server)

    github.com/Shopify/sarama/tree/65f0fec86aabe011db77ad641d31fddf14f3ca41/examples/http_server Shopify/sarama Sarama is a Go library for Apache Kafka 0.8, and up. - Shopify/sarama github.com 이 부분 실행 방법에 대해 써보려고 합니다. 먼저 func (s *Server) withAccessLog(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { started := time.Now() next.ServeHTTP(w, r) en..

    [바미] Golang sarama예제로 Kafka 연동하기(interceptors).

    예제는 github.com/Shopify/sarama Shopify/sarama Sarama is a Go library for Apache Kafka 0.8, and up. - Shopify/sarama github.com 여기의 코드를 사용했습니다. 먼저 제가 사용한 부분은 github.com/Shopify/sarama/tree/master/examples/interceptors Shopify/sarama Sarama is a Go library for Apache Kafka 0.8, and up. - Shopify/sarama github.com 부분인데 그러기 위해서는 일단 go.mod 파일을 수정해 줄 필요가 있었습니다. module github.com/Shopify/sarama/examples..

    [바미] 카프카 Invalid config, exiting abnormally에러 대처하기

    위와 같이 ERROR Invalid config, exiting abnormally (org.apache.zookeeper.server.quorum.QuorumPeerMain) org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing C:\kafka_2.12-2.4.0\config\zookeeper.properties at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:154) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumP..

    [바미] Golang 카프카 삽질기...

    현재 Golang으로 구현한 log 수집 서버는 log파일에 log들을 수집하는데 파일에서 카프카로 도입하도록 수정되었습니다. 카프카를 쓰려면 주피카를 써야 하고, 이 둘에 대한 설명은 다음과 같습니다. 카프카 메시징 큐의 일종입니다. 그리고 다른 메시징 큐 activemq, rabbitmq 대비 우수한 TPS 를 나타냅니다.따라서 대용량의 실시간 로그 처리에 특화되어 있습니다. 메시지를 기본적으로 저장하는 기존 메시징 시스템과는 달리 파일 시스템에 저장합니다. 따라서 데이터 유실에 안전합니다. 구성은 Producer, Broker(kafka 서버) , Consumer 로 되어있습니다. 기존 메시징 시스템과의 차이점 기존시스템은 Broker가 Consumer 에게 들어오는 메시지를 Push 방식으로 진행..