개발/JAVA

도메인 객체에 Serializable 을 implements 하는 이유

신매력 2013. 2. 7. 13:40

내가 왕신입때 물어봤었던 질문이다.(지금도 쪼렙이지만...)

왜 도메인객체에(혹은 DTO?) Serializable을 implements 하는지.



public class User implements Serializable {

   private String name;

   private int age;

   private String info;


   // ... getter, setter


사용하는 이유는


remote 서버에 전송을 할 때 사용한다. 

클래스에 있는 필드 정보를 직렬화하여, 사용할 수 있게 하는 것이다.

(직렬화 할 때 메소드는 포함하지 않는다고 한다.

즉, 필드들만 직렬화다.)


implements는 했지만 별다른 메소드를 구현할 필요는 없다.



실제 사용하는 예 중에는 memcached를 쓸 때였다.

도메인 객체에 Serializable을 구현하지 않으면 에러가 난다.


캐시에 저장할 때 도메인 객체 단위로 넣어두곤 했는데

직렬화된 도메인 객체 정보를 쓰기 때문인가보다