안녕하세요. 코딩 신생아 입니다.오늘은 Grafana + Loki + Prometheus로 모니터링 서버 구축을 해보았는데요. 해당 부분들을 어떻게 구축했는지 써보려 합니다. Grafana , Loki , Prometheus Grafana, Loki, Prometheus 란?Prometheus : 모니터링 및 경고 툴킷으로, metrics형태로 데이터를 제공한다.Loki(from promtail) : promtail로 로그 데이터를 파일 형태로 수집하여 관리하고, 이를 받은 Loki가 로그 데이터를 집계하여 제공한다.Grafana : 데이터를 시각화하는 툴로, Prometheus, Loki 등에서 수집한 데이터를 시각화한다.Prometheus, Loki는 데이터 수집, Grafana는 데이터 시각화로..
안녕하세요. 코딩 신생아 입니다. 최근 정보를 자동 업로드화하는 알고리즘을 짜는 중, 커넥션 풀 개수를 고려하게 되어, 이에 대해 찾아보았습니다. 해당 과정중 데이터베이스 커넥션 풀 관련 재미있는 글을 읽게 되어 최적의 커넥션 개수와 메모리는 성능 테스트를 통해 찾아낸다는 부분을 보고 이를 판단하는 "최적의 커넥션 풀 크기" 실험을 해보려고 합니다.데이터베이스 커넥션 우선 데이터베이스 커넥션 풀에 대해 알아보기 이전에 데이터 베이스 커넥션이 무엇인지 알아보자.데이터베이스 연결의 생애주기는 아래와 같다.데이터베이스 드라이버를 사용해 데이터베이스 연결데이터 읽기/쓰기를 위한 TCP소켓 열기소켓을 통한 데이터 읽기/쓰기연결 종료소켓 닫기데이터베이스를 연결하고, 해제하는 과정은 비용이 많이 들어가므로 반복하지..
소스코드와 명령어저급언어, 고급언어'사람을 위한 언어'를 고급언어, '컴퓨터가 직접 이해하고 실행할 수 있는 언어'를 저급언어라고 한다. 그래서 고급 언어로 작성된 소스 코드가 실행되려면 반드시 저급언어, 즉 명령어로 변환되어야 한다.저급언어에는 두 가지 종류가 있다. 기계어0 과 1의 명령어 비트로 이루어진 언어이다. 가독성을 위해 십육진수로 표현하기도 한다.어셈블리어0과 1로 표현된 명령어를 읽기 편한 형태로 번역한 언어이다.컴파일 언어와 인터프리터 언어개발자들이 고급 언어로 작성한 소스코드는 두 가지 방식으로, 컴파일러와 인터프리터로 인해 저급언어로 변환된다.컴파일 언어컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어이다. (예 : c)컴파일이 성공적으로 수행되면 컴파일러를..
🗒️ 문제 : 백준 1300 k번째 수📎 분류 : binary search2차원 배열의 값들은 i * j이다.1차원 배열의 값은 2차원 배열을 오름차순으로 정렬한 것이다.2차원 배열과 1차원 배열의 인덱스는 1부터 시작한다.2차원 배열을 만들게 되면 N의 크기가 커서 시간초과 발생접근 방식3x3 2차원 배열의 경우{{1,2,3},{2,4,6},{3,6,9}}B[6] 은 얼마일까? B[] = {1,2,2,3,3,4,6,6,9} 이므로, 4 이다.이는 2차원 배열을 1차원 배열로 늘여뜨려놓은 걸 수도 있지만,1단 2단 3단1 2 32 4 63 6 9각 단에서 4보다 작은 수의 개수를 다 더한 값과 같다.단이 i부터 n까지면,min ( 4/1 , 3 ) + 4/ 2 +..
🗒️ 문제 : 백준 2343 블루레이 만들기📎 분류 : binary search예시)강의는 총 9개이고, 블루레이는 총 3개 가지고 있다.1번 블루레이에 1, 2, 3, 4, 5, 2번 블루레이에 6, 7, 3번 블루레이에 8, 9 를 넣으면 각 블루레이의 크기는 15, 13, 17이 된다. 블루레이의 크기는 모두 같아야 하기 때문에, 블루레이의 크기는 17이 된다. 17보다 더 작은 크기를 가지는 블루레이를 만들 수 없다.접근방식이 문제는 블루레이 하나의 최대 크기를 이진 탐색으로 찾는 문제이다.low = 강의 중 가장 긴 강의 시간 (블루레이 최소 크기)high = 모든 강의 시간을 합한 값 (블루레이 최대 크기)이진 탐색을 통해, **블루레이 하나당 최대 크기(mid)**를 정하고, 그 크기(m..
🗒️ 문제 : 백준 1167 트리의 지름📎 분류 : Tree, Dfs 트리(tree)는 사이클이 없는 무방향 그래프이다. 트리에서 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재한다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 꽉 당길때 가장 길게 늘어나는 경우, 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다.트리의 지름이란, 트리 상에서 가장 먼 거리를 가지는 두 정점 사이의 경로이다. 트리의 지름은 다음과 같은 순서로 구할 수 있는데,dfs를 통해 임의의 정점(x)로부터 가장 먼 정점(y)를 구한다.dfs를 통해 구해진 (y)정점으로부터 가장 먼 정점(z)를 구한다.(y)정점과 (z)정점을 잇는 경로가 트리의 지름이 된다.증명dfs를 2번만 진행하면..