반응형

전체 글 184

Tanstack Query

1. TanStack Query란?서버 상태(server state)를 가져오고, 캐싱하고, 동기화하고, 갱신하는 라이브러리입니다. (구 React Query, React / Vue / Solid / Svelte / Angular 지원)HTTP 클라이언트가 아닙니다. queryFn이 반환하는 Promise를 관리할 뿐, 실제 요청은 fetch나 axios가 합니다.서버 상태의 특징원격에 있고 내가 소유하지 않는다비동기로 가져오며 언제든 오래된(stale) 데이터가 될 수 있다여러 컴포넌트가 같은 데이터를 공유한다useEffect + useState로 직접 만들면 로딩/에러 처리, 중복 요청, 캐싱, 재시도 코드가 계속 반복됩니다. TanStack Query가 이를 대신 처리해 줍니다.클라이언트 상태와의 ..

Web/Next&React 2026.11.07

Elasticsearch 검색 원리

Elasticsearch 검색 원리1. 검색용 토큰 생성Elasticsearch는 문서를 색인할 때 텍스트를 토큰(Token)으로 분리합니다. 토큰은 검색에 사용하는 단위이며, 이 변환 과정을 분석기(Analyzer)가 담당합니다.예를 들어 다음 문서가 있다고 가정하겠습니다.문서 IDtitle1Search Engine2Search Tutorial3Database Enginetitle이 standard 분석기를 사용하는 text 필드라면 다음과 같이 처리됩니다.문서 1 → search, engine문서 2 → search, tutorial문서 3 → database, engine문장을 단어 단위로 나누고 소문자로 변환한 결과입니다. Search와 SEARCH처럼 대소문자가 달라도 동일한 토큰으로 다루기 위..

Database/일반 2026.10.28

Spring AI

1. Spring AI란?Spring AI는 Spring 팀이 만든 프레임워크로, Java/Spring 애플리케이션에서 LLM, 임베딩, 벡터 DB 같은 AI 기능을 쉽게 붙일 수 있게 해 줍니다. Python의 LangChain이나 LlamaIndex에서 아이디어를 가져왔지만, 그대로 옮긴 것이 아니라 Spring 방식(DI, 자동 설정, 이식성)에 맞게 다시 설계했습니다.1.1 핵심 철학이식성: OpenAI, Anthropic, Google Gemini/Vertex AI, Azure OpenAI, Amazon Bedrock, Ollama, Mistral 등을 하나의 공통 API로 다룹니다. 설정만 바꾸면 모델을 교체할 수 있습니다.Spring Boot 통합: 스타터 의존성과 application.ym..

Spring/일반 2026.10.17

Spring boot 3.4

주요 신규 기능1. 구조화된 로깅 (Structured Logging) 기본 지원JSON 형식 로그를 설정만으로 출력할 수 있습니다. 지원 포맷은 ECS(Elastic), GELF(Graylog), Logstash입니다.logging.structured.format.console=ecslogging.structured.format.file=logstashStructuredLogFormatter를 구현하면 원하는 포맷을 직접 만들 수도 있습니다.2. HTTP 클라이언트 자동 구성 개선RestClient와 RestTemplate에서 쓸 HTTP 클라이언트 구현체를 프로퍼티로 고를 수 있습니다.spring.http.client.factory=jdk # http-components, jetty, reacto..

Spring/Version 2026.10.08

SNI

SNI (Server Name Indication)SNI는 TLS(Transport Layer Security) 프로토콜의 확장 기능으로, 클라이언트가 TLS 핸드셰이크 시작 시 접속하려는 호스트명(도메인)을 서버에 알려주는 메커니즘입니다.왜 필요한가?하나의 서버(하나의 IP 주소)에서 여러 도메인의 HTTPS 사이트를 호스팅하는 경우를 생각해 보세요:IP 주소호스팅 도메인203.0.113.1example.com, shop.example.com, blog.example.comTLS 핸드셰이크는 HTTP 요청보다 먼저 일어나기 때문에, 서버는 HTTP의 Host 헤더를 보기 전에 어떤 인증서를 제시해야 할지 알 수 없습니다. SNI가 없으면 서버는 올바른 인증서를 선택할 방법이 없습니다.동작 원리클라이언트..

