2025/04 28

Grafana

Grafana란 무엇인가Grafana는 오픈소스 기반의 데이터 시각화 및 모니터링 도구임.서버, 애플리케이션, 인프라 등 다양한 시스템에서 수집된 데이터를 연결하여 실시간으로 시각화하고 모니터링하는 데 활용할 수 있음.Grafana는 데이터 수집 도구가 아니며, 수집된 데이터를 시각화하고 알림을 설정하는 역할을 함.1. Grafana의 주요 특징데이터 시각화다양한 지표를 그래프, 차트, 테이블 등 다양한 형태로 시각화할 수 있음.실시간 모니터링서버 상태, 애플리케이션 응답 속도, 네트워크 트래픽 등을 실시간으로 볼 수 있음.다양한 데이터 소스 연동Prometheus, InfluxDB, Elasticsearch, MySQL 등 여러 데이터 소스를 연동하여 사용 가능함.알림 기능설정된 임계치를 초과하는 경우..

Infra 2025.04.08

[Spring Boot] 소셜로그인

✅ 카카오 소셜 로그인 전체 흐름 정리 (프론트, 카카오, 백엔드, DB, 브라우저 사이 데이터 흐름 중심) ### 🔐 전제 세팅 정보 • 프론트 주소: http://localhost:3000 • 백엔드 주소: http://localhost:8080 • 카카오 로그인 Redirect URI: http://localhost:8080/login/oauth2/code/kakao • 프론트 최종 리디렉트 URI: http://localhost:3000/oauth/callback 💡 카카오 소셜 로그인 상세 흐름 ✅ 1. 프론트: 로그인 버튼 클릭// React 등 프론트 코드window.location.href = "http://localhost:8080/oauth2/authorization/kakao"; ..

프로시저

📌 프로시저(Stored Procedure)란? 프로시저(Stored Procedure) 는 SQL 문을 저장해 두고 필요할 때 호출하여 실행할 수 있는 데이터베이스 객체임. ✅ 프로시저의 주요 특징 • 재사용 가능 → 동일한 SQL 작업을 반복 실행할 때 유용 • 성능 최적화 → 서버에서 실행되므로 네트워크 트래픽 감소 • 비즈니스 로직 캡슐화 → SQL 로직을 하나의 프로시저로 묶어 관리 가능 • 입력(매개변수) & 출력(결과값) 가능 → IN, OUT, INOUT 파라미터 지원 📌 기본적인 프로시저 호출 흐름클라이언트 → CALL 프로시저명() → MySQL에서 SQL 실행 → 결과 반환  1️⃣ 프로시저의 기본 문법DELIMITER $$ -- 구분자 변경 (MySQL에서 여러 문장을 실행하기..

DB/MySQL 2025.04.06

MySQL 리플리케이션

📌 MySQL 리플리케이션(Replication)란? MySQL 리플리케이션(MySQL Replication) 은 하나의 MySQL 서버(Primary, Master)의 데이터를 다른 MySQL 서버(Replica, Slave)로 복제하는 기능임. ✅ 주요 특징 • 데이터베이스 백업 및 장애 대비 → 하나의 서버 장애 발생 시 다른 서버에서 복구 가능 • 읽기 부하 분산(Read Scalability) → 여러 개의 읽기 전용 서버를 두어 성능 최적화 가능 • 데이터 분석 및 실시간 백업 → 운영 서버(Master)에 영향을 주지 않고 분석용 DB 운영 가능 ✅ MySQL Replication의 기본 개념클라이언트 → [Primary] → 데이터 변경 → [Replica1] [Replica2] … 데이..

DB/MySQL 2025.04.05

SOLID 원칙

📌 SOLID 원칙이란? SOLID 원칙은 객체 지향 프로그래밍(OOP)의 5가지 설계 원칙으로,소프트웨어를 유지보수하기 쉽게 설계하는 방법을 제시함. ✅ SOLID 원칙을 따를 경우: • 코드의 가독성과 재사용성이 높아짐. • 변경 사항이 최소한의 영향만 주도록 설계할 수 있음. • 유지보수가 쉬운 소프트웨어를 만들 수 있음. ✅ SOLID는 다음 5가지 원칙의 약어: 1. S → SRP (단일 책임 원칙, Single Responsibility Principle) 2. O → OCP (개방-폐쇄 원칙, Open-Closed Principle) 3. L → LSP (리스코프 치환 원칙, Liskov Substitution Principle) 4. I → ISP (인터페이스 분리 원칙, Interfac..

CS 2025.04.04

리버스 프록시

리버스 프록시(Reverse Proxy)란? 리버스 프록시(Reverse Proxy) 는 클라이언트의 요청을 대신 받아 서버로 전달하고, 서버의 응답을 받아 다시 클라이언트에게 반환하는 중간 서버임. 일반적으로 로드 밸런싱, 보안 강화, 캐싱, SSL 처리, 웹 가속화 등의 목적으로 사용됨. 1️⃣ 리버스 프록시 vs 포워드 프록시 리버스 프록시와 포워드 프록시는 개념이 다름.구분리버스 프록시 (Reverse Proxy)포워드 프록시 (Forward Proxy)요청 방향클라이언트 → 리버스 프록시 → 백엔드 서버클라이언트 → 포워드 프록시 → 인터넷사용 목적서버 보호, 로드 밸런싱, SSL 처리사용자 익명성 보호, 웹 필터링클라이언트가 아는 서버리버스 프록시가 서버처럼 동작클라이언트가 프록시를 직접 설정..

Infra 2025.04.03

[Java] ArrayDeque

📌 Java의 ArrayDeque란? ArrayDeque(배열 기반 덱, Double-Ended Queue)은 양쪽에서 삽입과 삭제가 가능한 자료구조로, 배열(Array) 기반으로 동작하는 덱(Deque) 임. ✅ 특징 • 양방향 삽입/삭제 가능 → addFirst(), addLast(), removeFirst(), removeLast() • 빠른 성능 → ArrayList보다 요소 추가/삭제가 빠름 (LinkedList보다도 빠를 수 있음) • 크기 제한 없음 → 동적으로 크기 조절 가능 • 스택(LIFO), 큐(FIFO)로 모두 사용 가능 • null 저장 불가 → NullPointerException 발생 1️⃣ ArrayDeque 선언 및 기본 사용법 📌 ArrayDeque 선언import j..

BE/Java 2025.04.02

[Spring Boot] WebFlux

Spring WebFlux란? Spring WebFlux는 비동기(Asynchronous) 및 논블로킹(Non-blocking) 방식으로 동작하는 웹 프레임워크로, Spring 5에서 처음 도입되었음. ✅ Spring WebFlux의 특징 1. 비동기 & 논블로킹 (Asynchronous & Non-blocking) • 기존 Spring MVC는 요청을 처리하는 동안 스레드를 블로킹하지만, WebFlux는 논블로킹 방식으로 동작하여 높은 동시성 처리 가능. 2. 리액티브 스트림(Reactive Streams) 기반 • Publisher와 Subscriber 개념을 활용하여 데이터 스트림을 처리. • Project Reactor의 Mono와 Flux를 사용하여 비동기 데이터 흐름을 제어. 3. 함수형 엔드..