Java/Spring 3

[Spring] 프록시 패턴(Proxy Pattern)

✏️ 한 줄 정리프록시 패턴은 실제 객체 대신 프록시 객체가 요청을 가로채어, 추가적인 기능(트랜잭션, 로깅, 보안 등)을 수행한 후 실제 객체를 호출하는 디자인 패턴 프록시 패턴(Proxy Pattern) 이란 ?프록시 패턴은 객체에 대한 접근을 제어하기 위해 대리자(Proxy) 객체를 두는 디자인 패턴이다.즉, 실제 객체 대신 프록시 객체가 먼저 호출을 가로채고, 필요하면 실제 객체를 호출하는 구조를 가진 패턴 Spring에서 프록시 패턴을 사용하는 경우1. 트랜잭션 관리 (@Transaction)- 트랜잭션을 시작하고, 메서드 실행 후 커밋 또는 롤백 2. AOP (Aspect-Oriented Programming, @Aspect)- 로깅, 성능 모니터링, 보안 검증 등 부가기능 적용- @Befor..

Java/Spring 2025.03.17

[Spring] 트랜잭션

1. Spring에서 트랜잭션 관리Spring 프레임워크에서는 @Transactional 어노테이션을 사용해 간단히 트랜잭션을 관리할 수 있다. 트랜잭션은 보통 서비스 계층에서 사용되며, 데이터베이스의 상태를 변경하는 작업을 안전하게 처리한다.@Servicepublic class ExampleService { @Transactional public void insertDatabase() { // logic }} 위 코드에서 @Transactional 을 메서드에 적용하면, 메서드가 실행되는 동안 트랜잭션이 활성화된다. 만약 메서드 내에서 예외가 발생하면 트랜잭션이 자동으로 롤백된다.2. 전파 레벨(Propagation)Spring의 트랜잭션은 다양한 전파 레벨(Propagat..

Java/Spring 2025.03.16

[Spring Boot] 의존성 주입(DI)

✏️ 한 줄 정리생성자 주입을 사용하자Spring Boot에서 의존성 주입(Dependency Injection, DI) 방식에는생성자 주입, 필드 주입, 세터 주입이 있다. 1. 생성자 주입 (Constructor Injection) 가장 권장@Componentpublic class ExampleService { private final ExampleRepository exampleRepository; @Autowired // 최신 Spring 버전에서는 생략 가능 public ExampleService(ExampleRepository exampleRepository) { this.exampleRepository = exampleRepository; }} ✅ 불변성 유..

Java/Spring 2025.03.16