Network 2026.10.01

Zod

Zod 소개Zod는 TypeScript-first 스키마 선언 및 유효성 검증 라이브러리입니다. 스키마를 한 번 정의하면, Zod가 자동으로 TypeScript 타입을 추론해주기 때문에 타입 정의를 중복으로 작성할 필요가 없습니다.핵심 특징특징설명TypeScript 타입 추론스키마에서 자동으로 TS 타입 생성런타임 유효성 검증컴파일 타임 + 런타임 모두 안전Zero dependencies외부 의존성 없음불변성(Immutable)메서드 호출 시 새로운 인스턴스 반환간결한 API체이닝 방식의 직관적 인터페이스기본 사용법1. 스키마 정의 & 타입 추론import { z } from "zod";// 스키마 정의const UserSchema = z.object({ name: z.string(), age: z...

Web/일반 2026.09.26

Zustand

ZustandZustand(독일어로 "상태"라는 뜻)는 React를 위한 경량 상태 관리 라이브러리입니다.핵심 특징특징설명간결한 API보일러플레이트가 거의 없음경량번들 크기 ~1KBProvider 불필요상태가 React 트리 외부에 존재하므로 Provider 없이 동작불변성 불필요immer 없이도 자연스러운 상태 업데이트React 외부에서도 사용 가능Vanilla JS에서도 동작기본 사용법1. Store 생성import { create } from 'zustand'interface BearStore { bears: number increase: () => void reset: () => void}const useBearStore = create((set) => ({ bears: 0, increa..

Web/Next&React 2026.09.25

Tanstack Query

TanStack Query서버에서 가져온 데이터를 브라우저 메모리에 캐싱하고, 그 캐시의 생명주기를 자동으로 관리해주는 프론트엔드 라이브러리"서버 상태 관리"라는 표현이 흔히 쓰이지만, 실제로는 비동기 데이터 캐시 자동 관리가 더 정확한 설명이다.어디서 동작하는가브라우저(클라이언트)에서 동작한다. Node.js 서버가 아니다.┌──────────────────┐ HTTP 요청 ┌──────────────┐│ 브라우저 │ ───────────────────▶ │ 백엔드 서버 ││ │ │ ││ React 앱 │ ◀─────────────────── ..

Web/Next&React 2026.09.13

Spring boot 3.3

🚀 성능 & 시작 속도CDS (Class Data Sharing) 지원애플리케이션 시작 시간 단축과 메모리 사용량 절감을 위한 CDS 아카이브 생성을 간소화JVM 플래그로 간단히 활성화 가능:-XX:ArchiveClassesAtExit=application.jsa-Dspring.context.exit=onRefresh📊 관측성 & 모니터링기능설명@SpanTag 지원Micrometer의 @SpanTag 어노테이션 지원ProcessInfoContributor새로운 프로세스 정보 기여자 추가SBOM Actuator 엔드포인트Software Bill of Materials(소프트웨어 구성 목록) 확인 가능Prometheus 1.x 지원Prometheus 이전 버전과의 호환성 유지🐳 Docker & Serv..

Spring/Version 2026.09.10

Spring boot 3.2

1. Java 21 지원 (Virtual Threads)Spring Boot 3.2의 가장 큰 하이라이트입니다.Virtual Threads (Project Loom) 를 공식 지원합니다.spring.threads.virtual.enabled=true 설정만으로 활성화할 수 있습니다.Tomcat, Jetty 등의 웹 서버와 @Async, @Scheduled 태스크에서 가상 스레드를 사용합니다.기존 플랫폼 스레드 대비 훨씬 가벼워 높은 동시성 처리에 유리합니다.# application.propertiesspring.threads.virtual.enabled=true2. JdbcClient 지원Spring Framework 6.1에서 도입된 JdbcClient 를 자동 구성(auto-configuration)..

Spring/Version 2026.09.07
반응형