JSON과 직렬화/역직렬화: 데이터 교환의 핵심
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

제목

JSON과 직렬화와 역직렬화

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

데이터 분석

대상자

  • 개발자
  • 중간 수준 (기본 개념과 실무 적용 사례 포함)

핵심 요약

  • JSONkey-value 구조의 텍스트 기반 데이터 형식으로, 가볍고 인간이 읽기 쉬우며 여러 언어 간 데이터 교환에 적합하다.
  • 직렬화(Serialization)는 객체를 바이트 스트림으로 변환하는 과정이고, 역직렬화(Deserialization)는 이를 다시 객체로 복원하는 과정이다.
  • Java의 Serializable이진 직렬화로, 다른 언어와의 연동성이 떨어지며 버전 호환성 문제가 발생할 수 있다.

섹션별 세부 요약

1. JSON의 특징

  • 문자열 기반 텍스트로, 프레임워크 및 언어 독립적이다.
  • API 데이터 반환설정 파일 등에 주로 사용된다.
  • 가볍고 사람이 읽기 쉬워 디버깅에 유리하다.

2. 직렬화/역직렬화 정의

  • 직렬화는 객체를 전송/저장 가능한 형식(문자열 또는 바이트)으로 변환하는 기술이다.
  • 역직렬화는 직렬화된 데이터를 객체로 복원하는 과정이다.
  • Java Serializable바이트 기반 직렬화로, .ser 파일에 저장된다.

3. Java의 직렬화 구현

  • Serializable 인터페이스를 구현해야 ObjectOutputStream으로 직렬화 가능하다.
  • ObjectInputStream으로 역직렬화 시, Serializable 인터페이스 구현이 필수적이다.
  • 버전 호환성 문제다른 언어 연동성 부족이 단점이다.

4. JSON vs Java Serializable

  • JSON텍스트 기반으로, 다른 언어(JavaScript, Python, Java 등)와 호환성이 우수하다.
  • Java Serializable이진 형식으로, 자바 전용이며, 데이터 크기가 크고 호환성 문제가 발생할 수 있다.
  • JSON, XML, YAML은 모두 텍스트 기반 직렬화 포맷이며, 사용 목적과 환경에 따라 선택해야 한다.

결론

  • JSON다국어 지원가독성 측면에서 우수하므로, 크로스 플랫폼 데이터 교환 시 우선 선택해야 한다.
  • Java Serializable자바 생태계 내부에서 사용할 때 유리하지만, 다른 언어와의 연동JSON을 권장한다.