일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ocp
- buildSrc
- 데이터베이스
- 페이지네이션
- 정규화
- 스레드 풀
- AWS
- 네트워크
- null
- Kafka
- 삭제 이상
- 캐시 오염
- JPA
- 3-way handshaking
- Redis
- 자료구조
- 낙관적 락
- well-know port
- Kotlin
- 자바
- HTTP
- 비관적 락
- gatway
- Dirty Checking
- java
- DB
- 갱신 이상
- MSA
- 삽입 이상
- Spring
- Today
- Total
728x90
목록
728x90
Spring (4)
어 나 갱수.
Spring으로 개발을 하다 보면 다양한 Exception을 처리하게 됩니다. 에러를 처리하는 방법은 매우 다양합니다. 저는 그 방법들 중에 반복적인 작업을 줄이고 전역에서 공통적으로 Exception을 처리할 수 있는 @ExceptionHandler와 @ControllerAdvice를 사용하여 에러를 처리해 보겠습니다. @ExceptionHandler 예외 처리컨트롤러 코드에서 @ExceptionHandler 어노테이션을 선언하고, 해당 컨트롤러에서 캐시 하고 싶은 예외를 지정하면 됩니다.해당 컨트롤러에서 지정한 예외가 발생하면 예외에 일치하는 메서드가 실행됩니다.아래 코드로 예시를 들어보겠습니다. 아래 코드에서는 회원가입 API에 대한 컨트롤러 코드가 있습니다. 회원가입 API를 요청하는 도중에 Me..
싱글톤 패턴 (Singleton pattern) 소프트웨어 디자인 패턴에서 싱글톤 패턴을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 싱글톤 패턴을 사용하는 이유 만약 우리가 만들었던 DI 컨테이너인 요청을 할 때마다 새로운 객체를 생성한다. 요청이 엄청나게 많은 트래픽 사이트에서는 계속 생성하게 되면 메모리 낭비가 심하기 때문이다. 순수한 DI 컨테이너 객체를 생성하면 매번 새로운 객체가 생성된다. 많은 객체를 생성해야 하는 서비스에서는 메모리 낭비가 많아진다. 싱글톤 패턴 구현 클래스 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 그래서 객체가 2개 생성되는 것을 막아야 한..
디스패처 서블릿(Dispatcher Servlet) 디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있습니다. HTTP프로토콜로 들어오는 모든 요청을 가장 앞단에서 받아서 적합한 컨트롤러에 위임해 주는 프런트 컨트롤러라고 정의할 수 있습니다. 디스패처 서블린은 HttpServlet을 상속한다. (DispatcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet 상속 구조) 자세히 설명하자면 클라이언트로부터 어떠한 요청이 오면 WAS의 Tomcat과 같은 서블릿 컨테이너가 요청을 받게 됩니다. 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 됩니다. 동작 과정 DispatcherServlet 으로 요청(Http..
필터(Filter) 란? 필터는 말 그대로 요청과 응답을 거른 뒤 정제하는 역할을 한다. 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿에 요청이 전달되기 전/후에 요청에 대한 부가적인 기능을 해주는 역할을 한다. 디스패처 서블릿은 스프링 가장 앞단에 위치하는 컨트롤러이므로, 필터는 스프링 범위 밖에서 작동한다. 스프링 범위 밖에서 작동하니 스프링이 관리하는 것이 아닌 톰캣과 같은 웹 컨테이너가 관리를 한다. 필터의 흐름 동작 과정 HTTP 요청 → WAS → (필터) → (디스패처)서블릿 → 컨트롤러 순으로 동작한다.(스프링에선 서블릿이 디스패처 서블릿이 된다.) 만약 필터에서 걸러지게 된다면 디스패처 서블릿을 호출하지 않는다. 필터 체인 HTTP 요청 -> WAS -> (필터1) -..