JavaTM 2 Platform
Standard Ed. 5.0

java.io
ÀÎÅÍÆäÀ̽º Serializable

¾Ë·ÁÁø ¼­ºê ÀÎÅÍÆäÀ̽º ¸ñ·Ï :
AdapterActivator, Attribute, Attribute, Attributes, BindingIterator, ClientRequestInfo, ClientRequestInterceptor, Codec, CodecFactory, Control, Current, Current, Current, CustomValue, DataInputStream, DataOutputStream, Descriptor, DHPrivateKey, DHPublicKey, DocAttribute, DomainManager, DSAPrivateKey, DSAPublicKey, DynAny, DynAnyFactory, DynArray, DynEnum, DynFixed, DynSequence, DynStruct, DynUnion, DynValue, DynValueBox, DynValueCommon, ECPrivateKey, ECPublicKey, ExtendedRequest, ExtendedResponse, Externalizable, IdAssignmentPolicy, IDLEntity, IDLType, IdUniquenessPolicy, ImplicitActivationPolicy, Interceptor, IORInfo, IORInterceptor, IORInterceptor_3_0, IRObject, Key, LifespanPolicy, Name, NamingContext, NamingContextExt, NotificationFilter, ObjectReferenceFactory, ObjectReferenceTemplate, ORBInitializer, ORBInitInfo, PBEKey, POA, POAManager, Policy, PolicyFactory, PrintJobAttribute, PrintRequestAttribute, PrintServiceAttribute, PrivateKey, PublicKey, QueryExp, RelationType, RemoteRef, RequestInfo, RequestProcessingPolicy, RSAMultiPrimePrivateCrtKey, RSAPrivateCrtKey, RSAPrivateKey, RSAPublicKey, RunTime, SecretKey, ServantActivator, ServantLocator, ServantManager, ServantRetentionPolicy, ServerRef, ServerRequestInfo, ServerRequestInterceptor, StreamableValue, SupportedValuesAttribute, ThreadPolicy, UnsolicitedNotification, ValueBase, ValueExp

public interface Serializable

Ŭ·¡½ºÀÇ Á÷·ÄÈ­ °¡´É¼ºÀº java.io.Serializable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ Å¬·¡½º¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µË´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÁö ¾Ê´Â Ŭ·¡½º¿¡¼­´Â ±× »óÅ°¡ Á÷·ÄÈ­ ¶Ç´Â Á÷·ÄÈ­ º¹¿øµÉ °ÍÀº ¾ø½À´Ï´Ù. Á÷·ÄÈ­ °¡´É Ŭ·¡½ºÀÇ ¾Æ·ùÇüÀº ¸ðµÎ ±× ÀÚü°¡ Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù. Á÷·ÄÈ­ ÀÎÅÍÆäÀ̽º¿¡´Â ¸Þ¼­µå³ª Çʵå´Â ¾ø°í, Á÷·ÄÈ­ °¡´ÉÇÑ °ÍÀ» ½Äº°Çϱâ À§ÇØÀÎ ¸¸Å­ ±â´ÉÇÕ´Ï´Ù.

ºñÁ÷·ÄÈ­ °¡´É Ŭ·¡½ºÀÇ ¾Æ·ùÇüÀ» Á÷·ÄÈ­ °¡´ÉÇÏ°Ô Çϱâ À§ÇÑ, ¾Æ·ùÇü¿¡¼­´Â ½´ÆÛŸÀÔÀÇ public Çʵå, protected ÇÊµå ¹× (¾×¼¼½º °¡´ÉÇϸé) package ÇÊµå »óŸ¦ º¸Á¸Çϰųª º¹¿øÇϰųª ÇÒ Ã¥ÀÓÀ» »óÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, ¾Æ·ùÇüÀ¸·Î ÀÌ Ã¥ÀÓÀ» »óÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº ±×°ÍÀÌ È®ÀåÇϴ Ŭ·¡½º¿¡ Ŭ·¡½º »óŸ¦ ÃʱâÈ­Çϱâ À§ÇÑ ¾×¼¼½º °¡´ÉÇÑ Àμö ¾øÀ½ÀÇ »ý¼ºÀÚ°¡ ÀÖ´Â °æ¿ì¸¸ÀÔ´Ï´Ù. »ý¼ºÀÚ°¡ ¾ø´Â °æ¿ì´Â Serializable Ŭ·¡½º¸¦ ¼±¾ðÇÏ¸é ¿¡·¯°¡ µË´Ï´Ù. ¿¡·¯´Â ½ÇÇà½Ã¿¡ °ËÃâµË´Ï´Ù.

