Builder Pattern
# 빌더패턴 (Builder pattern)빌더패턴은 immutable 클래스를 만드는 방법중의 하나로 작성하기 쉽고 읽기도 쉬운 좋은 코드를 만들 수 있습니다. 그런 이유로 많은 프레임웍이나 라이브러리들이 빌더 패턴으로 객체를 생성하는 방법을 제공합니다. 필요한 객체를 직접 생성하는 대신 빌더 객체를 먼저 만들고, 필요한 설정 메서드들을 호출하여 선택적
# 빌더패턴 (Builder pattern)빌더패턴은 immutable 클래스를 만드는 방법중의 하나로 작성하기 쉽고 읽기도 쉬운 좋은 코드를 만들 수 있습니다. 그런 이유로 많은 프레임웍이나 라이브러리들이 빌더 패턴으로 객체를 생성하는 방법을 제공합니다. 필요한 객체를 직접 생성하는 대신 빌더 객체를 먼저 만들고, 필요한 설정 메서드들을 호출하여 선택적
# Serialization직렬화 (Serialization)으로 검색해서 나온 정보들은 종합해 보면 대부분 같습니다. 직렬화란 오브젝트를 데이터스트림에 쓰기 위해 연속적인(serial) 바이트로 변환 하는것을 말한다. Java에서 직렬화가 가능한 것은 원시타입 객체 Serializable 인터페이스를 implements 한 오브젝트 Serializa
# Redis Persistence modeRedis는 데이터를 메모리에 올려놓고 쓰기 때문에 Redis가 down되면서 데이터가 날아가는 것을 방지 하기 위해 두가지의 persistence 모드를 제공 합니다. RDB AOF 1. RDBRDB persistence는 point-in-time snapshot을 사용자가 지정한 inverval 마다 찍어서
# ElasticSearch Shard Initialize fail 시 강제로 locate 시키는 방법어떤 이유에선지 shard의 initialize가 실패하고 unassigned shard상태로 남아있다면 강제로 특정 노드로 옮겨줘야 할 필요가 있습니다. 12345678910111213POST _cluster/reroute{ "com
# 권장 메모리 할당량ES의 힙 사이즈는 전체 서버가 가진 메모리의 반을 설정하는 것을 권장하고, 64GB 이상의 메모리를 가지고 있는 서버라고 할지라도 30.5GB 이상을 ES에 할당하는것은 권장하지 않습니다. 예를들어 32GB의 메모리를 가진 서버라면 ES에 16GB 할당. 64GB의 메모리를 가진 서버라면 ES에 30.5GB 할당.128GB의 메모리
# 클러스터에서 노드가 제외되는 현상ElasticSearch 에서는 Fault Detection을 위해 master->nodes, nodes->master 양방향으로 주기적으로 ping을 날립니다.아무 설정을 하지 않았다면 1초마다 ping을 날리고, 30초 동안 응답이 없으면 3번 재시도 후 최종적으로 fault라고 단정짓고 해당 노드를 클러
java7부터 AutoCloseable 인터페이스를 구현한 클래스라면 try-catch-finally 구조에서 지저분하게 finally 블럭에 close()를 명시적으로 호출 하지 않아도 자동으로 close 시켜주는 쿨한 feature를 제공합니다. 하지만 옛날에 자바를 배워서 쭉 코딩은 해왔지만 새로운 코딩스타일을 선호 하지 않는 분들은 아래와 같이 코딩
bulk indexing을 하고 있거나 검색을 heavy 하게 날리고 있을때 클러스터 헬스는 그린으로 멀쩡한거 하지만 뭔가 퍼포먼스가 너무 떨어지는 느낌이 들때가 있습니다.클러스터 로그를 살펴봐도 별다른점을 못찾겠고 어디서 부터 살펴봐야 할지 난감한데요 이럴 때 참고하면 좋은 몇가지 api들을 소개하겠습니다. # 1. pending task 확인1curl
# String pool 의 개념String은 자바 개발자라면 굉장히 자주 쓰게 되는 자료형 일 것 입니다.오늘 책을 보다가 String pool 이라는 단어를 접했는데 여태까지 자바가 내부 적으로 String을 이렇게 처리하고 있는지 몰랐다는게 부끄러워 져서 정리 하는 포스트 입니다. 이미 모두가 잘 알고 있듯이 자바에서 String 객체의 값은 변경할