728x90 분류 전체보기379 [Spring] Interceptor Interceptor 필터와 같이 공통 관심사를 해결 할 수 있는 기술이다. 인터셉터는 스프링에서 제공해 주는 기능이다. 체인으로 구성되어 여러개를 추가 할 수 있다. 서블릿보다 편리하고 더 정교하고 다양한 기능을 지원한다. Interceptor 동작 방식 Interceptor 흐름 HTTP 요청 ->WAS-> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 Interceptor 제한 컨트롤러의 호출 여부를 정 할 수 있다. HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 // 컨트롤러 접근 허용시 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 종료 // 컨트롤러 접근 허용 안할경우 Interceptor 체인 인터셉터를 여러개 정의.. 2022. 6. 1. [Spring] Filter 서블릿 필터 필터는 서블릿이 지원하는 필터이다. 서블릿을 호출하기 전 필터를 사용하여 전처리를 할 수 있다. 필터는 서블릿의 영역이다. 필터의 동작 방식 필터 흐름 필터의 기본적인 흐름 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 필터 제한 필터에 제한을 두어 서블릿을 호출 하지 않게 할 수 있다. HTTP 요청 -> WAS -> 필터 (적절하지 않을 경우 여기서 중단) 필터 체인 필터를 여러개 중복해서 사용할 수 있다. HTTP 요청 ->WAS-> 필터1-> 필터2-> 필터3-> 서블릿 -> 컨트롤러 필터의 인터 페이스의 메소드 init(): 필터 초기화 메서드 public default void init(FilterConfig filterConfig) throws ServletEx.. 2022. 5. 31. [Spring] 로그인 처리 세션 로그인 처리 세션 앞서 쿠키로만 처리 하면 어떤 문제점들이 발생하는지 알아 봤다. 세션을 이용해서 해당 부분을 보완 해본다. 세션 동작 방식 로그인 1. 로그인 요청 2. 사용자 체크 3. 세션 아이디 생성 4. 응답으로 생성된 쿠키를 헤더에 포함 시킨다. 5. 쿠키가 브라우저의 쿠키 저장소에 등록이 된다 세션동작 방식 로그인 이후 1. 페이지 접근 2. 쿠키에 있는 세션 아이디로 실제 회원정보 조회 3. 해당 정보를 가지고 화면에 보여준다. 세션으로 쿠키의 단점을 보완한점 복잡한 세션Id 생성으로 쿠키값을 변조하여 접근하는것을 막는다. 세션의 만료시간을 두어 쿠키가 탈취 되더라도 문제가 없도록 한다. 예제 코드 package hello.login.web.session; import org.springf.. 2022. 5. 25. [Effective Java] 다쓴 객체 참조 해제 하기 다쓴 객체 참조 해제하기 자바같은경우 GC 가 있어서 자동으로 메모리를 해제해준다. 자바의 가장큰 이점이다 하지만 메모리 누수가 발생하는경우도 많다. 메모리누수가 생기는경우 Static 변수 남용 래퍼 클래스(Wrapper)로 의미 없는 변수 선언 스트림객체 사용후 닫지 않는경우 다쓴 참조(Obsolete reference)를 가지고 있는경우 다쓴 참조를 가지고 있는경우 여기서 정리할건 다쓴 참조를 가지고 있는 경우 를 살펴볼것이다. Stack Code 아래 코드에서 pop() 부분에서 메모리 누수가 발생한다. 이유는 엘리먼트를 꺼내기만 했다 그렇게 되면 앞으로 쓰지않는 객체들을 참조하고 있어 GC 가 메모리를 회수 하지 않는다.. null 처리를 해줘야한다. package ObsoleteReferenc.. 2022. 5. 18. 이전 1 ··· 26 27 28 29 30 31 32 ··· 95 다음 728x90 반응형