[바미] Go - Map 과 Hash 의 관계에 대해 알아보자.
·
프로그래밍(Basic)/Golang
안녕하세요. 오늘은 Map과 Hash와의 관계에 대해 알아보려 합니다. 먼저 Map이라는 것은 Key - Value형태로 데이터를 저장하는 것을 말합니다. 전화번호부가 대표적인 예인데 이름은 Key - 전화번호는 Value가 됩니다. 그래서 key가 되는 이름이 김AA이고 Value가 되는 전화번호가 010-...이고, 두 번째는 김BB 전화번호가 010-..., 세번째가 김CC 전화번호가 010-...일 때 김AA - 010... 김BB - 010... 김CC - 010... 이렇게 데이터가 있을 때 이것을 Map으로 가져올 때는 Key인 김AA ~ CC로 데이터를 가져오고, 데이터를 입력할 수 있습니다. 그래서 예를들어 김AA의 전화번호를 알고 싶을 때 Map이라는 data struct가 있고, 여기..
[바미] Go - Heap 을 이용하여 문제를 풀어보자!
·
프로그래밍(Basic)/Golang
매일프로그래밍 이라는 곳에서 나왔던 문제를 풀어보려 합니다. 문제는 아래와 같습니다. 문제) 정수 배열(int array)과 정수 N이 주어지면, N번째로 큰 배열 원소를 찾으시오. 예제) Input : [-1, 3, -1, 5, 4], 2 Output : 4 Input : [2, 4, -2, -3, 8], 1 Output : 8 Input : [-5, 3, 1], 3 Output : -5 이 문제를 푸는 방법은 여러가지가 있겠지만 Input : [-1, 3, -1, 5, 4], 2 Output : 4 의 경우 가장 무식하게, 단순하게 푸는 방법은 배열 2개 짜리를 하나 만들고, 가장 큰 값을 앞에, 두번째로 큰 값을 뒤에 적어주는 방법입니다. 그래서 처음에 -1이 나왔고, 3이 있는데 3과 -1을 비교..
[바미] Golang sarama 연동하기(http_server)
·
프로그래밍(Web)/업무관련
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).
·
프로그래밍(Web)/업무관련
예제는 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에러 대처하기
·
프로그래밍(Web)/업무관련
위와 같이 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 카프카 삽질기...
·
프로그래밍(Web)/업무관련
현재 Golang으로 구현한 log 수집 서버는 log파일에 log들을 수집하는데 파일에서 카프카로 도입하도록 수정되었습니다. 카프카를 쓰려면 주피카를 써야 하고, 이 둘에 대한 설명은 다음과 같습니다. 카프카 메시징 큐의 일종입니다. 그리고 다른 메시징 큐 activemq, rabbitmq 대비 우수한 TPS 를 나타냅니다.따라서 대용량의 실시간 로그 처리에 특화되어 있습니다. 메시지를 기본적으로 저장하는 기존 메시징 시스템과는 달리 파일 시스템에 저장합니다. 따라서 데이터 유실에 안전합니다. 구성은 Producer, Broker(kafka 서버) , Consumer 로 되어있습니다. 기존 메시징 시스템과의 차이점 기존시스템은 Broker가 Consumer 에게 들어오는 메시지를 Push 방식으로 진행..
[바미] Go - Heap에 대해 알아보자2!
·
프로그래밍(Basic)/Golang
지난 시간에 최대 값과 최소 값을 빠르게 가져오기 위해 Heap을 사용한다고 했었고, Heap의 추가 방법, 삭제 방법에 대해 알아 보았습니다. 이 Heap을 Tree로 만들려고 하면 상당히 어렵습니다 부모와 자식간 Linked list로 연결되어 있기 때문에 각각 층간에 연결되어야 하기 때문에 보통 Heap의 같은 경우 Array를 많이 사용합니다. 이것을 Go에서는 Slice라고 합니다. 보통 맨 앞을 Root Node로 두는데 아래와 같이 Heap이 구성되어 있다고 가정할 때 이걸 배열로 표시를 하면 맨 앞이 Root니까 9인데 BFS하듯이 돈다고 생각 하면 됩니다. 그래서 아래와 같은 배열이 구성 됩니다. 9 7 8 3 4 6 7 그리고 그 다음에 추가되는 값은 빈 공간에 추가되고, 뺄 때는 맨 ..
[바미] Go - Heap에 대해 알아보자!
·
프로그래밍(Basic)/Golang
안녕하세요. 오늘은 Heap에 대해 알아보려 합니다. 그 전에 지난 번에 아래와 같은 Tree를 그렸는데 맨위의 root 값이 왜 5인지 궁금해 할 것입니다. 왜 가운데 값이 root에 들어갈까요? 생각해보면 1~10까지를 갖는 Tree가 있는데 아래와 같은 형태로 그려진다 했을 때 위와 같이 오른쪽으로만 이어진 Tree도 BST가 맞다. 자기 값보다 큰 값이 오른쪽이 들어가 있기 때문입니다. 그래서 1 ~ 10까지 Node를 집어 넣을 때 순서대로 집어 넣는다 할 때 위와 같이 한 줄로 나오게 됩니다. 반대로 10 ~ 1까지 거꾸로 집어넣으면 왼쪽으로만 값이 들어가질 것입니다. 당연히 위의 형태도 BST가 맞습니다. 하지만 BST의 장점이 어떤 값을 찾을 때 반절을 버리고 찾는다는 것에 있는데 위의 형..
[바미] 군침이 싹~ 도는 영상으로 짧고 강하게 웃겨 드립니다. 루피 군침이 싹도노
·
이것저것/일상
Bami
'분류 전체보기' 카테고리의 글 목록 (64 Page)