프로그래밍(Web)

    [바미] Golang JSON에 입력된 UTC 시간 값 비교하기

    UdateTime, err := time.Parse(time.RFC3339, "2021-05-4T07:08:42Z") if err != nil { err = errors.New("Date 포맷팅이 올바르지 않습니다.") log.Println("UDate :", "2021-05-4T07:08:42Z") SenddingToPanic(err) } 이런식으로 체크하면 되는데 UdateTime, err := time.Parse(time.RFC3339, JSON에서 UTC값 받아오는 변수) if err != nil { err = errors.New("Date 포맷팅이 올바르지 않습니다.") log.Println("UDate :", JSON에서 UTC값 받아오는 변수) SenddingToPanic(err) } 이렇게..

    [바미] 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..

    [바미] go-callvis에 대해 알아보자!

    go-callvis는 Go로 작성된 프로그램의 호출 그래프를 생성 해주는 도구입니다. 코드 리뷰에서 사람의 코드를 읽을 때나, 복잡한 코드를 파악하고 싶을 때 등 어떤 형태로던 도움을 받고 싶은 경우가 있습니다. go-callvis은 쉽게 시각화된 호출 그래프를 만들 수 있다. 이 go-callvis의 사용법에 대해 소개하려고 합니다. 사용법 go-callvis 저장소에 딱 좋은 샘플이 있기 때문에 시험 삼아 실행해봅시다. https://github.com/TrueFurby/go-callvis/tree/master/examples/main 내용은 이런 느낌입니다. main 패키지가 있는 곳에서 go-callvis 명령을 실행합니다. -group를 사용하면 패키지나 타입으로로 그룹화 해줍니다. 패키지로 그..

    [바미] 고통스런 yarn build

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

    [바미] JavaScript에 Highchart를 이용한 그래프 삽입

    이번에는 https://www.highcharts.com/ 에서 제공하는 데모버전을 적용하는 방법을 알아보겠습니다. 먼저 여기로 들어갑니다. 왼쪽 상단에 있는 Demo를 들어갑니다. 맘에 드는 차트를 찾습니다. 원하는 Demo의 속성에 맞게 다운로드 해줍니다. 아까 마음에 들던 차트를 들어갑니다. Edit IN JSFIDDLE를 눌러줍니다. 왼쪽 상단에 등등을 넣어줍니다. DEMO를 보고 있는 사이트의 경로는 https:// ~ 로 되어있는데 꼭 자신에 맞게 경로를 다시 지정해주셔야 됩니다. 그리고 에 넣어 주시면 됩니다. jquery-1.12.3min.js로 돌아가는거 확인했습니다. jquery가 맞지 않으면 돌아가지 않을 수 있습니다. 또한 jquery위치를 가장 위에 올려주시면 되겠습니다. 아래에 ..

    [바미] Go 1.16 Release 정보!

    주요 업데이트 Go embed go:embed {embed file path} 디렉티브를 통해 컴파일 과정에서 파일 임베드를 지원하게 됨. 이것이 좋은 이유! Go언어에서는 기본적으로 conf-{stage}.yaml 등의 설정 파일을 가지고 불러오는 등의 설정을 가진 경우, 개발 과정에서는 문제가 없이 동작하지만 go build를 한 이후 설정 파일이 execute file에 포함되지 않아 설정 파일을 못찾는 현상이 발생합니다. 또한 보안 문제도 발생하게 된다. 따라서 실행 파일과 함께 설정 파일을 동봉하거나 viper 등을 통해 설정을 직접 입력하는 형식, 혹은 Consul이나 etcd와 같은 원격 키스토어에 설정을 저장하고 네트워크 트래픽을 거쳐 설정을 받아오는 방식을 사용했다. 1.16 버전 이전에..

    [바미] 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/..