@Transactional 어디까지 붙이나요?: 프록시, 전파속성

최근 기존 프로젝트에 새로운 요구사항이 생겨 기능을 확장하게 되었습니다. 코드를 살펴보던 중 서비스 레이어와 레포지토리 레이어에 똑같이 @Transactional 어노테이션이 붙어 있는 메소드를 발견했어요.처음엔 이렇게 생각했습니다.“어? 이렇게 트랜잭션이 중첩되면 충

2025년 7월 13일
·
1개의 댓글
·

@Async와 ThreadPoolTaskExecutor를 활용한 Spring 비동기 처리

Spring에서는 @Async 어노테이션을 사용하면 간단하게 비동기 작업을 구현할 수 있습니다. 하지만 아무런 설정 없이 기본값만 사용할 경우, 쓰레드가 과도하게 생성되어 시스템 리소스를 급격히 소모하고, 최악의 경우 애플리케이션이 다운될 위험도 있습니다.이러한 문제를

2025년 5월 29일
·
0개의 댓글
·
post-thumbnail

[Spring Security] Filter가 두 번 호출되는 이슈를 해결해보자

https://wavebridge.atlassian.net/wiki/spaces/DEV/pages/1991966816/FDS+Filter JwtAuthenticationFilter가 두번 호출되는 이슈 발생했다. 먼저, JwtAuthenticationFilter는

2025년 4월 29일
·
0개의 댓글
·

IF문 리팩토링(전략패턴과 템플릿 메서드)

특정 이벤트는 QR코드로 출석하는 시스템을 개발하면서, 타입을 구분하는 switch문을 사용했다. 처음에는 간단하게 사용했지만 타입이 늘어날수록 코드는 유지보수와 멀어지고 점점 길어져만 갔다. 리팩토링한 과정을 기록해보려고한다. >## AS-IS QrType 이넘클래스 기존 코드의 문제점은 새로운 요구사항이 추가되거나, 새로운 타입이 생길때 마다 계...

2024년 9월 19일
·
0개의 댓글
·

파사드패턴으로 클-린한 코드 만들기

새로운 프로젝트를 혼자서 진행하게 됐습니다. 로직이 복잡한 프로젝트인데, 서비스 레이어 간의 참조로 인해 순환 참조가 발생할 가능성이 높아졌습니다. 순환 참조는 클래스 간 의존 관계가 얽혀 복잡성을 더하고, 결과적으로 유지보수를 어렵게 만드는 문제가 있습니다. 그리고

2024년 9월 11일
·
0개의 댓글
·