Á÷·ÄÈ­ º¹¿ø¶§´Â ºñÁ÷·ÄÈ­ °¡´É Ŭ·¡½ºÀÇ Çʵå´Â ±× Ŭ·¡½ºÀÇ public ¶Ç´Â protected Àμö ¾øÀ½ÀÇ »ý¼ºÀÚ¸¦ »ç¿ëÇØ ÃʱâÈ­µË´Ï´Ù. Àμö ¾øÀ½ÀÇ »ý¼ºÀÚ´Â Á÷·ÄÈ­ °¡´É ¼­ºê Ŭ·¡½º·ÎºÎÅÍ ¾×¼¼½º °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Á÷·ÄÈ­ °¡´É ¼­ºê Ŭ·¡½ºÀÇ Çʵå´Â ½ºÆ®¸²·ÎºÎÅÍ º¹¿øµË´Ï´Ù.

°´Ã¼ ±×·¡ÇÁÀÇ ¼øȸÁß¿¡ Á÷·ÄÈ­ °¡´É ÀÎÅÍÆäÀ̽º¸¦ Áö¿ø ÇÏ°í ÀÖÁö ¾ÊÀ» °¡´É¼ºÀÌ ÀÖ´Â °´Ã¼¿¡ Á¶¿ìÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì´Â NotSerializableException°¡ Throw µÇ¾î ºñÁ÷·ÄÈ­ °¡´É °´Ã¼ÀÇ Å¬·¡½º¸¦ ½Äº°ÇÕ´Ï´Ù.

Á÷·ÄÈ­¿Í Á÷·ÄÈ­ º¹¿ø ½Ã¿¡ Ư¼öÇÑ Ãë±ÞÀÌ ÇÊ¿äÇÑ Å¬·¡½º¿¡¼­´Â Á¤È®ÇÏ°Ô ´ÙÀ½°ú °°Àº ½Ã±×´ÏÃĸ¦ °¡Áö´Â Ư¼öÇÑ ¸Þ¼­µå¸¦ ±¸ÇöÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

 private void writeObject(java.io.ObjectOutputStream out) throws IOException private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException; 

writeObject ¸Þ¼­µå¿¡¼­´Â ±× °³°³ÀÇ Å¬·¡½ºÀÇ °´Ã¼ »óŸ¦ Ãâ·ÂÇÒ Ã¥ÀÓÀÌ ÀÖ¾î, ´ëÀÀÇÏ´Â readObject ¸Þ¼­µå·Î º¹¿øÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. out.defaultWriteObject¸¦ È£ÃâÇϸé, °´Ã¼ÀÇ Çʵ带 º¸Á¸Çϱâ À§ÇÑ µðÆúÆ®ÀÇ µµ±¸¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù . ±× ¸Þ¼­µå ÀÚ½ÅÀº ±× ½´ÆÛ Å¬·¡½º ¶Ç´Â ¼­ºê Ŭ·¡½º¿¡ ¼ÓÇÏ´Â »óÅ¿¡ °ü¿©ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. »óŸ¦ º¸Á¸ÇÏ·Á¸é, writeObject ¸Þ¼­µå¸¦ »ç¿ëÇØ °³°³ÀÇ Çʵ带 ObjectOutputStream¿¡ Ãâ·ÂÇÏ´ÂÁö, ¶Ç´Â DataOutput ·Î Áö¿øÇÏ´Â ´Ü¼øÇÑ µ¥ÀÌÅÍ Å¸ÀÔ¿ëÀÇ ¸Þ¼­µå¸¦ »ç¿ëÇÕ´Ï´Ù.

