mdc-structured-logging
MDC + Structured Logging 1. 개념 정리 MDC (Mapped Diagnostic Context) 요청(Request) 전체에 공통으로 따라다니는 로그 데이터 저장소 내부적으로 ThreadLocal 기반으로 동작 요청 시작 시 값을 넣고, 요청 종료 시 반드시 MDC.clear() 호출 같은 요청에서 발생한 모든...
MDC + Structured Logging 1. 개념 정리 MDC (Mapped Diagnostic Context) 요청(Request) 전체에 공통으로 따라다니는 로그 데이터 저장소 내부적으로 ThreadLocal 기반으로 동작 요청 시작 시 값을 넣고, 요청 종료 시 반드시 MDC.clear() 호출 같은 요청에서 발생한 모든...
MySQL 다중 컬럼 인덱스(Multi-column Index) 사용 시 핵심 주의사항 4가지 1. 테스트 환경 구축 (순수 SQL) 인덱스 테스트를 위해 employees(직원) 테이블을 생성하고, 순수 SQL 쿼리를 활용해 약 100만 건의 더미 데이터를 삽입 [테이블 생성 DDL] CREATE TABLE `employees` ( ...
개념 작업 브랜치 최신화란, 내가 작업 중인 feature 브랜치를 최신 main 브랜치 기준으로 다시 맞추는 작업이다. 프로젝트를 진행하는 동안 다른 팀원들이 main 브랜치에 새로운 코드를 계속 반영하면, 내 브랜치는 예전 main 기준으로 만들어졌기 때문에 점점 뒤처지게 된다. 이 상태로 작업을 계속하면: Pull Request(P...
Spring Security 및 Redis 기반 세션 인증 구현 가이드 개요 JWT 없이 Spring Security, Spring Session, Redis 조합으로 세션 기반 인증을 구현한다. 로그인 시 생성된 SecurityContext를 HTTP 세션에 저장하고, Spring Session이 이를 Redis에 자동으로 외부화한다. ...
1. 캐싱(Caching) 핵심 개념 설명: 자주 접근하는 데이터를 인메모리(RAM) 등 임시 저장소에 보관하여 응답 속도를 높이고 데이터베이스 부하를 줄이는 기술이다. 성능 향상과 비용 절감의 장점이 있으나, 원본 데이터와의 일관성(Consistency) 유지 및 한정된 메모리 관리가 필수적이다. 예시: 환율 데이터 API를 호출할 때 매번 호출...
Spring Security : UsernamePasswordAuthenticationToken 구조와 동작 원리 UsernamePasswordAuthenticationToken은 Spring Security에서 인증(Authentication) 처리를 위해 사용되는 대표적인 구현체이다. 이 객체의 핵심은 인증 요청 객체와 인증 완료 객체라는 두 가...
1. 인메모리 저장소 개요 인메모리 저장소는 하드 디스크가 아닌 컴퓨터의 주 메모리(RAM)에 데이터를 직접 저장하는 아키텍처이다. 디스크 I/O가 발생하지 않아 읽고 쓰는 속도가 압도적으로 빠르다. 주요 활용처: 캐싱(Caching): 자주 조회되는 데이터를 미리 메모리에 적재하여 응답 속도 개선. 세션 관...
1. Vector DB (pgvector) 구축 및 문서 임베딩 개념: 기존 PostgreSQL RDBMS의 트랜잭션(ACID) 안정성을 유지하면서 고차원 벡터 데이터 저장 및 유사도 검색을 지원하는 확장 도구이다. 테이블 및 인덱스 설계: 원본 문서와 쪼개진 벡터(Chunk) 데이터를 분리하여 저장하고, 고속 검색을 위해 HNSW 인덱스를...
AI와 LLM 코어 개념 및 비즈니스 전략 핵심 작동 원리: AI(추론 및 규칙) ➔ 머신러닝(데이터 기반 통계적 학습) ➔ 딥러닝(인공 신경망, 비정형 데이터 특화)의 계층으로 구성됨. 토큰화 (Tokenization): 문장을 AI의 처리 및 과금 단위인 ‘토큰’으로 분할함. 한글은 형태소 위주로 분할되어 영어보다 1.5~2배가량 토큰 ...
🐬 MySQL 🧱 컨테이너 실행 📌 설명 docker run은 MySQL 이미지를 기반으로 컨테이너를 생성하고 실행한다. MySQL은 실행 시 반드시 루트 비밀번호 설정이 필요하다. EX) docker run --name mysql-container \ -e MYSQL_ROOT_PASSWORD=mysecretpw \ -d \ -p 3306:...