(전 순정 백엔드 개발자기 때문에 React는 못합니다. React 코드는 Chat GPT 시켜서 구현하였고, 대신 백엔드에 온 진심을 담하서 구현하였으니, 프론트 코드는 정말 그냥 테스트용으로만 참고해 주시면 감사하겠습니다.) OAuth의 개념에 대해서는 이미 많은 블로그들에서 다루고 있으므로 저는 이에 대해서는 따로 다루지 않겠습니다. 이 글에서는 (적어도 제가 살펴보았던) 대부분의 블로그에서 애매하게 설명되어있는 프론트엔드와 백엔드의 역할과, 실제로 어떻게 구현하는지를 집중적으로 다뤄보도록 하겠습니다. 또한 이 과정에서 단순히 구현하고 끝내는 것이 아니라 새로운 타사 플랫폼을 추가하는 과정도 간단하게 처리할 수 있도록 유연하고 확장 가능한 구조를 가져가는 코드를 작성해보도록 하겠습니다. 소스 코드는..
· 모니터링
🧐 그라파나 (Grafana) 이전 글에서 간단히 언급했지만 다시 한 번 하도록 하겠습니다. 프로메테우스가 DB라고 한다면, 이 DB에 있는 데이터를 불러서 사용자가 보기 편하게 보여주는 대시보드가 필요합니다. 그라파나는 데이터를 그래프로 보여주는 툴입니다. 수 많은 그래프를 제공하고, 프로메테우스를 포함한 다양한 데이터소스를 지원합니다. 🧐 그라파나 설치 그라파나 설치 사이트(https://grafana.com/grafana/download)로 이동합니다. 여기서는 맥 OS 기준으로 설치를 진행하겠습니다. 위의 명령어를 복사합니다. 이후 그라파나를 설치할 (임의의)폴더로 이동한 뒤, 위의 명령어를 그대로 입력합니다. (설치하는데 시간이 좀 걸릴 수 있습니다) 그라파나를 설치할 폴더의 bin 폴더로 이동..
· 논리회로
디지털 시스템의 논리 설계를 학습하기 위해 필요한 기본 수학은 부울 대수이다. 우리가 사용할 모든 스위칭 장치들은 기본적으로 2상태 장치이며 따라서 우리는 모든 변수가 두 값 중 하나만을 가지는 부울 대수의 특별한 경우를 강조할 것이다. 이렇게 두 값을 갖는 부울 대수는 종종 스위칭 대수라고 불린다. 부울 대수에서 사용되는 0과 1은 수치적인 값을 가지지 않는다. 대신 논리회로에서 두 개의 다른 상태를 표현하고, 스위칭 변수의 두 값을 나타낸다. 논리 게이트 회로에서, 0을 일반적으로 낮은 전압대를 표현하고, 1은 높은 전압대를 표현한다. 스위칭 회로에서 0은 일반적으로 열린 회로(normally open, NO)를 의미하고, 1은 닫힌 회로(normally close, NC)를 의미한다. 🧐 기본 연산..
· 기본
🧐 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} 그러나 위 코드에는..
· 기타
로마자 Α / α (알파) Β / β (베타) Γ / γ (감마) Δ / δ (델타) Ε / ε (엡실론) Ζ / ζ (제타) Η / η (에타) Θ / θ (쎄타) Ι / ι (요타) Κ / κ (카파) Λ / λ (람다) Μ / μ (뮤) Ν / ν (뉴) Ξ / ξ (크시) Ο / ο (오미크론) Π / π (파이, 피) Ρ / ρ (로우) Σ / σ (시그마) Τ / τ (타우) Υ / υ (윕실론) Φ / φ (휘) Χ / χ (키 또는 카이) Ψ / ψ (프시) Ω / ω (오메가) 수학기호 ± (플러스마이너스) × (곱하기) ÷ (나누기) √ (루트) 적분기호 : ∫, ∬, ∮ 미분기호 : ∂(편미분) ∴ (따라서, 그러므로) ∵ (왜냐하면) ≠ (같지앉다) ≒ (약, 근사값) ≤ (왼쪽이 ..
말 랑
Shin._.Mallang