readObject ¸Þ¼­µå´Â ½ºÆ®¸²·ÎºÎÅÍ Àбâ Ŭ·¡½ºÀÇ Çʵ带 º¹¿øÇÒ Ã¥ÀÓÀÌ ÀÖ½À´Ï´Ù. in.defaultReadObject ¸Þ¼­µå¸¦ È£ÃâÇØ, ±× °´Ã¼ÀÇ ºñ static ÇÊµå ¹× ºñ transient Çʵ带 º¹¿øÇϱâ À§ÇÑ µðÆúÆ®ÀÇ µµ±¸¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù . defaultReadObject ¸Þ¼­µå´Â ½ºÆ®¸²ÀÇ Á¤º¸¸¦ »ç¿ëÇØ, ÇöÀçÀÇ °´Ã¼³»ÀÇ ´ëÀÀÇÏ´Â À̸§À» ºÙÀÏ ¼ö ÀÖ¾ú´ø Çʵ忡¼­ ½ºÆ®¸²¿¡ º¸Á¸µÈ °´Ã¼ÀÇ Çʵ带 ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â »õ·Î¿î Çʵ带 Ãß°¡Çϱâ À§Çؼ­ Ŭ·¡½º°¡ Àü°³µÇ´Â °æ¿ì¸¦ Ãë±ÞÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå ÀÚ½ÅÀº ±× ½´ÆÛ Å¬·¡½º ¶Ç´Â ¼­ºê Ŭ·¡½º¿¡ ¼ÓÇÏ´Â »óÅ¿¡ ±×°Í ÀÚ½ÅÀÌ °ü¿©ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. »óÅ´ writeObject ¸Þ¼­µå¸¦ »ç¿ëÇØ °³°³ÀÇ Çʵ带 ObjectOutputStream¿¡ Ãâ·ÂÇÏ´ÂÁö, ¶Ç´Â DataOutput ·Î Áö¿øÇÏ´Â ±âº» µ¥ÀÌÅÍÇü¿ëÀÇ ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î ÀúÀåÇÕ´Ï´Ù.

½ºÆ®¸²¿¡ °´Ã¼¸¦ Ãâ·ÂÇÒ ¶§ »ç¿ëÇÏ´Â ´ëü °´Ã¼¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Â Á÷·ÄÈ­ °¡´É Ŭ·¡½º¿¡¼­´Â ´ÙÀ½ÀÇ ½Ã±×´ÏÃĸ¦ Á¤È®ÇÏ°Ô ÁöÁ¤ÇØ, ÀÌ Æ¯º°ÇÑ ¸Þ¼­µå¸¦ ±¸ÇöÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

 ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException; 

ÀÌ writeReplace ¸Þ¼­µå°¡ Á¸ÀçÇÏ´Â °æ¿ì´Â Á÷·ÄÈ­·Î ÀÌ ¸Þ¼­µå°¡ È£ÃâµË´Ï´Ù. ¶Ç, ÀÌ ¸Þ¼­µå´Â Á÷·ÄÈ­ µÇ´Â °´Ã¼ÀÇ Å¬·¡½º³»¿¡¼­ Á¤Àǵǰí ÀÖ´Â ¸Þ¼­µå·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡ ÀÌ ¸Þ¼­µå¿¡¼­´Â private, protected ¹× package-private ·Î ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù . ÀÌ ¸Þ¼­µå¿¡ ´ëÇÑ ¼­ºê Ŭ·¡½ºÀÇ ¾×¼¼½º¿¡ ´ëÇؼ­´Â java ¾×¼¼½º °¡´É¼º ±ÔÄ¢¿¡ ÁØ°ÅÇÕ´Ï´Ù.

´ëü °´Ã¼ÀÇ ÀνºÅϽº¸¦ ½ºÆ®¸²·ÎºÎÅÍ ÀоîµéÀÏ ¶§ ±× °´Ã¼¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ Àִ Ŭ·¡½º¿¡¼­´Â ´ÙÀ½ÀÇ ½Ã±×´ÏÃĸ¦ Á¤È®ÇÏ°Ô ÁöÁ¤ÇØ, ÀÌ Æ¯º°ÇÑ ¸Þ¼­µå¸¦ ±¸ÇöÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

 ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException; 

ÀÌ readResolve ¸Þ¼­µå´Â writeReplace¿Í °°Àº È£ÃâÇØ ±ÔÄ¢°ú ¾×¼¼½º °¡´É¼º ±ÔÄ¢¿¡ ÁØ°ÅÇÕ´Ï´Ù.

