�� ���� (3� ��)

  1. ��: ��� (Marshalling)� ��� � ��� ��� ��� �� �� ��� �� ��� ����� ������, ���� (Unmarshalling)� � ����� ��� ���� �� ��� � ��� ���� �� ����.
  2. ��: �� ����� ���� � �� ����� �� ��� ��� ��� ���� ���� �� �����, RPC, ��� �, �� ��� ������ ��� ��.
  3. ��: ���� XDR, JSON, Protocol Buffers � ��� ��� ��� ��� �� �����, ��� ��, ��� �� ���, �� �� �� ���� ����� IPC � ���� ��� �� ����.

. �� � ��� (Context & Necessity)

  • ��: ���� ���� ��� ��� ���� ��� ���� ���(serializing)����, ����� ���� ��� ���� �� ��� �� ��� ����(deserializing)����. � ��� ��� ��, �� ��, ���ness �� ���� ���� ����� �� ��.

  • ���: ����� �� ��� �� ������, � ����� ��� ��� ��(���, �� ��� ��� �)� �� ����� �� ��� � ��. ��� ���� �� ���� ��� ����� ����, ���� ���� ��� ���� ��� ���� ��, �� ���� �� �� ����� ��. �� �� �� ���, ���� �������, ��� �� IPC��� fundamenta��.

  • � ��: ���� ���� �� �� �� ��� �� �� ��� � Place� �� ��(�� �� ���� ���)��, ����� ���� ���� �� �� ��� ����. ��� ��� ���� ���� �� ��� � ��.

  • �� �� � �� ��:

    1. �� RPC� ��� �� ��: 1980�� � Sun RPC�� ��� ����(���, �� �)� ���� �� ��� ��� �����.
    2. �� �� ��� ��� ���: Java� Serializable, .NET� BinaryFormatter � �� ���� �� �� � ��� �� ��� ����� ������.
    3. �� ��� ��� ��: XDR, ASN.1, Protocol Buffers, Avro �� ���� ��� ����� ������.

��� ��� ��� ��� �� ��� �� ��� ����.

   
                      ��� �� (��� ��)                       
   
                                                                      
     �� � ��� � ���                                         
                                     
      struct Person {                                               
          char name[20];                                            
          int age;                                                  
          char *address;              �� �� ��               
      };                                                            
      ����: name="Alice", age=30,                               
          address=0x7ffee4b0c1a0 (� ���)                         
                                     
                                                                      
     ��� � ��� ���                                          
       
      [name: 'Alice'\0 padding] [age: 30 (little endian)]           
      [address length: 18] [address chars: '123 Main St\0']         
       
                                                                      
     �� � ���� ��                                            
     1. ������ name� age� ��                                
     2. address ��� �� �� ��� ��� ��                   
     3. address ���� ����, ���� � �� ��� ��       
     4. ��� Person ���� �� � ���� ���                
   

[����� ��] � ������ �� ��� ���� ��� ���� ���� � ���� ��� �� ��� ����. �� ���� ���� ���� �� ���� ��� ���� ����, �� ���� � ���� ���� ���� ������ ��� ���� �����. ��� ��� �� ���� �� ���� ��� ��� ���� ���, ������ ��� ���� ���� ��� ��� ���� ��.


. ���� � �� �� (Deep Dive)

�� ��

������� ���� ����
�� ������ �� �� ��� ��� ��, ��, ��� ��XDR �� ��, Protocol Buffers �� ����� �� �� ��
�� �����/���� ��� ���� �� �� ��, ����� ��malloc/free, �� ����� �� �� ��
��� ����� ��� ��� ��� ��� �� �� ����� ��htonl/ntohl, XDR ����� �� �� ��
��� ����� � �� ��� ������ ���� ���� ������ ��(deep copy), ��� ����� �� �� � ���
�� ����� �� ����� �� �� �� ��� ��� ��Protocol Buffers �� ��, Avro �������� ���� ��

��� �� �� ��

��� ��� �� ��� �� ��� �����, � ���� ���� � �� ���� ��.

   
                     ��� ��� ���                              
   
                                                                       
     1. �� �� ��                                                 
        - �� �� �� (���/��� ��)                          
        - �� �� � �� ��                                       
        - ���/�� �� �� (�� �� �� ��)                  
                                                                       
     2. �� �� ��                                                 
        - �� �� �� (�� �� + �����)                      
        - �� � �� �� �� �� �� ��                        
                                                                       
     3. ��� ��� ��                                             
        - �� ��: � ��� (��� �� ��)                      
        - ���: �� + ��� ��� (� �� �� ��_prefix)      
        - ��/���: �� + �� �� ���                         
        - ���: �� ��� �� ��_NULL ��                      
        - ��� �� ��: ��� ��� ��                         
                                                                       
     4. ����� �� ��                                           
        - �� ��, ��� ���                                     
        - ��� �� �� (�� ��)                                 
                                                                       
     5. �� �� ��                                                 
        - ���� ��� ��� � �� �� ��                     
   

