Spring

1. LokiLoki 는 Grafana Labs 에서 개발한 수평 확장 가능한 로그 집계 시스템이다. Grafana와 쉽게 연동 되고, Prometheus, K8s와 궁합이 잘 맞는다.Elasticsearch과 비교하면, 성능과 제공하는 기능 측면에서 부족하긴 하지만, 시스템 상황을 확인하는 데는 가성비 있는 도구이다. 2. Spring 프로젝트 설정 build.gradledependencies { implementation 'com.github.loki4j:loki-logback-appender:1.5.1' //추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' im..
1. DNS 조회브라우저는 먼저 DNS(Domain Name System) 서버에 www.google.com 의 IP 주소를 요청한다. 이 과정에서 브라우저 캐시를 먼저 확인하고, 운영체제의 호스트 파일을 확인한다. 그리고 나서 ISP의 DNS 서버에 질의하게 된다.  2. TCP 연결 수립IP 주소를 얻은 후, 브라우저는 해당 IP 주소로 TCP 연결을 시도한다. 이 과정에서 3-way handshake가 이뤄진다. 클라이언트가 SYN 패킷을 보낸다.서버가 SYN_ACK 로 응답한다.클라이언트가 ACK를 보내 연결을 확립한다. 3. HTTP 요청 전송 TCP 연결이 수립되면, 브라우저는 HTTP GET 요청을 서버로 전송한다.이 요청에는 다음과 같은 정보가 포함된다. 요청 메서드 (GET)요청 경로 (..
1. 대표적인 장애 상황 CPU 사용량이 과도하게 많아질 때JVM 메모리가 과도하게 많아질 때데이터베이스 연결(Database Connection)이 과도하게 많아질 때에러 로그가 갑자기 치솟을 때 2. CPU 사용량 시뮬레이션package com.monitor.sample;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.sql.DataSource;i..
1. 대시보드 템플릿 지난 블로그 글에서는 직접 대시보드를 만들어봤다.직접 대시보드를 만들어서 모니터링해도 되지만,누군가가 미리 만들어 놓은 대시보드를 사용하는 게 훨씬 효율적이다. 아래 사이트에 접속하면 이미 만들어져 있는 대시보드를 확인할 수 있다.  https://grafana.com/grafana/dashboards Grafana dashboards | Grafana LabsNo results found. Please clear one or more filters.grafana.com  2. 대시보드 템플릿 import 하기 사용하고자 하는 템플릿의 ID를 copy 하거나 기억해둔 다음 import하면 끝이다.  ID를 넣고 Load를 클릭한 다음, 데이터 소스를 프로메테우스 로 지정해주면 된다...
1. Connection Pool 이란? 애플리케이션이 데이터베이스와 통신을 하기 위해서는 Database Connection(데이터베이스 연결)이 필요하다. 데이터베이스 연결 수명 주기는 아래와 같다.  데이터베이스 드라이버를 사용하여 데이터베이스에 연결하기데이터 읽기 / 쓰기를 위한 TCP 소켓 열기소켓을 통한 데이터 읽기 / 쓰기연결 종료소켓 닫기  데이터베이스 연결은 상당히 비용이 많이 드는 작업이다.따라서, 가능하면 데이터베이스 연결을 최소한으로 줄여야 한다. 커넥션 풀은 애플리케이션 서버가 시작될 때 미리 일정 수의 데이터베이스 연결을 생성하고,이를 Pool에 보관하는 기술이다. 이렇게 미리 생성된 연결들은 클라이언트의 요청이 있을 때 재사용된다. 1 - 1. 동작 방식 애플리케이션 서버 시작..
1. Grafana Your observability stack, faster and easier 2. Grafana는 무엇인가?  그라파나는 프로메테우스를 통해 수집한 메트릭을 보여주는 도구이다.spring actuator가 측정한 메트릭을 프로메테우스가 저장하고 그것을 그라파나가 시각화하는 것이다. 3. Grafana 설치설치는 1. 로컬에 직접 설치, 2. 도커로 설치가 있는데,나는 도커로 설치했다. docker run -d --name=grafana -p 3000:3000 grafana/grafana 기본 포트가 3000번이다. 4. Grafana Web UI localhost:3000 번으로 접근하면 로그인 창이 뜬다. username: adminpassword: admin로그인 해준다.pass..
1. PrometheusFrom metrics to insightPower your metrics and alerting with the leadingopen-source monitoring solution. 메트릭으로부터 인사이트를 얻으라.Prometheus는 오픈소스다.https://prometheus.io/ Prometheus - Monitoring system & time series databaseAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.prometheus.io 2. 메트릭..
· JPA
1. @ColumnDefault만 붙이면 자동으로 default 값이 저장될 줄 알았다고요 User라는 엔티티가 있다. 기본적인 필드들이 있다. package com.spring.dozen.auth.domain.entity;import com.spring.dozen.auth.domain.enums.Role;import jakarta.persistence.*;import lombok.*;import org.hibernate.annotations.ColumnDefault;@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructor(access = AccessLevel.PRIVATE)@Builder(access = AccessLeve..
Griotold
'Spring' 태그의 글 목록