Á÷·ÄÈ­ ·±Å¸ÀÓÀº Á÷·ÄÈ­ °¡´É Ŭ·¡½º¿Í ¹öÀü ¹øÈ£ (serialVersionUID)¸¦ °ü·ÃÁþ½À´Ï´Ù. ¹öÀü ¹øÈ£´Â Á÷·ÄÈ­ º¹¿ø½Ã¿¡ Á÷·ÄÈ­ °´Ã¼ÀÇ ¼Û½ÅÃø°ú ¼ö½ÅÃøÀÌ Á÷·ÄÈ­ ȣȯ¼ºÀÌ ÀÖ´Â ÀÌ °´Ã¼ÀÇ Å¬·¡½º¸¦ ·ÎµåÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ °ËÁõÇϱâ À§Çؼ­ »ç¿ëµË´Ï´Ù. ¼ö½ÅÃøÀÌ ¼Û½ÅÃøÀÇ Å¬·¡½º¿Í serialVersionUID°¡ ´Ù¸¥ °´Ã¼ÀÇ Å¬·¡½º¸¦ ·ÎµåÇßÀ» °æ¿ì, Á÷·ÄÈ­ º¹¿øÀÇ °á°ú´Â InvalidClassExceptionÀÌ µË´Ï´Ù. Á÷·ÄÈ­ °¡´É Ŭ·¡½º´Â µ¶ÀÚÀûÀÎ serialVersionUID¸¦ ¸í½ÃÀûÀ¸·Î ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡´Â static ¶ÇÇÑ final long Çü ÇÊµå ¡¸serialVersionUID¡¹¸¦ ¼±¾ðÇÕ´Ï´Ù.

 ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L; 
Á÷·ÄÈ­ °¡´É Ŭ·¡½º°¡ ¸í½ÃÀûÀ¸·Î serialVersionUID¸¦ ¼±¾ðÇÏÁö ¾Ê´Â °æ¿ì, Á÷·ÄÈ­ ·±Å¸ÀÓÀº ¡¸Java(TM) Object Serialization Specification¡¹¿¡ ±â¼úµÇ°í ÀÖµµ·Ï, ´Ù¾çÇÑ ±¹¸é¿¡ ±â¹ÝÇØ ±× Ŭ·¡½ºÀÇ µðÆúÆ®ÀÇ serialVersionUID Ä¡¸¦ °è»êÇÕ´Ï´Ù. ±×·¯³ª, µðÆúÆ®ÀÇ serialVersionUID °è»êÀº Ŭ·¡½ºÀÇ »ó¼¼ Á¤º¸¿¡ Å©°Ô Á¿ìµÇ¾î ÀÌ Å¬·¡½ºÀÇ »ó¼¼ Á¤º¸´Â °Ô´Ù°¡ ÄÄÆÄÀÏ·¯ÀÇ ±¸Çö »óȲ¿¡ Á¸ÇÏ°í ÀÖÀ¸¹Ç·Î Á÷·ÄÈ­ º¹¿ø½Ã¿¡ ¿¹±âÄ¡ ¾ÊÀº InvalidClassException°¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¸·±â À§Çؼ­µµ, ¸ðµç Á÷·ÄÈ­ °¡´É Ŭ·¡½º°¡ serialVersionUID Ä¡¸¦ ¸í½ÃÀûÀ¸·Î ¼±¾ðÇϵµ·Ï ¼³Á¤ÇÏ´Â °ÍÀ» °­ÇÏ°Ô ÃßõÇÕ´Ï´Ù. Java ÄÄÆÄÀÏ·¯ ±¸ÇöÀÌ Â÷ÀÌ°¡ ³ªµµ, Ç×»ó ÀÏÁ¤ÇÑ serialVersionUID Ä¡¸¦ ¾òÀ¸·Á¸é, Á÷·ÄÈ­ °¡´É Ŭ·¡½º°¡ ¸í½ÃÀûÀÎ serialVersionUID Ä¡¸¦ ¼±¾ðÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¶Ç, ÀÌ ¼±¾ð¿¡¼­´Â ÇÒ ¼ö ÀÖ´Â ÇÑ private ¼ö½ÄÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. ¿Ö³ÄÇϸé, ÀÌ ¼±¾ðÀº ¹Ù·Î ¿·ÀÇ ¼±¾ð Ŭ·¡½º ¹Û¿¡ Àû¿ëµÇÁö ¾Ê°í, serialVersionUID Çʵå´Â »ó¼Ó ¸â¹ö·Î¼­ »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
JDK1. 1
°ü·Ã Ç׸ñ:
ObjectOutputStream, ObjectInputStream, ObjectOutput, ObjectInput, Externalizable


JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.