개인참고자료/자바(네트워크)

객체 스트림

경진 2008. 7. 15. 00:40
객체 스트림 

객체스트림은 객체를 전송시킬 수 있는 방법을 제공한다.

객체 안에 저장된 내용을 파일로 저장하거나 네트워크로 전송하려면 많은 노력이 필요하다.
객체에 있는 필드의 내용을 일일이 읽어 들여 하나씩 저장하거나 전송을 해야 하기 때문이다. 그리고 네트워크 프로그래밍 이라면 반대 쪽에서 전송한 데이터를 읽어 들이기 위해 전송한 순서대로 읽어 들여야 한다는 번거로움도 있다.

이런 문제를 쉽게 해결할 수 있게 해주는 것이 객체 스트림이다. 그렇지만 객체 스트림의 경우에는 마샬링(marshaling)과 언마샬링(unmarshaling)이라는 작업을 해야하므로 추가적인 과부하가 발생할 수 있다는 문제가 있다 하지만 요즘의 프로그래밍의 추세는 과부하보다는 조먿 손쉬움 프로그래밍 좀더 쉽게 유지보수 할 수 있는 방법론을 선호하기 때문에 이러한 문제는 크게 부각되지 않는다.

이런 이유로 객체를 파일에 전송하거나 네트워크를 통해서 전송할 때 객체 스트림을 사용한다. 객체 스트림을 꼭 알아야 할 중요한 이유가 한가지 더 있다. 객체 스트림은 자바 RMI의 기반 기술이다. 따라서 자바 RMI를 이해하려면 객체 스트림에 대한 확실한 이해가 필요하다.

자바 RMI는 또한 EJB의 기반 기술이기도 하다. 즉, EJB를 학습하고자 한다면 객체 스트림, 자바 RMI를 순서대로 공부한 후 EJB를 공부한다면 개념적으로 훨씬 쉽게 학습할 수 있을 것이다. 반대로 얘기하자면, EJB를 사용한다는 것은 내부적으로 객체 스트림을 사용한다는 것을 의미한다. 그리고 RMI를 사용한다는 것은 내부적으로 객체 스트림을 사용한다는 의미다.

우리는 보통 Obejct-Oriented Programming(이하 OPP)를 객체지향 프로그래밍이라고 번역해서 사용한다. 그렇지만 객체 지향 프로그래밍이라고 번역하는 것보다는 물체 중심적이라고 번역하는 것이 알맞다는 논란이 있다.