본문 바로가기

spring

(3)
Spring의 Bean과 Static의 차이 스프링을 사용하는 입장에서 의존성 주입을 통해 컴포지션 형태로 받아온 클래스와 스태틱 클래스 사이에 무슨 차이가 있는지 궁금해졌다. 차지하는 메모리 영역과 장단점을 알아보자. 정의 및 기본 개념스프링 빈스프링에서 빈은 스프링 IoC 컨테이너가 관리하는 객체다. 빈은 애플리케이션 컨텍스트가 초기화될 때 생성되고, 종료될 때 소멸된다. 빈은 싱글톤, 프로토타입 등 다양한 스코프를 가질 수 있다.스태틱스태틱은 클래스에 속한 변수나 메소드로, 클래스 인스턴스를 생성하지 않고 클래스 이름을 통해 접근할 수 있다. 스태틱 변수와 메소드는 클래스 로딩 시 한 번만 할당되고, 클래스가 JVM에 로드된 후 계속해서 사용할 수 있다. 메모리 관리 및 사용스프링 빈클래스 정보는 코드 영역(Method Area)에 저장된다...
Spring 예외 처리 전략 스프링을 API 서버로 사용할 때 예외 처리 전략에 대해 얘기해 보자.예외는 발생하게 되면 catch를 만날 때까지 상위 레이어로 계속 올라간다.이를 스프링 코드에서 잡지 않는다면 결국 톰캣이 잡게 되어 HTTP 500 Internal Server Error를 보게 된다.누군가는 잡아서 처리를 해야 의도된 응답을 주거나 포맷을 맞춰 로킹을 할 수 있다.스프링을 restAPI 서버로 사용하는 경우에 예외 처리 전략에 어떤 방법들이 있는지 생각해 보자. 예외 처리는 누가 할 것인가?누가 예외 처리를 하는게 좋을까?  1. Controller에서 catch 예외가 발생한 경우 catch로 잡아 throw를 하여 상위로 던지고,그 상위에서도 다시 받아서 throw를 하여 최종적으로 Controller가 예외 처..
Spring 요청부터 응답까지 전체 흐름 정리 Spring에서 요청을 받아 응답하기까지 중간에 로그를 찍으면서 전 과정을 훑어보려고 한다.  구성도 요청부터 응답까지의 구성도를 그려보았다.클라이언트의 요청은 웹 서버인 Tomcat을 통해 애플리케이션으로 전달되고,Dispatcher Servlet이 중심이 되어 Handler Mapping을 통해 어떤 컨트롤러가 이 요청을 처리할지 결정한다.요청/응답 과정 중간에 Filter, Interceptor 등이 개입하여 다양한 전/후처리를 할 수 있다. TomcatTomcat은 자바 기반의 웹 서버이자 서블릿 컨테이너스프링 부트에서는 기본적으로 내장된 형태로 함께 실행된다.HTTP 요청을 기다렸다가 Spring 등에 요청을 하고 받은 응답을 다시 전달하는 역할을 한다. 톰캣에서의 클라이언트 요청과 최종 응답,..