개발하면서/타인글보면서
-
Elasticsearch의 개념 살펴보기..(1)위에서 아래로개발하면서/타인글보면서 2021. 8. 21. 13:41
내 기준으로 Elasticsearch을 간단하게 운영하고 사용은 할 수 있지만 조금 복잡한 쿼리 작성이 필요할 때 바로 작성을 못하거나 예상치 못한 오류(Circuit breaker!!)를 보는 경우가 있어 필요한 부분을 하나하나 알아보려고 한다. 사실 가장 큰 이유는 그냥 궁금해서다. ㅎㅎ Elasticsearch에는 어떠한 기능들이 있고 역할이 무엇이며 왜 필요한지 알아가는 과정이 재밌을 것 같다. 알아가는 과정 중간중간 나의 업무나 삶에 적용하는 것도 재밌다. 먼저 Elasticsearch 사용자 입장에서 색인과 검색이 어떻게 이루어지는지 살펴본다. 위에서 아래로 https://www.elastic.co/blog/found-elasticsearch-top-down 2014년 글이지만 개념에 대한 설..
-
Naver Deview 2020 시청 및 정리개발하면서/타인글보면서 2021. 1. 11. 09:42
Deview 2020에서 개인적으로 흥미가 있는 영상들을 보고 정리했다.. 발표에서 어떤 방법으로 얼마큼의 이득을 얻었는지 얘기한 것도 좋았지만 과거에 갖고 있던 문제들을 설명하고 대안들을 나열하며 여러 대안들 중 현재 상황에서 균형 잡힌 선택을 하는 일련의 과정들이 재밌고 고마웠다. 문제를 해결하는 것의 다음 단계는 문제를 정의하고 해결하는 거라고 회사 어느 분이 얘기해준 게 갑자기 생각나네... 허허허 손쉽게 ML 라이프사이클을 다룰 수 있는 MLOps https://tv.naver.com/v/16970565 . AI 연구자와 엔지니어의 관점 차이와 모델 표준화의 장점 Saved Model(TF), ONNX(Pytorch) . Model Registry 모델의 부가정보(meta)를 저장, 모델 파일은..
-
if(kakao)2020 보고 요약 및 생각들개발하면서/타인글보면서 2020. 12. 21. 00:06
봐야지 봐야지... 마음만 먹고 있다가 이번 주에 몰아서 if(kakao) 2020을 봤다. 개발 관련 세션뿐만 아니라 비즈니스, 서비스, VLOG, 인터뷰 등 다양한 내용들이 있는 게 좋았고, 온라인으로만 진행해서 그런지 몰라도 세션 네비게이션(?) 할 때 쉽게 파악 할 수 있어서 좋았다. 다른 사람들의 경험과 생각들을 보고 내 것으로 곱씹어보는 이런 시간이 생각의 폭도 넓히고 고정된 생각이 있다면 말랑하게 해준다. 요새 입력한 정보의 양에 집중하지 말고 내가 이걸 어떻게 소화할지와 그 소화된 것을 output(글이나 실제 코드 또는 실제 생활의 행동)까지의 한 바퀴를 경험하는 것에 집중하고 있다. (쉽지 않다 ㅋㅋㅋㅋ, 그래도 이 생각은 잊지 말고 꾸준히 상기하자) 시간 되면 if(kakao)dev ..
-
Kafka purgatory (1)개발하면서/타인글보면서 2020. 6. 29. 00:18
4. 그래서 Kafka에서는 어떻게 사용되고 있냐? DelayedOperation으로 검색하면 다양한 곳에서 사용하는데(Group Coordinator, Replica Manager, ZkAdminManager 등...) 여기서는 Replica Manager 기준으로 알아본다. broker가 가동되면 Replica manager가 한 개씩 생성되고 Replica Manager에는 역할 별 Purgatory가 존재한다. 이때 Partition을 생성하면 ReplicaManager의 Purgatory를 주입해서 아래 그림의 왼쪽은 파티션을 생성할 때 replicaManager의 Purgatory를 delayedOperations로 만들어 주입하는 코드고 오른쪽은 도식화 한것이다. 아래 그림은 xxxPurga..
-
Kafka purgatory개발하면서/타인글보면서 2020. 6. 20. 19:31
업무 중에 request를 보내면 X초 이후에 실행되는 scheduling repository를 살펴보다가 Kafka purgatory는 어떻게 구현했을지 호기심이 생겨 알아보았다. Confluent 블로그와 hierarchical timing wheels 논문을 쉽게 소개한 블로그, 두 개를 보며 나름대로 정리했다. https://www.confluent.io/blog/apache-kafka-purgatory-hierarchical-timing-wheels/ 1. Purgatory란 무엇이고 Kafka 어디에 사용되나? 네이버 사전에 Purgatory를 검색하면 연옥이라고 나오고 의미는 아래와 같다. 가톨릭 교리에서 연옥은 천국으로 가기에는 자격이 부족하지만 지옥으로 갈 정도의 큰 죄를 짓지 않은 죽은..
-
Kafka의 Sticky Partitioner 살펴보기개발하면서/타인글보면서 2020. 1. 18. 13:55
Kafka Broker(server)에 메시지를 주고받는 client 역할을 하는 Kafka Producer / Consumer 중 Producer의 성능 개선 기능이 있어 살펴보려고 한다. ref url: KIP-480, Apache Kafka Producer improvements Sticky Partitioner[Confluent Blog] Kafka Producer의 메시지 전송 방법 두 부분으로 나뉘어 있다. 사용자 코드에서 send()를 실행하면 토픽, 파티션별 record를 모아 놓는(record batch) Accumulator Accumulator에 쌓인 record batch를 가져와서 Kafka Broker에 전송하는 작업을 쉼 없이 하는 Network thread [2.4 코드를 보..
-
Elasticsearch shard 할당 방식을 정리해보자개발하면서/타인글보면서 2019. 11. 27. 21:13
최근 사내에서 사용하고 있는 Elasticsearch를 별다른 설정 없이 쓰다 보니 종종 인덱스/샤드 관련 문제가 생겨서 shard allocation 관련 학습 필요성이 생겼다. Elasticsearch Shard allocation 공식 문서와 AWS의 shard allocation 문서를 읽고 나름 직역했다. https://www.elastic.co/guide/en/elasticsearch/reference/7.2/modules-cluster.html master 노드의 주 역할은 인덱스의 샤드를 데이터 노드에 (고르게) 분배하고 균형을 위해 샤드를 재분배하는것입니다. 샤드 할당하는 4가지 방법과 꿀팁을 소개합니다. 여기서 소개하는 설정 값은 cluster update settings에 나온 방법으..
-
ES hot-warm, Rollout, Shrink 알아보기개발하면서/타인글보면서 2019. 10. 27. 00:52
회사에서 ES도 다루고 있는데 초반에는 별다른 관리 없이도 문제가 없었는데 인입되는 양이 점점 많아지면서 인덱스 관리가 필요했고, 그때 알아본 키워드가 hot-warm architecture, rollover, shrink 였습니다. 급한 불을 끈 후 위 링크는 에버노트 깊은 곳에 저장하고 있다가... 올해 더 많은 데이터 인입이 계획 되어있어서, 아... 학습 좀 하고 적용해야겠다는 생각에 리서치를 시작했습니다. ES 공식 블로그 문서를 읽고 직역 비스므리한 정리를 하였습니다. ES 공식 블로그 - Hot Warm Architecture https://www.elastic.co/kr/blog/hot-warm-architecture-in-elasticsearch-5-x?fbclid=IwAR0gajLECY..