Application
8개의 글
메시지 큐와 이벤트 드리븐 — Kafka, RabbitMQ, pub/sub, 이벤트 소싱
메시지 큐: 서비스 간 비동기 통신을 중재. Producer가 메시지를 보내면 Consumer가 나중에 처리. 서비스 간 결합도 감소, 장애 격리, 트래픽 완충. / pub/sub (발행-구독): 한 Publisher의 메시지를 여러 Subscriber가 수신....
캐싱 전략 완전 정복 — Cache-Aside, Write-Through, TTL, Redis
캐싱은 자주 읽히고 변경이 적은 데이터를 빠른 저장소(Redis, Memcached)에 두어 DB 부하를 줄이는 기법이다. 4가지 주요 전략: / Cache-Aside (Lazy Loading): 읽을 때 캐시에 없으면 DB에서 읽어 캐시에 저장. 가장...
Next.js 인증과 미들웨어 — Auth.js v5, middleware.ts, 보호 라우트
Auth.js v5(NextAuth v5) 는 Next.js App Router에 최적화된 인증 라이브러리다. `auth.ts` 하나로 설정을 관리하며, 미들웨어와 서버 컴포넌트에서 모두 세션을 읽을 수 있다. `middleware.ts` 는 Edge Runtime에서 실행되어 모든 요청을 가로채며,...
인증과 인가 — JWT, OAuth 2.0, 세션, RBAC 완전 정복
인증(Authentication): "당신이 누구인지" 증명. 로그인, 비밀번호 검증, OTP. / 인가(Authorization): "당신이 무엇을 할 수 있는지" 결정. 역할 확인, 권한 검사. / 세션 기반: 서버가 상태 보관 → Stateful, 수평 확장...
Next.js 데이터 페칭과 캐싱 — fetch, revalidate, Server Actions, Streaming
Next.js는 Web `fetch()` API를 확장하여 서버 컴포넌트에서 캐싱 전략을 선언적으로 지정할 수 있게 한다. `cache: 'force-cache'`(SSG), `cache: 'no-store'`(SSR), `next: { revalidate: N }`(ISR)으로 요청마다 다른 전략을 쓸 수 있다. Server...
REST API 설계 — 리소스, HTTP 메서드, 상태코드, HATEOAS 완전 정복
REST(REpresentational State Transfer) 는 Roy Fielding이 2000년 박사 논문에서 제안한 웹 아키텍처 스타일이다. 핵심은 리소스(Resource) 를 URI로 식별하고, HTTP 메서드로 행위를 표현하며, 상태코드로 결과를 전달하는 것이다. `GET /users/1` 은 RESTful하지만,...
Spring Security — SecurityFilterChain, JWT, RBAC, CORS 완전 정복
Spring Security 6 (Spring Boot 3 기본 포함)는 람다 DSL 기반 `SecurityFilterChain`으로 설정을 구성한다. REST API에서는 세션 대신 JWT(JSON Web Token) 기반 무상태 인증이 표준으로, `OncePerRequestFilter`를 상속한 커스텀 필터가 모든...
Spring Boot 시작하기 — 설치부터 첫 REST API까지
Spring Boot는 Auto-Configuration + Starter Dependencies + Embedded Server 세 가지 마법으로 Spring의 복잡한 초기 설정을 자동화한다. `start.spring.io`에서 프로젝트를 생성하고, `application.yml`로 설정을 관리하며, `@RestController`로 HTTP API를 선언하면 `java -jar` 한...