dailyrium
/find

[태그:] Java백엔드

· 18 min read

Spring Bean Container 정리 – Bean이란 무엇이며 Spring은 어떻게 관리하는가

Spring Bean Container가 어떻게 동작하는지 모르면, @Component와 @Bean의 차이를 물어보는 면접 질문 앞에서 막히거나, Bean이 싱글톤이라는 사실을 모르고 상태(State)를 필드에 저장해 멀티스레드 버그를 만들거나, @PostConstruct를 써야 하는 자리에 생성자를 쓰다가 의존성 주입이 완료되지 않은 상태에서 초기화 로직이 실행되는 장애를 겪게 됩니다. Spring이 “마법처럼” 동작한다고 느낀다면, 그 마법의 정체가 바로 IoC 컨테이너가 Bean을 등록·조합·관리하는 과정입니다. 이 […]

· 18 min read

@Autowired 동작 원리 완벽 정리 – 의존성 주입 방식 비교와 실무 주의점 심화 가이드

@Autowired 동작 원리를 제대로 이해하지 못하면, 분명히 @Autowired를 붙였는데 NullPointerException이 발생하거나, 같은 타입의 Bean이 두 개일 때 NoUniqueBeanDefinitionException으로 서버가 뜨지 않거나, 테스트에서는 잘 되는데 운영에서만 순환 참조 에러가 터지는 당혹스러운 상황을 경험하게 됩니다. “그냥 @Autowired 붙이면 알아서 주입되는 거 아닌가요?”라는 생각은 필드 주입의 테스트 불가 함정, Setter 주입의 불변성 위반, 생성자 주입 없이 발생하는 순환 […]

· 16 min read

Spring Batch 설계 완벽 가이드 – 대용량 배치 처리를 안전하게 설계하는 법

Spring Batch 설계를 제대로 이해하지 못하면, 수백만 건 데이터를 처리하다 중간에 터진 배치가 처음부터 다시 돌면서 이미 처리된 데이터를 또 처리하거나, 오류 한 건 때문에 전체 작업이 롤백되어 새벽 내내 재실행을 반복하는 지옥을 경험하게 됩니다. Spring Batch는 “그냥 for 루프를 스케줄러로 돌리면 되지 않나?”라는 생각을 완전히 뒤집는 엔터프라이즈급 배치 프레임워크입니다. 청크(Chunk) 기반 처리, 재시작(Restart), Skip·Retry […]

· 12 min read

스프링부트 애노테이션 – 실무에서 가장 많이 쓰는 핵심 10가지

스프링부트 애노테이션을 제대로 이해하지 못하면, 코드는 돌아가는데 왜 돌아가는지 모르는 상태가 됩니다. 매일 쓰는 @RestController, @Autowired, @Transactional… 문서 없이 그냥 복붙하고 계시진 않으신가요? 스프링부트는 애노테이션 기반 프로그래밍이 핵심이기 때문에, 각 애노테이션이 무엇을 해주는지, 언제 써야 하는지, 어떤 실수를 하면 안 되는지를 제대로 알아야 실무에서 진짜 실력을 발휘할 수 있습니다. 이 글에서는 실무에서 가장 빈번하게 등장하는 […]