들어가는말 N/A 요약 observer 가 관찰자라서 능동인 것처럼 느껴지지만 결국 행위를 수신하는 피동적 대상이다. (이벤트 구독) 능동적으로 observer 들을 관리하고 통보하는 행위는 observable (이벤트 발생) 이 수행한다. observable 이 observer 들을 관리하는 건 deprecated 된 java.util.Observable에 의존할 수도 있고 list 로도 사용할 수 있다 사족: depreacated 된 이유는 Observable이 Serializable를 implements 하지 않은 것이랑 thread safety 가 보장되지 않는다는 것이다 (이건 잘 안 와닿기는 하는데) 뭐 거기다 9 에서는 Flow API 가 나오기도 했고 https://stackoverflow..
들어가는 말 이제는 더이상 플랫폼을 다루지 않지만 그래도 관심 있던 분야라서 한번 정리 배경 aws vs elastic co. 간 elasticsearch 에 대한 라이센스 관련 분쟁 (분쟁이라는 표현이 맞으려나?) 2021년 초 elastic 에서 elasticserach 의 라이센스가 변경된다는 발표 https://www.elastic.co/blog/why-license-change-AWS https://aws.amazon.com/ko/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/ 복잡한 어른의 사정이 있었겠지만, 요는 aws 에서 es 돈받고 팔지 마라...(혹은 우리 지적/재산권 침해하지 마라) 정도로 이해했다. 상황 el..
들어가는 말 jackson 관련 내용을 훑어보면서 확인했던 문서들을 기록 최근에 타이핑을 너무 했더니 손가락을 쉬게 해줘야 할 것 같아서, 상세한 기록이나 분석은 다음 기회에..... 기본적으로는 readme 나 아티클을 위주로 접근 주의사항 혹시나 이 문서를 보시는 분이 계실... 지도 모르겠지만 문서를 통해서는 유익한 정보를 얻기 힘들수도 있습니다. 분석 작업에 대한 이정표를 남기는 느낌의 문서입니다. 왜? 근 몇년간 typeless 한 node.js 를 주로 만지다보니 감떨어짐 jackson (정확히는 jackson databind) 에 꽤 많이 의존을 해야하는 상황이 기대되지만 지금까지 주로 써왔던 기본적인 사항만 인지하고 있음 앞으로 봐야 할 코드를 보다보니 다형성을 jackson 에 의존해서 ..
들어가는 말 WebSocket 을 좀 봐두어야 할 시점이 되어 정리 WebSocket 이란 하나의 TCP 커넥션으로 full duplex 통신을 제공하는 프로토콜 HTTP 와 호환되지만 동일하지는 않다고 함 HTTP 포트 80, 443 위에서 동작하도록 설계 초기 연결 이후 Upgrade Header 를 사용 (https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header) 이후 WebSocket / WS 용어 혼용 WebSocket 의 필요성 서버에서 발생한 이벤트를 클라이언트에 전달하기 위하여 사용 WebSocket 이전까지 클라에서 클라 본인이 갱신 된 변경사항이 있는지 주기적으로 요청하여 확인 polling 방식 꼭 필요하지 않은 상황에서도 통신이 발생 (클라 입..
들어가는 말 과거 kafka study 했던 자료를 한번 복기 하면서 정리합니다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=171000274 개요 카프카는 클러스터 관리를 위해 CLI 도구를 제공합니다. 메시지 읽기와 쓰기 도구 kafka-console.consumer.sh kafka-console.producer.sh 주의 콘솔 컨슈머 사용 시 메시지 유실 가능 콘솔 프로듀서는 카프카 프로듀서의 모든 기능을 사용할 수 없음 메시지 전송이 까다로움 어플리케이션에서는 자바 클라이언트 라이브러리나, 다른 언어의 서드파티 클라이언트 사용 콘솔 프로듀서 kafka-console.producer.sh 인자 --broker-list --topic kafka-cons..
결과 및 요약 구버전에서의 percolator API 처럼 쓸수 있을것 같음 default_field 매핑 잡고 쿼리에 기본 값으로 넣어둬야 함 percolate search query 에서 query_string 쓸꺼면 bool query 로 말아두어야 함 프로덕션 레벨에서 사용하기 위한 추가 검증 필요 사항 routing 적용 여부 projectName 필드 고정 배경 percolate query POC https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-percolate-query.html https://www.elastic.co/guide/en/elasticsearch/reference/current/percolato..
들어가는 말 과거 kafka study 했던 자료를 한번 복기 하면서 정리합니다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=171000274 docker 환경을 상정하고 있긴하지만 작업 내용을 곰곰히 살펴보면 로컬 환경에 설치하는것을 상정하고 있습니다. 테스트 환경이므로 HA를 위해 앙상블을 구성하지는 않습니다. 애초에 kakfa 가 jvm 기반이지만 메모리를 많이 사용하지는 않으므로 디스크만 적절히 선택하면 된다고 생각합니다. 컨테이너 환경에다가 kakfa 를 구성하고 외부에서 접속하게 하면 port 문제 이외에도 advertised host 쪽에서 이슈가 발생할 수 있습니다. 준비물 번외이긴 하지만 docker 환경을 상정하고 있습니다. docker ..
들어가는 말 elasticsearch(이하 es)에서 데이터가 어떻게 저장되는지 궁금해서 이글 저글 짜깁기해보면서 정리 필요한 배경 es는 lucene(이하 루씬) 기반이다. es는 인덱스를 기반으로 데이터를 저장하고, 각 인덱스는 샤드로 구성되어 있으며, 각 샤드는 루씬의 인덱스이다. (es의 샤드와 루씬의 인덱스는 1:1 관계) 샤드는 es의 데이터 노드들에서 관리하고, 데이터에 대한 crud나 그 외 연산(검색, 집계 등)을 수행한다. (즉 루씬에서 수행한다는 소리다.) 샤드는 레플리카로 관리할 수 있다. es에서 관리하는 데이터는 세그먼트로 관리된다. 세그먼트 inverted index이다. (term을 추출하여, term 이 어느 doc에 있는지 관리) 세그먼트는 파일로 쓰이기 전까지 trans..
- Total
- Today
- Yesterday
- Java
- 말의품격
- 기술센싱
- fsync
- meta character
- 만들면서 배우는 클린 아키텍처
- flush
- Generic
- elasticsearch
- 개발자
- percolate
- 기술블로그
- kafka 2.8.0
- opensearch
- 에픽테토스
- Spring
- Async
- jhipster
- 전설로떠나는월가의영웅
- Kafka
- completablefuture
- 기술사이트
- Dangling
- PatternSyntaxException
- COMMIT
- 사기꾼증후군
- WebSocket
- pecs
- AWS
- 클린 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |