개발하면서
-
Elasticsearch의 개념 살펴보기..(2)아래에서 위로개발하면서/타인글보면서 2021. 8. 30. 08:59
이전 포스트에선 Elasticsearch 개념을 사용하는 측면으로 알아보았다. https://dol9.tistory.com/294 이번에는 반대로 Elasticsearch의 주 기능인 검색을 담당하는 Lucene 그리고 이를 관리하기 위한 Elasticsearch의 기능들을 알아본다. 바닥(?)을 알게 되면 Elasticsearch API들을 이해할 때나 문제 해결 시 도움이 될 것이다. 물론 모든 바닥을 알기에는 우리의 시간은 유한하니 나한테 필요한지 아닌지 고민하자 시작하자. https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up 역색인(Inverted Index) 검색엔진을 처음 배우면 듣는 자료구조다. 바로바로 역색인 입력한 문서에서..
-
Elasticsearch의 개념 살펴보기..(1)위에서 아래로개발하면서/타인글보면서 2021. 8. 21. 13:41
내 기준으로 Elasticsearch을 간단하게 운영하고 사용은 할 수 있지만 조금 복잡한 쿼리 작성이 필요할 때 바로 작성을 못하거나 예상치 못한 오류(Circuit breaker!!)를 보는 경우가 있어 필요한 부분을 하나하나 알아보려고 한다. 사실 가장 큰 이유는 그냥 궁금해서다. ㅎㅎ Elasticsearch에는 어떠한 기능들이 있고 역할이 무엇이며 왜 필요한지 알아가는 과정이 재밌을 것 같다. 알아가는 과정 중간중간 나의 업무나 삶에 적용하는 것도 재밌다. 먼저 Elasticsearch 사용자 입장에서 색인과 검색이 어떻게 이루어지는지 살펴본다. 위에서 아래로 https://www.elastic.co/blog/found-elasticsearch-top-down 2014년 글이지만 개념에 대한 설..
-
xstream + spring dev-tools 썼더니 문제가 발생했다.개발하면서/코드보면서 2021. 3. 27. 14:42
개인 프로젝트 중 이것저것 수정하다 보니 XStream 사용하는 부분에서 오류가 발생했다. 한꺼번에 많은 수정을 한 게 가장 큰 실수였고 문제의 원인을 gradle이나 XStream 설정이 잘못된 줄 알고 엄한 곳에서 삽질했다. 하지만 결국엔 찾지 못해 원복 했다.... JUnit Test 실행할 때는 정상 동작하는데 Application 실행하면 발생했다. 일주일 정도 지났을까? 다시 시도하였다. 이번에는 한 개 수정 -> 실행 -> 어 되네? 의 반복으로 진행했고 (당연히 그래야 하는데...ㅎ;;) spring-devtools 추가했을 때 오류가 나는 것을 발견하였다. 그래서 해결은 어떻게 했니? stackoverflow.com/questions/59176413/error-using-xstream-i..
-
IntelliJ 단축키 알아보기개발하면서/etc 2021. 3. 1. 18:25
개발을 업무로 하면서 가장 많이 보는 건 아무래도 Jetbrains 도구가 아닐까 싶다. 프로그래밍 언어는 바꿀순 있어도, Jetbrains 도구 없이 개발하는 건... 상상도 안됨 어후;; 물론 지금도 기본적인 단축키는 사용하지만 내 손가락을 좀 더 아끼기 위해 단축키를 알아보기 시작했다. 머릿속에 있는것을 손가락이 따라가지 못해 답답한 상황은 없었지만, (내 머리는 손가락을 배려하는 듯하다) 제공하는 기능을 이용해서 휴먼에러를 최소화하고 다양한 기능 구현과 테스트들을 하는데 목적을 두었다. 이쯤에서 명언 한 마디 If I only had an hour to chop down a tree, I would spend the first 45 minutes sharpening my axe. (링컨) 참고한 ..
-
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 ..
-
ES, Flink, Kafka, Solr remote debugging 하기개발하면서/etc 2020. 7. 5. 22:44
가끔 오픈 소스에 적용된 기능을 소개한 문서와 코드를 보면서 동작 과정을 알아보고 실무에 써볼 만한 게 있는 부분이 있다면 시험하곤 한다. 개인적으로 효과적인 데이터 저장, 처리 조회에 대한 관심이 있어서 제목에 나열한 오픈소스를 보고 있는데 문서와 코드 읽기만으론 이해하기 힘든 경우가 있다. 이때 실제 돌려보면서 stacktrace나 break point 걸고 변수 값을 확인하면 이해가 쉽게 되는데 해당 글에서는 JVM 오픈소스들을 어떻게 디버깅 하는지 간단하게 정리했다. (방법은 비슷하고 어느 부분에 -agentlib 옵션을 추가할지 정도이다.) ES 공식 블로그에 정리되어있는데 7.5.1에서는 잘 동작하지 않아 실행 시 -agentlib 옵션 추가하는 걸로 진행했다. $> git clone http..
-
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..