[����� ��] � ������ ���� �� ��� ���� ����. �� 3���� ��� ��� ��� �� ��� ��� ����� ����, 1����� �� ��� �� ��� ���� �� ��� �� ���� ���� ����. 4��� ������ �� �� ���� �� ����.


. �� �� � ��� ��

�� 1: ��� �� ��

�� ����� �� ��XDR ���� ��� (Java/.NET)Protocol Buffers
�� ���� (�� ��� ��)�� (�� ��)�� (�� ��)�� (�� �� ��)
����� ������� ������ (���� ����)
�������� (XDR ��)�� (����)�� (�� �� ��)
����� �� ���� (��)�� � ���� (��� �� ��)
������� �� ����� ����� �� ��

��� �� ���� �� �� ����� �� �����, ��� �� �� ��� ��, �� ���� ����� ��� �� ����� ��. Protocol Buffers� ��� ��� ��� ���� ���� �� ����.

�� �� ��

  • ��� ���� (Computer Network): TCP/IP ���� ���� ������ ��� ���� ���� �� �� ����. HTTP� JSON/XML ��, gRPC� Protocol Buffers body �� �� ���� ����.
  • ������ (Database): ��-�� ��(ORM) ������� ������ ���� �� � ��� ���/���� ����, JDBC� ODBC ���� ����� ��� ��� ����.

���� ���� OSI ��� �� ��� ������ ����, � ��� ��� � � ��.

   
              ���� OSI �� �� ��                             
   
                                                                      
     7��: �� �� (Presentation Layer)                            
        - ��� �� ��, ���, ��                              
        - **���/���� ��**                                    
                                                                      
     6��: �� �� (Session Layer)                                 
        - �� ��, ��, ��                                       
                                                                      
     ...                                                              
                                                                      
     ���� �� ���� �����, �� ���� �� ��       
     ������ ���� ��� ���� ��� ���� ����.  
   

[����� ��] OSI 7�� ���� ���� �� ��(Presentation Layer)� ���. � ��� ������� ��� ���� ���� ��� ��� ��� �����, ��� ���� ������� �� ��� ��� ���� ��� ��. ��� ���� ��� ���� ���� �� ���, ��� ��, ��� �� ���, �� �� �� ���� ���� ��� � �� �� ��� ��� ���� �� �� ����.


. �� �� � ���� ��

�� ����

  1. ���� -- �� �� ������ ��� �� �� ��: �� ���� �� ����� �� ��(��, ��, �� �)� ��� �� ��� ���� ��. � ���� �� ��� �� �� ���� ��� � ���, ��� ��� �� �� ���� �� �� �� ��� ����� ������ �� ��� ��� ���� � ��. �� ��� �� ��� ��� ����, ������ ���� �� �� ��� �����.

  2. ���� -- ������� � ��� ����� ��� ��: ��� �� ���� ���� ���������� ��� ���� ���� � ��(�: ��� �� ��). ��� �� �� �� �� ��(Protocol Buffers ��)� ����, ��� ���� ��� ��� ���� ��� ���� ��� ��� ����� ��� � �� ���� ��� � ��. � �� ��� ������ ��� �� �� ��� ���� ��.

  3. ���� -- ���� ������� �� ���: �� ��� �� ��� �� ��� �� �� ����� � �� ��� ��� ��. ��� RAM� ������ ��� �� ���� ��� �����, ��� ���� ��(�� �� ��)� ���� ��. �� ��� �� ��� ��� ���� ��� ��� ��.

