천발무금
321
2017-09-14 20:24:47.0
3
175

java 객체에 헤더 붙이기


안녕하세요. 초급개발자입니다.


객체를 주고받는 서버를 만드는 도중 문의드립니다.


java의 객체를 네트워크를 통해 보낼 때 직렬화를 하는 것으로 알고 있습니다.


보낼때 직렬화를 하고, 받을 때 직렬화를 다시 되돌리는 형식으로 구현하고 있는데, 문제는 보내고 받는 객체의 개수가 여러개라 이 객체가 어떤 객체인지 미리 알아야합니다.


HTTP 통신할 때에도 HTTP Header와 Body가 있듯이 객체에도 Header와 Body가 있는 것으로 알고있어서 Header에 이 객체가 어떤 객체인지 객체의 버전정보같은걸 넣고싶은데요


제가 구글링을 잘 못하는지 검색결과가 잘 안나오네요..ㅠ.ㅠ


혹시 간단한 예제나 예제가 있는 사이트 소개해주실 수 있으신지 문의드립니다.

0
0
  • 답변 3

  • Kunie
    278
    2017-09-14 20:46:33.0

    instanceof 로 구분해야하지 않을까요


    여담으로 이럴때는 코틀린이 참 편하긴 할듯요 ㅎㅎ

    0
  • Kunie
    278
    2017-09-14 20:50:02.0 작성 2017-09-14 21:00:22.0 수정됨

    아니면 소켓으로 보내는 객체들의 최상위 클래스를 만들어서 멤버로 타입을 지정해주는 방법도 있을듯 합니다.

    public class D {
    
        private Kind kind; // enum
    
        public D(Kind kind) { this.kind = kind; }
    
        public Kind getKind() { return kind; }
    
    }
    
    public class A extends D { ... }
    
    public class B extends D { ... }
    
    public class C extends D { ... }

    물론 직렬화를 한 후에 이런 구조로 객체를 보내면 Object 를 D 로만 캐스팅한 후 kind 에 따라서 객체타입을 구분하는 식으로요.

    더 좋은 방법이 있을지도 모르지만 당장 생각나는 방법이네요

    0
  • 천발무금
    321
    2017-09-15 10:03:23.0

    Kunie님 답변 감사드립니다 ^^

    여러 방향을 제시해주셔서 감사합니다. 시도해보도록하겠습니다!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.