반응형

Spring 8

EHCache

EHCache란?EHCache(Ehcache)는 Java 기반의 오픈소스 인메모리 캐싱 라이브러리로, Terracotta(현재 Software AG)에서 개발하였습니다. Java 애플리케이션에서 가장 널리 사용되는 캐시 솔루션 중 하나입니다.주요 특징특징설명인메모리 캐싱데이터를 메모리에 저장하여 빠른 접근 속도 제공디스크 저장 지원메모리 초과 시 디스크로 오버플로우 가능분산 캐싱여러 노드 간 캐시 공유 가능 (Terracotta 연동)JSR-107 지원Java 표준 캐시 API(JCache) 호환Spring 연동Spring Cache Abstraction과 쉽게 통합 가능TTL/TTI 설정데이터 만료 시간 설정 가능캐시 저장소 계층 (Ehcache 3.x 기준)1. Heap (JVM 힙 메모리) - 가장..

Spring 2020.05.13

Transaction Template

Transaction TemplateTransaction Template은 트랜잭션 관리를 간편하게 처리하기 위한 템플릿 패턴 기반의 도우미 클래스입니다. 대표적으로 Spring Framework의 TransactionTemplate이 있습니다.🔑 핵심 개념기존의 선언적 트랜잭션(@Transactional)과 달리, 프로그래밍 방식(Programmatic) 으로 트랜잭션 경계를 직접 제공합니다.📌 주요 특징항목설명방식프로그래밍 방식 트랜잭션 관리기반PlatformTransactionManager 위임반복 코드 제거try/catch/commit/rollback 보일러플레이트 제거세밀한 제어트랜잭션 경계를 코드 레벨에서 직접 조정 가능🛠️ Spring TransactionTemplate 예시Transa..

Spring 2020.05.07

Spring Singleton

Spring Singleton (싱글톤)개념Spring IoC 컨테이너는 기본적으로 Bean을 싱글톤(Singleton) 스코프로 관리합니다.즉, 동일한 Bean을 여러 번 요청해도 항상 같은 인스턴스를 반환합니다.Bean Scope 종류Scope설명singleton (기본값)IoC 컨테이너당 인스턴스 1개prototype요청할 때마다 새 인스턴스 생성requestHTTP 요청마다 새 인스턴스 (Web)sessionHTTP 세션마다 새 인스턴스 (Web)Singleton 동작 방식@Componentpublic class MyService { // Spring 컨테이너가 이 클래스의 인스턴스를 딱 1개만 생성}@AutowiredMyService serviceA;@AutowiredMyService se..

Spring 2020.05.01

@ExceptionHandler

@ExceptionHandler 란?@ExceptionHandler는 Spring Framework에서 컨트롤러 내부 또는 전역적으로 예외를 처리하기 위해 사용하는 애노테이션입니다.기본 사용법1. 컨트롤러 내부에서 사용@RestControllerpublic class UserController { @GetMapping("/users/{id}") public User getUser(@PathVariable Long id) { // 예외 발생 가능 return userService.findById(id); } @ExceptionHandler(UserNotFoundException.class) public ResponseEntity handleUserNotF..

Spring 2020.04.26

Filter, Interceptor, AOP의 차이

1. 요청 처리 흐름HTTP 요청 ↓━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Servlet Filter 레이어 [Servlet Filter] [DelegatingFilterProxy] └→ [Spring Security FilterChain]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ↓DispatcherServlet ↓━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Spring MVC 레이어 [Interceptor]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ↓Controller ↓━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Spring Bean 레..

Spring 2020.04.22

AOP

1️⃣ AOP란?핵심 비즈니스 로직과 횡단 관심사(Cross-Cutting Concerns) 를 분리하여 모듈화하는 프로그래밍 패러다임(개념)횡단 관심사 예시: 로깅, 보안, 트랜잭션, 캐싱, 예외 처리목적: 코드 중복 제거, 관심사 분리, 유지보수성 향상2️⃣ AOP 주요 용어용어설명Aspect횡단 관심사를 모듈화한 단위Advice실제 실행되는 동작 (@Before, @After, @Around 등)Join PointAdvice가 적용될 수 있는 지점PointcutAdvice를 적용할 Join Point를 선별하는 표현식WeavingAspect를 실제 코드에 적용하는 과정3️⃣ AOP의 구현체들AOP (개념/패러다임)├── AspectJ ← 가장 완전한 구현체├── Spring AOP ..

Spring 2020.04.18

@Transactional

1️⃣ @Transactional 기본 개념Spring에서 데이터베이스 트랜잭션을 자동 관리하는 어노테이션AOP 프록시 방식으로 동작 → 메서드 호출 전/후로 트랜잭션 시작/커밋/롤백 처리2️⃣ 주요 속성속성설명propagation트랜잭션 전파 방식 (기본값: REQUIRED)isolation격리 수준 설정readOnly읽기 전용 최적화timeout타임아웃 설정rollbackFor롤백할 예외 지정noRollbackFor롤백 제외 예외 지정3️⃣ 전파(Propagation) 옵션옵션설명REQUIRED기존 트랜잭션 참여, 없으면 새로 생성 (기본값)REQUIRES_NEW항상 새 트랜잭션 생성, 기존 것은 일시 중단NESTED기존 트랜잭션 안에 중첩 트랜잭션 생성SUPPORTS트랜잭션 있으면 참여, 없어도 실..

Spring 2020.04.17

IOC와 DI

1. IoC (Inversion of Control) — 제어의 역전개념IoC란 프로그램의 제어 흐름을 개발자가 아닌 프레임워크(또는 컨테이너)가 담당하는 설계 원칙이다.전통적인 프로그래밍: 개발자가 직접 객체를 생성하고, 흐름을 제어IoC 적용 후: 프레임워크가 객체의 생성, 생명주기, 흐름을 관리예시 비교❌ IoC 없이 (개발자가 직접 제어)public class OrderService { private OrderRepository repository = new OrderRepository(); // 직접 생성 public void createOrder() { repository.save(...); }}✅ IoC 적용 (프레임워크가 제어)public class OrderS..

Spring 2020.03.27
반응형