�� ��� ��� "�� ��� ������ ��"� ���, ���� ��, ��, ��� �� ���, �� �� �� �� �� ����� ���� ��. �� ���� ���� ���� ��� ��� ��� � ���� � ��� ��� ���.

   
                  ��� �� �� ���� ���                     
   
                                                                       
      [��� ���� ����?]                                      
                                                                      
                                                                      
         ��� �� �����?                                       
              �  [�� ��� (��� ���) ��]           
                                                                     
                                   [��� ��� ��]            
                                                                      
              ���  [��� ��� �� ��]                
                                                                       
         �� ����� stringent��?                                
              �  [�� ��� �� �� + ��� ��� �]   
                                                                     
                                   [��� ���� ����]      
                                                                      
              ���  [�� ��� ����� (JSON �) ��]  
                                                                       
         ��� ��� �����?                                     
              �  [�� �� �� �� �� ��� ��]       
                                                                     
                                   [Protocol Buffers, Avro ��]   
                                                                      
              ���  [��� ��-��-� �� sufficient]    
                                                                       
      �� ��: �� vs ��� vs �� �� � ��� ��            
   

[����� ��] � ���� ��� ��� "��� ��� ��� �� ��� ��� ���"�� ���. ��� ���, �� ����, ��� �� ��� �� �� ��� ��� ���� ��. ��� ����� �� ���� �� �����, ���� �� ���� �� ����� Protocol Buffers� �� ��� �� ��� ����. ��� � �� ��� sempre "�� ��� ��� ���� ���?"�� ���� ��.

�� �����

  • ���: ���� ���� ���� �� ������?(�� �� �� ��) �� ����� ��� �� �� ��� ������? ��� �� ��� ���� ������?
  • �� ���: �� ��� ����� �� ��� �� �����? ����� ��� �� �� �� ��� �����?

����

  • �� �� ��� (Shallow Copy Marshalling): ��� �� ���� ���� ���� ���� �� �. �� ��� ��� �� ��� �� ���� ����.

  • �� �� ��: �� �� ���(���, �� �)� ��� � �� ��� ���� �� �� ��� ��� ��� � �� �.

  • � �� �� ��: �� �� ���� �� � ��� �� �� � ���� ��� �� �� ���, ���� �� ��� �� �� � � �� �� ���� �� ��.


. ���� � ��

��/�� ����

����� ���� ��� ��
���� ��� ��� �� ��� ����� ��� ����� �� �� �� 0%
���� ��� �� �� ���� ����� ����� �� 40~60% ��
����� ��� �� ����� ��� ���� �� � �� ��� ��

�� ��

  • �� ���� (Zero-Copy Serialization): ��� �� �� ��� ��� ��� ��� �� ��� ��� ��� ��� �� ���(�: Apache Arrow� ��� ��).
  • ���� �� ���: ���� ��� ��� NIC��� ���� ��� ��� ��� ���� CPU ���� �� � ��.
  • �� ��� ��: ����� ���� � ��� �� � �� ��� �� ��� �� ���.

��� ��� �� ��� ����� ����, �� ���� ���� �� �����, �� ��� �� ��� ���� ���� ��� ��� � ��.

   
                        ��� �� �� ���                                     
   
                                                                                    
     1980�� �     1990�� ��     2000�� ��     2020��+                  
                                                                                
                                                                                
    [�� ���]   [��� ��]   [��� �� ���]   [�� ��]           
                                                                                
                                                                                
                                          ���� �� ��                    
                                                                                
                                          �� ��� ��                      
          ��� � �� �� �� �� ��                                   
                                                                                    
     �� ��:                                                                     
     "��� ��" -> "�� ��" -> "���� ��" -> "�� ���"               
   

[����� ��] 1980�� ��� � �������� ���� ��� ��� ���� ���, 1990�� ���� Java Serializable � �� ���� �� ���� ����� ����, 2000�� ���� Protocol Buffers � ��� ��� ���� ��� ��� ��� ��� ��� ����. ��� �� �� ��� ���� ��� ���� ���, ���� �� ��� ����� ���� ��� ������� �� ��� � ���.


� �� �� � (Knowledge Graph)

�� ���� � ��� ��
XDR (External Data Representation)���� � ��� �� ����, � ��� ��� ��� ��� �� ��� ����.
Protocol Buffers���� ��� ���� ��� ����, ���� ��� ����.
Serializaton (���)���� ���� ����, ��� ��� ����� ��� � �� �� ����.
Deserialization (����)����� ����, ���� ���� �� ��� ���� ����.
������ ����HTTP, gRPC ��� ��(body)� ���/���� ���� ����.

� ���� �� 3� �� ��

  1. ���� ���� ��� �� �, ����� �� ��� �� �� �� ��. ��� ��� ��� �� ���� �� � ��.
  2. ����� ���� �� ��� ���� ��� ����� ��� ����, ��� ��� ��� � � ��.
  3. ��� ����� ��� ��� ���� ��, ������ �� ��� ���� �� � ��, ����� ��� �� ��� � � ���.

(End of file - total lines will be around 300)