Home
Coding blog
Cancel

EC2로 Elastisearch Cluster 설정하기

I. Elasticsearch 설치하기 Amazozn linux 2 기준으로 설치 Elasticsearch가 jvm위에서 실행되기 때문에 자바를 먼저 설치해줘야함 sudo yum update sudo yum install -y java-11-amazon-corretto yum repository에 Elasticsearch 추가해...

Spring boot jdbc logging 편리하게 하기

I. JDBC SQL문 깔끔하게 프린팅되도록 만들기 Spring boot에서 JDBC를 이용한 서비스를 개발하다보면 SQL을 확인해야할 때가 있다 spring-data-jdbc의 경우 로깅을 제대로 지원하지 않기 때문에 방법을 찾다가 좋은 라이브러리를 발견 기존 hibernate로 로깅하는 방식의 경우 보내는 쿼리가 깔끔하게 출력되지 않...

JPA 기본개념

I. JPA 등장 배경 OOP <-> RDB 간의 패러다임 불일치 객체지향적으로 모델링할수록 지저분해지는 코드 상속과 객체간의 의존성을 구현하기 어려움 객체가 연결되어있는 경우 해당 객체를 DB에 넣기 위해 INSERT문을 연결된 개수만큼 조회의 경우 연결이 늘어날수록 JOIN의 경우의 수가 기하급...

Elastic search basic concepts

입사초기에 정리했던 내용 I. 검색 엔진 작동 방식 Crawler가 웹에 있는 웹페이지들을 방문하여 해당 페이지 내 + 링크된 페이지 + 링크된 페이지의 페이지 + 링크된 페이지의 페이지의 …. 의 모든 내용을 읽어와서 가공 후 저장 Webpage를 저장하는 DB에 저장 페이지 내용, 중요도 등을 기준으로 가공...

Running ubuntu terminal on windows

I. 윈도우에서 Terminal 사용하기 Linux feature 허용하기 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 기능 설치 dism.exe /online /enable-feature /feature...

Do's and Don'ts: Avoiding First-Time Reactive Programmer Mines 강의 노트

최근 Webflux로 개발하면서 가장 크게 와닿았던 강의였다. 특히 Blocking과 Resiliency 부분이 가장 좋았던 것 같다 I. [Do’s] Learn functional programming Functional Progrmaming을 배우기 위해 Haskell을 배울 필요는 없지만 기본적인 함수형 프로그래밍의 지식을 쌓아라 I...

Spring Boot Profile 설정

I. 표현의 한계로 .properties보다 .yml을 더 많이 사용하는 추세 II. Application.yml에서 Profile 분리하기 --- 으로 분리 server: port: 80 --- spring: profiles: dev server: port: 8080 --- spring: profiles: stage server:...

토비의 봄 8회 스프링 리액티브 프로그래밍 (4) 자바와 스프링의 비동기 기술 강의 노트

I. Intro RxJava가 스프링에서 어떻게 구현되었는지 알아보자 II. FutureTask 이용하기 기존 Java에선 다른 Thread에서 비동기 처리를 위해 ThreadPool을 지원함 => ExecutorService Future는 JS에서 Promise처럼 아직 값이 들어있진 않지만 get을 부를 경우 비동기로 실...

AWS RDS failover

I. 자고 일어나니 개발서버 Master DB가 내려갔었다 원인은 분석해봐야겠지만 내려간 시간대에 트래픽이 급증한 것으로 봐선 Batch 작업 때문인 것 같다. II. RDS의 Failover 매커니즘 Master(Read / Write) - Replica(Read Only) 구조를 가지고 있다 Master가 내려간 경우 Read만 처...

AWS에서 ELK + APM세팅하기

I. Instance 준비 Log와 apm metric 정보의 양이 많기 때문에 m5d.large를 사용할 예정 보안을 위해서 Securitygroup은 일반 사용자에게는 80 로그와 apm 정보를 받을 서버에는 elasticsearch와 logstash port를 열어두기 docker 설치 ...