#spring
노트 3개
Backend › Database
DB 커넥션 풀커넥션 풀은 DB 연결을 미리 만들어 빌려주고 돌려받는다. 풀 크기와 처리량의 관계, 대기 시간(maxWait·connectionTimeout)을 짧게 잡아야 장애가 번지지 않는 이유, 유효성 검사와 유휴 연결 정리, DataSource 프록시로 SQL에 출처 주석을 다는 법을 정리했다.
Backend › Web Basics
스프링 애플리케이션 설계: DI, 프록시 트랜잭션, 멀티모듈, WebFlux스프링으로 서버를 만들 때 반복해서 부딪히는 설계 문제를 정리한다. IoC·DI와 생성자 주입, Service/ServiceImpl 관행과 SOLID, Lombok 사용 기준, 프록시 기반 @Transactional의 자기 호출 함정, 멀티모듈의 계층과 의존 규칙, 사용하지 않는 API 찾기, Spring MVC와 WebFlux의 차이를 다룬다.
Backend › Web Basics
스프링의 싱글톤 빈과 요청 스레드스프링 빈은 하나뿐인데 동시에 들어온 수많은 요청을 어떻게 처리하는가. 내장 Tomcat의 스레드 풀이 요청마다 스레드를 배정하고, 모든 스레드가 같은 싱글톤 빈을 공유하므로 빈은 상태 없이(stateless) 짜야 한다. NIO 커넥터, 스레드 풀 설정, 가상 스레드까지 정리한다.