🧐 그라파나 (Grafana) 이전 글에서 간단히 언급했지만 다시 한 번 하도록 하겠습니다. 프로메테우스가 DB라고 한다면, 이 DB에 있는 데이터를 불러서 사용자가 보기 편하게 보여주는 대시보드가 필요합니다. 그라파나는 데이터를 그래프로 보여주는 툴입니다. 수 많은 그래프를 제공하고, 프로메테우스를 포함한 다양한 데이터소스를 지원합니다. 🧐 그라파나 설치 그라파나 설치 사이트(https://grafana.com/grafana/download)로 이동합니다. 여기서는 맥 OS 기준으로 설치를 진행하겠습니다. 위의 명령어를 복사합니다. 이후 그라파나를 설치할 (임의의)폴더로 이동한 뒤, 위의 명령어를 그대로 입력합니다. (설치하는데 시간이 좀 걸릴 수 있습니다) 그라파나를 설치할 폴더의 bin 폴더로 이동..
🧐 Volatile 자바에서 지원하는 volatile이라는 키워드는 다음과 같은 특성을 가집니다. volatile로 선언된 변수가 있는 코드는 최적화되지 않습니다. volatile 키워드는 변수를 'Main Memory에 저장하겠다'라고 명시하는 것입니다. 변수의 값을 Read할 때마다 CPU cache에 저장된 값이 아닌, Main Memory에서 읽는 것입니다. 🧐 사용하는 이유 volatile키워드의 사용 이유를 알기 위해서는 메모리 구조를 알아둘 필요가 있습니다. 🧐 메모리 구조 보통의 메모리 구조는 다음과 같습니다. CPU 내에는 성능 향상을 위해서 L1 Cache가 내장되어 있습니다. CPU 코어는 메모리에서 읽어온 값을 캐시에 저장하고, 캐시에서 값을 읽어서 작업합니다. 값을 읽어올 때 우선..
🧐 Collectors.toMap이 뭔가요? Stream을 사용하는 경우, 최종 연산으로 collect()를 사용하는 경우, Stream의 요소들을 수집하여 특정한 자료구조로 변환할 수 있습니다. 이때 Map으로 변환하기 위해서는 Collectors.toMap을 사용합니다. 흔히 사용하는 toMap은 다음과 같습니다. List strings = Arrays.asList("apple", "banana", "pear"); Map map = strings.stream() .collect(Collectors.toMap(String::length, Function.identity())); System.out.println(map); // 결과: {4=pear, 5=apple, 6=banana} 그러나 위 코드에는..
🧐 어려운 배포 배포는 참 어렵습니다. 저는 지금 정말 너무 어려워서 울 것 같아요. 하지만, 배포를 처음 해보는 모두가 다 저와 같은 감정일 것이라 생각합니다. 그래서 배포를 처음하는 제가, 이 글을 써가면서 자동 배포까지 진행하는 과정을 세세히 정리함으로써, 누군가에게 도움을 줄 수 있지 않을까 하는 생각으로 이렇게 정리를 하게 되었습니다. (무엇보다, 다른 블로그들이 너무 불친절하달까... 정말 아무것도 모르는 사람이 이걸 따라할 수 있다고..? 하는 생각이 들어서 제가 그냥 저를 위해서 정리를 하고 있네요..😭) 예상하는 목차는 다음과 같습니다. AWS 계정 만들기 ~ EC2 인스턴스 만들고 접속하기 (이번 글) 간단한 스프링 프로젝트 생성하고 깃허브에 올리기 -> EC2에서 손수 clone받아 ..
로마자 Α / α (알파) Β / β (베타) Γ / γ (감마) Δ / δ (델타) Ε / ε (엡실론) Ζ / ζ (제타) Η / η (에타) Θ / θ (쎄타) Ι / ι (요타) Κ / κ (카파) Λ / λ (람다) Μ / μ (뮤) Ν / ν (뉴) Ξ / ξ (크시) Ο / ο (오미크론) Π / π (파이, 피) Ρ / ρ (로우) Σ / σ (시그마) Τ / τ (타우) Υ / υ (윕실론) Φ / φ (휘) Χ / χ (키 또는 카이) Ψ / ψ (프시) Ω / ω (오메가) 수학기호 ± (플러스마이너스) × (곱하기) ÷ (나누기) √ (루트) 적분기호 : ∫, ∬, ∮ 미분기호 : ∂(편미분) ∴ (따라서, 그러므로) ∵ (왜냐하면) ≠ (같지앉다) ≒ (약, 근사값) ≤ (왼쪽이 ..