
스프링 부트로 서비스 운영하다 보면 “이 기능은 운영에서만 켜자”, “로컬에선 Mock만 쓰자” 같은 요구가 계속 생긴다. 이런 요구를 깔끔하게 처리하는 핵심 도구 중 하나가 바로 @ConditionalOnProperty다.@ConditionalOnProperty는 설

Spring에서 @Transactional이 내부 메서드 호출에선 왜 안 먹을까? (Self-Invocation 문제 정리)서비스 코드를 이렇게 짰다고 해보자.개발자 머릿속 기대:outer() → inner() 호출inner()에 @Transactional 있으니까,트

우리는 스프링을 배울 때 “DI는 생성자 주입이 기본”이라고 배우고, 실제로도 그렇게 개발한다. 그런데 프로젝트가 커지다 보면 어느 순간 빈 순환 참조가 터지고, IDE가 생성자에 빨간 줄을 그어 준다. 1년 차 때 나도 Spring Boot + JPA로 개발하면서

최근 소프트웨어를 서비스 형태로 제공하는 게 일반화되면서, 웹앱 혹은 SaaS(Software As A Service)라고 부르게 되었다. Twelve-Factor app은 아래 특징을 가진 SaaS 앱을 만들기 위한 방법론이다. 사내 서비스들을 클라우드화 하고자 하기