![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bxB0Oa/btrDkuXnwko/rUy7l2d8xHrpyK6e8SchD0/img.png)
필터, 인터셉터가 필요한 이유 스프링 코드를 작성할 때 공통적으로 처리해야할 업무들이 많다. 공통업무에 관련된 코드를 모든 페이지 마다 작성해야한다면 중복된 코드가 많아지게 되면 소스관리가 힘들어진다. 즉, 공통처리를 위해 활용할 수 있는 것이 3가지가 있다. Filter Interceptor AOP 이중에서 필터와 인터셉터에 대해서 알아보겠다. 필터(Filter) 필터는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)의 앞단에서 정보를 처리한다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것이다. 스프링 컨테이너에 존재하는 빈들을 사용할 수 없어 비즈니스 로직과 연관된 작업을 수행할 수 없다. 대표적으로..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bcnl1c/btrAUxJddLk/3Ah8BNrOTPPw5PdqVEdHGK/img.png)
Lambda Expression java 8부터 추가된 Lambda Expression(람다식)이란 함수를 하나의 식(expression)으로 표현한 것이다. 람다식 이전 public interface Goods { public void doSome(); } public class Computer implements Goods { @Override public void doSome() { System.out.println("do Operation!"); } public class Main { public static void main(String[] args) { Goods com = new Computer(); com.doSome(); } } } 기존 자바에서 interface를 이용해 다형성을 제공하..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/sXnC7/btrAZe2HlSR/07fqgxX2kX6R2qWHvExFW0/img.png)
Immutable(불변) 자바의 객체의 타입에는 Immutable(불변) 타입과 mutable(가변) 타입이 있다. new 연산자로 객체를 생성하면 heap 영역에 객체가 생기고 래퍼런스 값을 가지는 변수가 stack에 생길 것이다. 불변 객체라는 것은 이 객체의 값을 heap영역에서 바꿀 수 없다는 뜻이다. 오직 새 객체를 만들어 래퍼런스 값을 주는 재할당만이 가능하다. // String, Boolean, Integer, Float, Long 등등이 해당 String str = "test"; str = "test2"; // 재할당 불변객체들 Integer, String 등의 API를 살펴보면 public final class Integer, public final class String으로 구성되어있다..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uTI0i/btrzg4br0do/uSG4IIQIsIByqeFJNz3sW1/img.png)
마샬링과 직렬화 직렬화와 마샬링은 거의 비슷하게 사용된다. 위에 사진과 같이 마샬링이 직렬화보다 더 큰 범위를 가지며, 직렬화는 마샬링의 한 부분이다. 마샬링 (Marshalling) 마샬링은 직렬화와 거의 비슷한데 다른점은 코드베이스를 포함하여 객체를 직렬화 한다. 코드베이스? 코드베이스는 객체를 받는이에게 이 객체의 구현을 어디서 찾을 수 있는지에 관한 정보를 말한다. 만약 다른 프로그램에게 객체를 전달했는데 이 객체를 다시 사용 하려면 데이터 타입에 관한 정보가 있어야 한다. 코드베이스는 이 데이터가 어디에 있는지 알려주는 정보를 말한다. 코드베이스가 있기 때문에, 객체의 정보를 알지 못하는 다른 JVM에게 마샬링을 통해서 건네주면, 그 JVM이 언마샬링을 통해, 객체를 원래 상태로 되돌릴 수 있다..