개발일기 122

Grafana와 Prometheus 연동하기

Spring -> Prometheus-> grafana를 실행시킨뒤 grafana로 접속해주자 (http://localhost:3000) 이후 왼쪽 메뉴에서 connections>Add new connection으로 가서 Prometheus를 선택하자다음 페이지에서 오른쪽 상단 add new data source를 클릭connection에 Prometheus가 실행되는 서버를 입력한뒤 하단에 Save&Test를 클릭하여 연결이되었는지 확인해주면 된다.Dashboards에서 Add visuallzaion을 추가해주면 모니터링이 가능해진다.하단에 쿼리문을 사용하여 서버를 테스트 할 수있다.이후 https://grafana.com/grafana/dashboards/ 에서 원하는 대쉬보드를 다운받아서 사용할수있..

개발일기/Server 2024.12.19

Spring boot 에 Prometheus 연동하기

필자는 IntelliJ를 사용하여 Spring boot와 Prometheus를 연동하려고한다.관련 글을 조사해보니 application.yml을 수정하거나 혹은 Prometheus에서 Spring boot를 직접 생성하여 작업을 진행하는 글을 보았으나, 나는 이미 만들어진 SpringBoot에 Prometheus를 적용하려고한다.yml말고 application.properties를 수정하는 방향을 채택했다.또한 Gradle에 Prometheus의 의존성을 추가해줘야한다.해당 내용은 다음과 같다.//prometheus 의존성 추가 runtimeOnly 'io.micrometer:micrometer-registry-prometheus' // 마이크로미터 프로메테우스 구현체 implementatio..

개발일기/Server 2024.12.19

grafana 설치 (windows)

grafana 홈페이지 가서 다운로드 하고 설치를 진행한다. Download Grafana | Grafana LabsOverview of how to download and install different versions of Grafana on different operating systems.grafana.com이후 http://localhost:3000 로 접속한다.첫 로그인시 ID/PassWord는 admin으로 로그인한다. 이후 로그인하게되면 비밀번호를 변경해준다.이렇게되면 그라파나 설치는 완료되었다.참조 [Grafana] 그라파나 설치 방법 (Window)1. 아래의 링크로 접속해 그라파나 다운로드 페이지로 이동한다. Download Grafana | Grafana Labs Overview o..

개발일기/Server 2024.12.18

Prometheus 설치 (windows)

Prometheus 파일 다운로드 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.prometheus.io 해당 페이지에 들어가서 windows버전을 다운로드 받은뒤 압축을 풀게되면다음과 같이 파일들이 있는데, yml을 열어 모니터링 할 서비스를 연결해주면 된다.하단에 내용을 아래와 같이 추가해주면된다.scrape_configs: # The job name is added as a label `job=` to any timeseries scraped ..

개발일기/Server 2024.12.18

Scanner 차이 BufferedReader

문제 [백준] 빠른 A+B 를 마주하기전까지 필자는 항상 java에서 입출력 을 받을때 Scanner를 사용하여 푸는 습관이있었다.백준 빠른 A+B을 만나기 전까지 BufferedReader 와 BufferedWriter에 대해 알지도 못했는데관련하여 정리해보려고한다.왜 Scanner는 컴파일 시간이 오래 걸릴까?자바에서 입출력을 받을 때 자연스럽게 Scanner를 사용해왔다. 하지만 [백준] 빠른 A+B 문제를 만나면서 BufferedReader와 BufferedWriter의 존재를 알게 되었다.그래서 이번 기회에 Scanner와 BufferedReader의 차이점을 정리하고, 왜 Scanner를 사용하면 컴파일 시간이 오래 걸리는지 알아보려고 한다.Scanner의 동작 방식Scanner는 다음과 같은..

자료구조 정리

주요 자료구조 정리컬렉션 프레임워크ListSetMapArrayListHashSetHashMapLinkedListTreeSetHashTableVector TreeMapList 인터페이스순서가 있는 데이터의 집합중복 허용주요 구현 클래스 - ArrayList, LinkedListArrayList동적 배열구조인덱스로 빠른 접근 가능삽입/삭제 시 요소 이동 필요LinkedList이중 연결 리스트 구조삽입/삭제가 빠름순차 접근만 가능Vector크기가 가변적인 배열구조동기화되어 있어 thread-safe함 (thread-safe한 구현이 필요한경우에만 사용하는것을 권장 이외 경우엔 ArrayList 사용)ArrayList와 유사하지만, Vector는 레거시 클래스로 간주Set 인터페이스순서 없는 데이터의 집합중복 ..

Junit5, Mockito 사용하기

Junit5 란?-  java 에서 독립된 단위 테스트를 지원해주는 프레임워크 / java 8버전 이상- Junit 5 = Junit platform(테스트 실행환경)               + Junit jupiter(프레임워크)               + Junit vintage(Junit4와 하위 호환을 제공하기 위한 모듈)단위테스트란?- 소프트웨어 개발에서 개별적 코드단위를 테스트하는 것을 의미함 ( 클래스 , 메서드 , 함수 등등 과같은 작은 단위)- 컨트롤러단이나 서비스단과 같은 구성요소는 각각 개별적인 단위로 테스트 될 수 있다. Junit5  주요 어노테이션@Test - 테스트 메서드를 정의하는데 사용되는 어노테이션@ParameterizedTest - 매개변수화된 테스트를 정의하는데 사..

Spring Security 동작 과정

나는 Spring Security동작과정 이해하고 기억하기위해  놀이동산과 티켓, 그리고 검수원으로 생각을 하게되었고 다음과 같이 외웠다.Spring Security 동작 과정 요약(실생활 예시):HTTP 요청 수신 → Spring Security 필터 체인으로 요청 전달. 놀이동산 입장 시도 → 입구에서 고객이 입장할수 있는지 확인해야함(티켓확인)필터 체인 처리 → 인증 필터가 요청을 가로채 인증 여부 확인.입구에서 티켓을 확인하는 과정 →  유요한 티켓을 가지고있는지 확인 Authentication Manager → 인증 관리자 호출, 사용자 정보 확인.티켓 검표원 호출 → 검표원이 고객의 티켓이 유효한지 확인(시스템에 기록된것과 일치하는지)UserDetailsService → 데이터베이스에서 사용자..

HTTPS 란?

HTTPS 란?HTTP에 SSL/TLS(보안 소켓 계층/ 전송 계층 보안)를 결합하여 안전하게 데이터를 전송하며 데이터가 암호화되어 전송되며, 서버와 클라이언트 간의 통신이 보안이 적용되어 HTTPS로 표기되는 것HTTPS가 작동되는 과정SSL/TLS HandshakeClient Hello - 클라이언트가 서버에 접속 요청을 보내며, 이 때 클라이언트는 사용할 수 있는 암호화 방식과 SSL/TLS 버전을 서버에 전달Server Hello - 서버는 클라이언트의 요청을 수락하고, 사용할 암호화 방식과 SSL/TLS버전을 선택한 뒤, 인증서를 클라이언트에 전달(인증서에는 서버의 공개 키가 포함되어있음)서버 인증서 검증클라이언트는 서버의 인증서 검증 - 클라이언트는 서버가 보낸 SSL/TLS 인증서를 확인한다..

공간 복잡도란?

공간 복잡도: 알고리즘의 메모리 사용을 이해하기공간 복잡도는 알고리즘이 실행되는 동안 사용하는 메모리 양을 측정하는 개념이다.이는 알고리즘의 효율성을 평가하는 중요한 척도 중 하나로, 특히 대규모 데이터를 처리하거나 메모리가 제한된 환경에서 중요하다.공간 복잡도에 영향을 미치는 요소변수자료 구조(Data structure)함수 호출(Function call)할당(Allocation)공간 복잡도의 주요 특징입력 크기에 따른 측정공간 복잡도는 일반적으로 입력 데이터의 크기(n)에 따라 표현됨빅오 표기법 사용O(1), O(n), O(n^2) 등의 표기법으로 나타냄시간 복잡도와의 관계때로는 추가 메모리를 사용하여 실행 시간을 단축할 수 있다고정 공간과 가변 공간알고리즘이 사용하는 메모리를 고정 공간(입력 크기와..