Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ki-sd 님의 블로그

[2026-04-08] 스트림(Stream) 심화와 객체 직렬화(Serialization)를 이용한 회원 CRUD 본문

JavaStudy

[2026-04-08] 스트림(Stream) 심화와 객체 직렬화(Serialization)를 이용한 회원 CRUD

ki-sd 2026. 4. 17. 21:31

데이터의 흐름을 제어하는 I/O 스트림의 깊은 원리를 파악하고, 객체 자체를 파일로 영구 저장하는 고급 기술을 습득했다.

 

1. 바이트 스트림과 문자 스트림의 분리

  • 그림, 오디오, 영상 등 모든 종류의 데이터를 1바이트씩 처리하는 바이트 기반 스트림(InputStream, OutputStream)과, 텍스트 데이터의 한글 깨짐을 방지하기 위해 2바이트 단위로 묶어 처리하는 문자 기반 스트림(Reader, Writer)의 용도를 정확히 구분했다.
  • 성능 향상을 위해 내부적으로 메모리 버퍼를 사용하는 보조 스트림(BufferedReader, BufferedWriter)을 덧붙여(Chaining), 디스크 접근 횟수를 줄이고 입출력 속도를 획기적으로 개선하는 아키텍처를 실습했다.

2. 객체 직렬화(Object Serialization)

  • 힙 메모리에 존재하는 객체는 프로그램이 종료되면 사라진다. 이 객체의 상태(필드 값들)를 연속적인 바이트 데이터로 변환하여 파일이나 네트워크로 전송할 수 있게 만드는 기술이 '직렬화'다.
  • ObjectOutputStream을 통해 객체를 .txt 파일에 기록하고, ObjectInputStream으로 다시 메모리에 복원(역직렬화)하는 과정을 익혔다. 직렬화 대상 객체는 반드시 Serializable 인터페이스를 구현해야 한다는 시스템 규약을 확인했다.
  • 이를 응용해 파일 기반의 회원 관리 CRUD(Create, Read, Update, Delete) 시스템을 완성하며 데이터 영속성의 실무적 흐름을 구축했다.