본문 바로가기

분류 전체보기

(48)
다시 글을 써볼까 갈수록 언어능력이 퇴화되어가는 게 느껴진다. 평소 책도 안읽지만, 책을 읽고 기록을 하거나 내 생각을 정리하지 않다보니 내가 무슨 생각을 하며 살아가는지도 모르겠으며 적당한 단어도 생각이 안난다. 하루하루 흘러가는게 허무하기도 하고..그래서 다시 블로그를 써볼까 싶었다.2024년 내내 생각을 했는데, 시도를 못했다. 글을 한번 제대로 쓴다는건 굉장히 시간소모가 큰 일이기 때문에 엄두가 안났다. 그러나, 이제는 해야될 것 같다! 그래서 일상을 기록하는걸로 하나씩 다시 써나가볼까 한다. 오늘은 평소보다 조금 더 특별한 날이었다. 왜냐면! 예적금 통장의 만기 일이 오늘이었기 때문이다! 지난 (나름) 고금리 시대 때, 가입해놓은 4.5% 와 5.5% 예금, 적금이 오늘 끝난 것이다. 기분은 좋지만, 그것도 잠시..
냐냐 쓰기 작업 발생 시1. 클라이언트로부터 쓰기 요청 발생2. 해당 요청은 조정 노드에게 전달됨3. 라우팅을 통해 어떤 샤드로 갈지 (Shard 0 / 1 등) 결정함4. 그 샤드 중 Primary Shard를 찾아 요청을 넘겨줌5. Primary Shard가 작업을 하고6. 다시 조정 노드에게 응답7. 조정 노드가 클라이언트에게 응답 5번에서 Priary Shard가 하는 작업이란?- 요청이 제대로 된 요청인지 검증- 검증 결과, 문제 없다면 쓰기 작업을 수행- 작업 완료시, 각 복제본 샤드(in-sync 복제본)로 요청을 병렬적으로 넘김 --> 복제 발생- 복제본이 모두 작업을 완료하면 Primary Shard에게 응답을 주고 주 샤드가 작업 완료 응답을 보낸다.* 마스터노드는 복제할 샤드목록을 관리하는..
elasticsearch install [kcy@elk-1 Desktop]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.1-linux-x86_64.tar.gz --2024-04-06 23:19:52-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.1-linux-x86_64.tar.gz Resolving artifacts.elastic.co (artifacts.elastic.co)... 34.120.127.130, 2600:1901:0:1d7:: Connecting to artifacts.elastic.co (artifacts.elastic.co)|34.120.127...
엘라스틱 서치 API 활용 단건 문서에 대한 API -색인 API PUT [인덱스명]/_doc/[_id] POST [인덱스명]/_doc #id 값을 명시하지 않을 땐 POST를 써야함 PUT [인덱스명]/_create/[_id] POST [인덱스명]/_create/[_id] 1. 가장 기본적인 방법임. 해당 _id가 이미 존재한다면, 덮어씌운다. 2. id 값을 명시하지 않으려면 POST를 사용한다. 엘라스틱 서치가 고유한 _id를 자동 생성한다. 3. _id가 이미 존재한다면, 오류를 띄운다. 값을 색인할 땐, 되도록 라우팅 값을 넣어주는 것이 좋다. 넣지 않는다면 _id 값을 기반으로 샤드가 지정된다. PUT [인덱스명]/_doc/1?routing=myid refresh 색인 시, 위 값을 지정하면 색인 이후 바로 refres..
엘라스틱 서치 정리 엘라스틱 서치를 들어가기 전에 일단, 색인과 역색인에 대한 개념을 잡고 가야한다. https://develop-park.tistory.com/42 루씬이 먼가요?루씬은 자바로 개발된 고성능 정보검색 오픈소스 라이브러리 입니다. 1999년 하둡개발자로 잘 알려진 더그 커팅이 개발했고 2005년 아파치 톱 레벨 프로젝트로 승격됐습니다. 가장 유명한 무료 자develop-park.tistory.com 색인이란, 문서를 기준으로 텀을 나열한 것. 역색인이란, 텀을 기준으로 문서를 나열한 것이다. 따라서 어떠한 키워드를 검색했을 때 색인의 구조에선 모든 문서를 다 일일이 살펴보며 그 키워드가 있는지 확인해야하지만, 역색인의 구조에선 그 키워드에 나열된 문서들만 살펴보면 되기 때문에 검색 속도가 엄청 빠르다. 이렇..
쿠버네티스 설치 vi /etc/hosts vi /etc/sysconfig/selinux >> disabled systemctl stop firewalld systemctl disable firewalld swapoff -a vi /etc/fstab modprobe br_netfilter sysctl -w net.ipv4.ip_forward=1 cat
폐쇄망 환경 k8s 설치설치 - 버전. 1.28 - OS : RHEL 8.5 1. CRI-O 설치 URL : https://github.com/cri-o/cri-o/blob/main/install.md#build-and-install-cri-o-from-source subscription-manager로 해당 repo 바라보도록 설정한 후, 패키지 관련 dependencies 설치함. 관련된 파일 디펜던시 yum install -y \ containers-common \ device-mapper-devel \ git \ make \ glib2-devel \ glibc-devel \ glibc-static \ runc go get github.com/cpuguy83/go-md2man yum install -y \ libassuan \..
몽고DB 샤딩 샤딩이란 여러 장비에 걸쳐 데이터를 분할하는 과정을 의미하며, 때로는 파티셔닝이란 용어로도 불린다. 장점 - 데이터를 여러 장비에 나누어 넣음으로써, 더 크거나 강력한 장비 없이도, 많은 데이터를 저장하고 부하를 처리할 수 있다. - 더 자주 접근하는 데이터를 성능이 더 좋은 HW를 가진 서버에 배치하거나 지역에 따라 데이터셋을 분할해 주로 접근하는서버에서 데이터를 찾을 수 있다. 몽고DB는 애플리케이션에서 구조를 추상화하고 시스템 관리를 간단하게 하는 자동 샤딩을 지원한다. (수동 샤딩은 대부분의 DBMS에서 지원 가능하지만, 데이터 분산이나 부하 패턴이 변화할 때는 유지하기 어렵다.) 클러스터 구성 요소 이해하기 샤딩의 한 가지 목적은 2개, 10개, 1000개의 샤드 클러스터가 하나의 장비처럼 보이..
kafka-springboot 연동 결과 build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' impleme..
스프링 프레임워크 등장 EJB 지옥 EJB에서 주는 인터페이스를 다 받아서 서비스 repo 등을 개발했어야 했다 -> 즉, ejb의 의존도가 굉장히 높아짐 근데 이 EJB가 굉장히 어려움. 그러다 보니, 그냥 순수한 JAVA를 쓰자는 말들이 나옴. 그러다 로드 존슨이란 사람이 있는데, 이 사람이 EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발 할 수 있음을 보여줌. 여기에 지금의 스프링 핵심 개념과 기반 코드가 들감 이걸 기반으로 오픈소스인 스프링 프레임워크가 만들어졌다. 그러다 2003~ 2013 까지 쭉 스프링 프레임워크가 쭊쭊 발전하기 시작함. 핵심 기술: AOP, DI, MVC, WebFlux, 트랜잭션, JDBC, ORM, 캐시, 등등 스프링이 잘되면서 스프링을 기반으로 하는 데이터, 시큐리티, 배치 등..