java.lang.ClassNotFoundException: com.ClientNavis.MyinfoValues
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.ServerNavis.serverTest.<init>(serverTest.java:29)
at com.ServerNavis.serverTest.main(serverTest.java:41)

클라이언트(안드로이드폰)와 서버(PC)간의 소켓 통신중에 발생한 에러 처리에 관해 질문을 남깁니다.

기본적인 소켓 사용과 객체 직렬화 정의에 관해선 숙지한 상태로 코드를 짰으며 (코드는 이상없이 돌아가기에 첨부하지 않았습니다.)

char,string,int,long등등 Primitive type 값을 통한 소켓 통신은 아무 문제 없이 잘 돌아갑니다.
ex)-------------- 성공시나리오 ---------------
<Client.java>
...
String c= "i'm client"; // int or double or long ...etc as Primitive type
oos.writeObject(c);
...
<Server.java>
...
String s;  // int or double or long ...etc
s = ois.readObject();
...


그러나 임의의 객체 type을 이용하는 경우 ClassNotFoundException 와 같은 문제가 발생합니다.
ex)-------------- 실패시나리오 ----------------
<Member.java implements 직렬화>
id,pwd,name,number등등등 정의정의정의...set우짜구...get저쩌구...

<Client.java>
...
Member mb = new Member( ID, PWD, NAME.....)
oos.writeObject(mb);
...

<Server.java>
...
Member mb = (Member)ois.readObject();
...


여기까지의 테스트 수행을 통해 혹시, 안드로이드 내부의 소켓에서는 직렬화를 지원하지 않는것인지? 하는 의문이 들었으며,

이를 해결하기 위한 대책은 무엇이 있을까 라는 점이었습니다.

구글링을 통해 parcelable을 이용하는 방법, 혹은 service단에서 소켓을 열고 통신하는 방법,

이렇게 2가지를 제시하는 글을 읽어보았는데 어떤식으로 접근해야 하는게 보다 효율적일지 궁금하여 질문을 남깁니다.

,,, 고수님들의 적절한 관심과 답변을 기다리겠습니다.