본문 바로가기

스프링 관련/스프링 프레임워크13

서블릿, 서블릿 컨테이너, 멀티쓰레드, 톰캣 정리 핵심 내용 서블릿 컨테이너(tomcat, jetty, etc..) 의 역할 톰캣은? 서블릿 표준 스펙을 구현한 WAS 중 하나! 프로그램 실행 방법 자바 프로그램 : JAVA 명령으로 실행 시 main() 메서드 실행 됨 서블릿 컨테이너, 서블릿(웹앱) : 서블릿 컨테이너는 특정 URL로 Request가 오면 해당 URL과 매핑된 서블릿을 실행해준다. (@Controller 어노테이션 매핑된 클래스가 실행되는 이유) 서블릿 이란? "클라이언트의 요청을 수신/처리하고, 그 결과를 반환하는 과정에 편의성을 제공하는 자바 웹 프로그래밍 기술(규약)의 스펙(인터페이스)을 정했고 서블릿과 서블릿 컨테이너 라는 명칭으로 칭함. 개발자는 Servlet 기능을 활용하고 싶으면 사전에 정의되어 있는 Servlet 인터페.. 2023. 4. 2.
스프링 부트 핵심 기능 5가지 스프링 부트 -> 스프링 프레임워크를 편리하게 사용할 수 있도록 도와주는 기술 스프링 부트 핵심 기능 5가지 WAS : 톰캣 같은 웹 서버를 내장해서 별도의 웹 서버 설치 필요 없음 라이브러리 관리 손쉬운 빌드 구성을 위한 스타터 종속성 제공한다 스프링과 외부 라이브러리 버전을 자동으로 관리한다 자동 구성 (Auto Configuration) 프로젝트 시작에 필요한 스프링과 외부 라이브러리의 빈을 자동 등록 외부 설정 : 환경에 따라 달라져야 하는 외부 설정 공통화 프로덕션 준비 : 모니터링을 위한 메트릭, 상태 확인 기능 제공 2023. 3. 11.
다이나믹 프록시 (mockito) 런타임에 특정 인터페이스 또는 클래스의 프록시 인스턴스 또는 클래스를 만들어 사용하는 프로그래밍 기법 주요 사용처 - 스프링 데이터 JPA - 스프링 AOP - Mockito - hibernate lazy initalzation - .사용하지 않는 entity는 임시 프록시 객체 만들어놓고, 나중에 실제로 필요할 때 해당 엔티티 가져오는 것 Mockito 특정 클래스를 테스트 할 때, 해당 클래스를 구성하는 멤버 인스턴스 변수를 초기화해주기 어려울 경우, 대체를 위한 다이나믹 프록시 기술을 활용하여 프록시 객체를 생성하는 기능을 지원함. 하지만 아래 예시에서 when(bookRepositoryMock.save(any())).thenReturn(aBook); 항상 "A" Book을 return 하는 .Mo.. 2022. 12. 20.
@RestControllerAdvice, @ExceptionHandler(RuntimeException.class) 이용한 예외처리 분리 @RestControllerAdvice : 스프링 빈에 등록된 @Controller, @RestController 클래스 전체 대상으로 @ExceptionHandler를 적용할 수 있는 설정 @ExceptionHandler : @Controller, @RestController 클래스 안에서 예외가 발생한 것을 적용된 Bean 내에서 처리할 수 있게 하는 기능을 제공한다. @Slf4j @RestControllerAdvice public class GlobalControllerAdvice { @ExceptionHandler(SnsApplicationException.class) public ResponseEntity applicationHandler(SnsApplicationException e){ log.. 2022. 11. 20.