안녕하세요. 이번 주제는 postgresql의 upsert를 구현해보는 포스팅입니다. 흔히 jpa를 쓸때 save() 메소드는 없으면 insert, 있으면 update를 한다고 알고 있는데요. JPA는 대략 아래처럼 SimpleJpaRepository에 구현되어 있습니다. @Transactional @Override public S save(S entity) { Assert.notNull(entity, "Entity must not be null."); if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); } } entity 정보가 isNew에 참이면 persist ..
안녕하세요. 이번 포스팅에서는 키바나를 백그라운드로 실행하는 방법에 대해서 알아보겠습니다. 우선 키바나를 실행시키기 위한 명령어는 bin 디렉토리 안에 있는 kibana 파일을 실행해주면 됩니다. 하지만 이는 현재 접속중인 세션이 끊어지게 된다면 해당 어플리케이션도 종료가 되게 되는데요. 이것 때문에 어플리케이션을 백그라운드로 실행하는 것이 필요합니다. 우선 키바나가 백그라운드로 실행되기 위해서는 여러가지 방법이 존재하는데요. https://www.elastic.co/guide/en/kibana/master/start-stop.html Start and stop Kibana | Kibana Guide [master] | Elastic Start and stop Kibanaedit The method fo..
안녕하세요. 이번 포스팅에서는 PM2를 설치하여 Node.js를 백그라운드로 실행하는 방법을 확인해보겠습니다. 현재 저는 kibana 관련 작업중이고요. node.js로 실행할 수 있는 kibana를 백그라운드로 실행하기 위해서 키바나 버전과 호환되는 node를 설치하였고 이를 백에서 실행할 수 있도록 PM2를 설치하고자 합니다. 우선 PM2 메인 홈페이지로 이동해주세요. https://pm2.keymetrics.io/ PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2..
안녕하세요. node js 버전을 관리하는 nvm 을 설치해보겠습니다. nvm은 Node Version Management의 약자로 깃허브 주소는 아래에 있습니다. https://github.com/nvm-sh/nvm GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash ..
안녕하세요. 지난 시간까지 아래의 목차처럼 진행을 했었는데요. - 엘라스틱서치 설치하기 - 엘라스틱서치 환경설정(Bootstrap Checks) - 엘라스틱서치 클러스터 구성하기 - 엘라스틱서치 클러스터 내 노드 통신에 TLS 적용(Elasticsearch security) - 엘라스틱서치 시스템 유저 비밀번호 설정하기.(elasticsearch-setup-passwords) 이번엔 엘라스틱서치를 시각화 할 수 있는 키바나를 설치해보겠습니다. 우선 위의 목차에서 엘라스틱서치 노드 3개를 클러스터링하여 구성하였고 1번 노드만이 클라이언트와의 통신을 위해 9200 포트를 오픈해놓았습니다. 이번에는 3번 노드에 키바나를 설치해보고자 합니다. (아마 1번노드에 설치해도 되긴 할 것 같습니다. 메모리가 4G 이상..
안녕하세요. 지난 시간까지 엘라스틱서치를 생짜로 설치해보고 환경설정해보고 클러스터링과 클러스터링 통신간에 tls 를 적용해보았습니다. - 엘라스틱서치 설치하기 - 엘라스틱서치 환경설정(Bootstrap Checks) - 엘라스틱서치 클러스터 구성하기 - 엘라스틱서치 클러스터 내 노드 통신에 TLS 적용(Elasticsearch security) 이번에는 401 때문에 요청할 수 없는 현재상황에 엘라스틱서치 시스템 유저를 설정하여 클러스터링 현황을 확인해보겠습니다. 현재 필자는 이전 TSL 포스팅에 바로 이어서 작성하고 있기 때문에 TLS가 적용된 상태로 1, 2, 3번 노드가 모두 활성화되어있는 상태입니다. 이 점을 동일시 맞춰놓으시고 진행하시면 어렵지 않게 따라오실 수 있으실 겁니다. 먼저 엘라스틱서치..
안녕하세요! 지난시간까지 아래와 같은 목차로 진행을 했었습니다. - 엘라스틱서치 설치하기 - 엘라스틱서치 환경설정(Bootstrap Checks) - 엘라스틱서치 클러스터 구성하기 현재 엘라스틱서치 3개의 노드서버간의 클러스터 구성이 완료된 상태로 마무리가 되었을텐데요. 지금까지는 사실 누구나 엘라스틱서치에 접근해서 도큐먼트를 건드리고 인덱스를 추가하고 삭제하는 등의 제한이 따로 없습니다. 그로인해서 보안처리가 필요할텐데요. 노드간 통신에 TLS를 적용하여 보다 안전하게 엘라스틱서치 환경을 구성하도록 진행해보겠습니다. 위에서 말씀드렸다시피 현재의 클러스터 구성은 누구나 9200 포트로 접근하여 엘라스틱서치에 접근할 수 있습니다. 이는 엘라스틱 자체에서 BASIC으로 동작하여 보안처리가 적용되지 않았기 때..
안녕하세요. 지난 포스팅에서는 엘라스틱서치를 설치하고 환경설정하여 Bootstrap Checks 까지 넘어가보는 예제를 구성해보았는데요. - 엘라스틱서치 설치하기 - 엘라스틱서치 환경설정(Bootstrap Checks) 이번 포스팅에서는 구성한 Bootstrap Checks를 통과한 하나의 노드서버를 기준으로 2개의 노드서버를 추가하여 노드 클러스터링을 진행해보겠습니다. 우선 1번 노드를 https://sas-study.tistory.com/494 [GCP] VM 인스턴스 이미지 만들기(머신 복제) 안녕하세요. 오늘은 VM 인스턴스의 머신 이미지를 복사하여 같은 환경의 VM 인스턴스를 만드는 과정을 공유하고자 합니다. 우선 제가 이 행위에 대해서 왜 하고 왜 필요한지에 대해서 먼저 설명 sas-study..