일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DFS
- 로드밸런서
- 클라우드
- JPA
- aws
- Spring
- springboot
- 쿠버네티스
- 스프링부트
- Elasticsearch
- 백트래킹
- 자료구조
- Spring Boot
- VPC
- 스프링 부트
- 월미도
- Docker
- 클라우드 컴퓨팅
- 인천여행
- 알고리즘
- 프로그래밍문제
- 카프카
- Kafka
- Spring Data JPA
- 백준
- 스프링
- Apache Kafka
- 오일러프로젝트
- 코드업
- gcp
- Today
- Total
목록분류 전체보기 (120)
GW LABS
6.1 버전 업그레이드 Full Cluster Restart: 모든 노드를 동시에 재시작하는 방식이며, 다운 타임이 발생하지만 빠르게 버전을 업그레이드 할 수 있다. Rolling Restart: 노드를 순차적으로 한 대씩 재시작하는 방식이며, 다운 타임은 없지만 노드 개수에 따라서 업그레이드에 소요되는 시간이 길어질 수 있다. 수동외의 다른방법으로 업그레이드 할 수 있는 방법이 있는지 리서치 필요 6.2 샤드 배치 방식 변경 장애로 인해 unassigned 샤드들에 대한 재할당이 필요한데 지속적으로 실패한다면 강제 배치가 필요 reroute: 샤드 하나하나를 특정 노드에 배치할 때 사용 allocation: 클러스터 전체에 해당하는 샤드 배치 방식을 변경할 때 사용 all: 프라이머리 샤드와 레플리카 ..
5.1 elasticsearch.yml 설정파일 ElasticSearch를 구성하기 위해 기본이 되는 환경 설정 파일 docker image에서는 환경설정값을 주입해서 사용하는 것도 가능 5.1.1 Cluster 영역 cluster.name: 클러스터 이름 5.1.2 Node 영역 node.name: 노드 이름 변경하려면 노드를 재시작 해야한다. node.attr.rack: r1 사용자 정의된 rack 값을 통해 HA 구성과 같이 샤드를 분배할 수 있는 기능 5.1.3 Path 영역 path.data: /var/lib/elasticsearch 노드가 가지고 있을 문서들을 저장할 경로 설정 (세그먼트 파일위치) 여러 개의 경로를 설정할 수 있음 path.logs: /var/log/elasticsearch ..
4.1 클러스터와 노드의 개념 클러스터: ElasticSearch 프로세스들을 논리적으로 결합하여 하나의 ElasticSearch 프로세스처럼 사용할 수 있게 해주는 기술 name: 노드의 이름 cluster_name: 클러스터의 이름 cluster_uuid: 클러스터의 UUID. 클러스터의 속한 모든 노드가 동일 값을 갖는다. 노드: 하나하나의 ElasticSearch 프로세스 마스터: 클러스터의 메타데이터 관리. 마스터 노드는 클러스터에서 한 대이다. 마스터 노드의 역할을 할 수 있는 노드가 있지만 실제 마스터 노드는 한 대이다. 데이터: 사용자의 문서를 저장 인제스트: 사용자의 문서가 저장되기 전 문서 내용을 사전처리 코디네이트: 사용자의 요청을 데이터 노드로 전달하고, 데이터 노드로부터 결과를 취..
2.1 문서 색인과 조회 ElasticSearch API 구조 ${url}/${인덱스이름}/${타입이름}/${ID} 색인 요청 과정 인덱스 생성 타입 생성 스키마 생성 문서 ID 검사 신규 색인 기존 문서 업데이트 문서생성 curl --location --request POST 'http://localhost:9200/user/_doc/1?pretty' \ --header 'Content-Type: application/json' \ --data-raw '{ "username" : "gwkim" }' # 응답 { "_index": "user", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 1, ..
1.1 ElasticSearch란 루씬 기반의 오픈 소스 검색 엔진 JSON 기반의 문서를 저장/검색/분석 준실시간 검색 엔진 문서를 메모리에 저장 refresh_interval 시간에 따라 Shard에 문서를 저장 클러스터 구성 프라이머리/레플리카 샤드 메시 형태기 떄문에 어떤 노드에서든 색인/검색 처리가능 스키마리스 Rest API Docker로 ElasticSearch 구성하기 version: '2.2' services: my-es: image: docker.elastic.co/elasticsearch/elasticsearch:8.3.3 container_name: my-es environment: - node.name=my-es-node - cluster.name=my-es-cluster - di..
13.1 보안 용어 이해 인증: 사용자가 누구인지 확인하는 단계 인가: 사용자가 애플리케이션 내부의 리소스에 접근할 권한이 있는지 확인하는 단계 접근주체: 애플리케이션의 기능을 사용하는 주체 13.3 스프링 시큐리티의 동작 구조 스프링 시큐리티는 서블릿 필터 기반으로 동작 DelegatingFilterProxy 서블릿 컨테이너의 생명주기와 스프링 애플리케이션 컨텍스트 사이에서 다리 역할을 수행하는 필터 구현체 표준 서블릿 필터를 구현하고 있고 필터체인 프록시를 내부에 가지고 있음 필터체인 프록시 스프링 시큐리티에서 제공하는 필터 보안 필터체인을 통해 많은 보안 필터들을 사용할 수 있음 ex) CorsFilter, CsrfFilter, UsernamePasswordAuthenticationFilter 예전..
12.1 RestTemplate 최신 스프링 부트 버전에서는 Deprecated 되었다. WebClient를 사용해서 서버 간 통신을 구현해야 한다. 12.3 WebClient Spring WebFlux에서 HTTP 요청을 수행하는 클라이언트 논블로킹 I/O 지원 리액티브 스트림의 백 프레셔를 지원 적은 하드웨어 리소스로 동시성을 지원 함수형 API 지원 동기, 비동기 상호작용 지원 스트리밍 지원 12.4 WebClient 사용하기 WebClient를 생성하는 방법 create() 메서드 builder() 메서드 Spring Cloud OpenFeign Netflix에서 개발된 Http client binder 인터페이스와 어노테이션 선언만으로 HTTP 요청을 구현할 수 있음 sping-cloud-sta..
10.1 일반적인 애플리케이션 유효성 검사의 문제점 계층별로 진행하는 유효성 검사는 관리하기 어려움 컨트롤러에서 한번? 서비스에서 한번? 중복 가능성이 있으며 어떤 검증 로직이 맞는 것인가… Bean Validation: DTO 같은 도메인 모델에서 어노테이션으로 검증을 수행 10.3 스프링 부트에서의 유효성 검사 spring-boot-starter-validation 스프링 부트의 유효성 검사 일반적으로 DTO 객체를 대상으로 유효성 검사를 수행하는 것이 일반적 유효성 검사하려는 DTO 객체를 받는 함수 인자 앞에 Valid 어노테이션을 명시하면 수행가능 유효성 검사에 실패하면 400 Error가 발생! 문자열 검증 Null NotNull NotEmpty NotBlank 최댓값/최솟값 검증 BigDec..