Tag

#AOP

/ Backend/Spring

Spring @Transactional 완전 정리: Propagation 옵션과 내부 구현 원리

Spring의 @Transactional 어노테이션은 선언적 트랜잭션 관리 기능을 제공하며, Propagation 옵션을 통해 트랜잭션의 동작 방식을 설정할 수 있다. 주요 Propagation 옵션으로는 REQUIRED, REQUIRES_NEW, SUPPORTS, MANDATORY, NOT_SUPPORTED, NEVER, NESTED가 있으며, 각 옵션은 트랜잭션의 참여 및 생성 방식에 따라 다르게 작동한다. 실제 프로젝트에서의 활용 예시와 성능 최적화 팁도 포함되어 있으며, AOP 프록시 패턴을 기반으로 내부 구현 원리를 설명한다.

/ Backend/Nestjs

NestJS AOP로 Kafka Consumer 데코레이터 만들기

Kafka 메시지 처리를 위해 각 토픽마다 개별 컨슈머 그룹을 구성하고, 커스텀 데코레이터(@Consume)를 통해 컨트롤러의 특정 메서드를 Kafka Consumer로 등록하는 방법을 설명합니다. NestJS에서 데코레이터는 마킹, 조회, 등록의 3단계로 동작하며, 이를 통해 독립적인 오프셋 관리, 맞춤형 소비 로직, 리밸런싱 영향 최소화 등의 장점을 제공합니다.