¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  12Àå °´Ã¼Á÷·ÄÈ­  12.3.2 transient  

 

    12.3.2 transient

½ºÆ®¸²À» ÀÌ¿ëÇØ¼­ Á÷·ÄÈ­ ÇÒ ¶§ °´Ã¼ÀÇ ¸ðµç »óÅÂÁ¤º¸¸¦ Á÷·ÄÈ­ÇÏ°Ô µË´Ï´Ù. ÇÏÁö¸¸, Ŭ·¡½º¸¦ µðÀÚÀÎÇÏ´Ù º¸¸é ¼ø°£ÀûÀ¸·Î »ç¿ëÇÏ°í ¹ö¸®´Â ÇÊ¿ä¾ø´Â Á¤º¸µµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Á¤º¸¸¦ Á¦¿Ü ½Ã۱â À§Çؼ­ transientŰ¿öµå¸¦ »ç¿ëÇÕ´Ï´Ù.

 

Ŭ·¡½º¸¦ ¸¸µé´Ù º¸¸é Áß¿äÇÏÁö´Â ¾ÊÁö¸¸ Àü¿ª º¯¼ö·Î »ç¿ëÇϱâ À§Çؼ­ ¾î¿ ¼ö ¾øÀÌ ¸â¹öº¯¼ö·Î ¸¸µå´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿©·¯ºÐµµ Ŭ·¡½º¸¦ À¢¸¸Å­ ¸¸µé¾î º¸¾Ò´Ù¸é ÀÌ·± °æÇèÀº ÈçÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·± Á¤º¸´Â º¸°üÇÒ Çʿ䰡 ¾ø´Â °ÍÀÌ Çã´ÙÇÕ´Ï´Ù. À̶§ ÀúÀåÇÒ Çʿ䰡 ¾ø´Ù°í »ý°¢µÈ´Ù¸é Á¢±ÙÁöÁ¤ÀÚ ´ÙÀ½¿¡ transient¸¦ ºÙÀ̸é Á÷·ÄÈ­¿¡¼­ ¿ÏÀü Á¦¿ÜµÇ¾î ¹ö¸³´Ï´Ù. ¿¹Á¦¸¦ ÀÌ¿ëÇØ¼­ Á÷Á¢ ±¸Çö ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

TransientObject.java(transient¸¦ Æ÷ÇÔÇÑ Á÷·ÄÈ­ °´Ã¼)

import java.io.*;

public class TransientObject implements Serializable{

   private String name;    // À̸§

   private String dept;      // ºÎ¼­

   private transient String title;    // Á÷Ã¥

   public TransientObject (String name, String dept, String title) {

       this.name = name;

       this.dept = dept;

       this.title = title;

   }

   public String toString(){

       return name + ":" + dept + ":" + title;

   }

}

TransientObjectTest.java(transient¸¦ Æ÷ÇÔÇÑ Á÷·ÄÈ­ °´Ã¼ Å×½ºÆ®)

import java.io.*;

public class TransientObjectTest {

      

   public static void main(String[] args) throws Exception {

 

       FileOutputStream fos = new FileOutputStream("object.txt");

       ObjectOutputStream oos = new ObjectOutputStream(fos);

       TransientObject so1 = new TransientObject("È«±æµ¿", "Ãѹ«ºÎ", "°úÀå");

       TransientObject so2 = new TransientObject("±è»ñ°«", "¿µ¾÷ºÎ", "°úÀå");

       TransientObject so3 = new TransientObject("¾ÏÇà¾î", "ÀλçºÎ", "°úÀå");

       oos.writeObject(so1);

       oos.writeObject(so2);

       oos.writeObject(so3);

       oos.close();

 

       FileInputStream fis = new FileInputStream("object.txt");

       ObjectInputStream ois = new ObjectInputStream(fis);

       TransientObject rso1 = (TransientObject)ois.readObject();

       TransientObject rso2 = (TransientObject)ois.readObject();

       TransientObject rso3 = (TransientObject)ois.readObject();

       System.out.println(rso1.toString());

       System.out.println(rso2.toString());

       System.out.println(rso3.toString());

       ois.close();

   }

}

C:\JavaExample\12>javac TransientObject.java

C:\JavaExample\12>javac TransientObjectTest.java

C:\JavaExample\12>java TransientObjectTest

È«±æµ¿:Ãѹ«ºÎ:null

±è»ñ°«:¿µ¾÷ºÎ:null

¾ÏÇà¾î:ÀλçºÎ:null

 

SerializableÀ» ±¸ÇöÇϱâ À§ÇÑ ¿¹Á¦ ºÎºÐ¿¡ ÇÑ ºÎºÐÁ¤µµ¸¦ ¹Ù²Ù¾î º¸¾Ò½À´Ï´Ù. ´ÙÀ½ ±¸¹®¿¡ transient¸¦ ºÙ¿´´Ù´Â °Í À̿ܿ¡´Â º°·Î ¹Ù²ï °ÍÀÌ ¾ø½À´Ï´Ù.

 

n        private transient String title;

 

Á÷·ÄÈ­ ÇÒ ¶§ String titleºÎºÐÀÌ Á¦¿Ü µÇ¾ú±â ¶§¹®¿¡ °á°ú´Â titleºÎºÐÀÌ null·Î Ãâ·ÂµÇ°í ÀÖ½À´Ï´Ù.

n        È«±æµ¿:Ãѹ«ºÎ:null

n        ±è»ñ°«:¿µ¾÷ºÎ:null

n        ¾ÏÇà¾î:ÀλçºÎ:null

 

 transient´Â º¹ÀâÇÑ °³³äÀÌ ¾Æ´Õ´Ï´Ù. ´ÜÁö °´Ã¼¸¦ Á÷·ÄÈ­ Çϴµ¥ Á¦¿ÜÇϰڴٴ ÀÇ¹Ì À̿ܿ¡´Â º°´Ù¸¥ °³³äÀº ¾ø½À´Ï´Ù. ÇÏÁö¸¸, ÇÁ·Î±×·¥»ó¿¡¼­ ²À ÀúÀåÀ» ÇØ¾ß ÇÒ °Í°ú ÀúÀåÇÏÁö ¸»¾Æ¾ß ÇÒ °ÍÀ» ±¸ºÐÇÏ´Â ÀÛ¾÷Àº ÀüÀûÀ¸·Î ÇÁ·Î±×·¡¸Ó¿¡°Ô ´Þ·Á ÀÖ½À´Ï´Ù. Á÷·ÄÈ­ µÉ Çʵå´Â non-static, non-transient·Î ¼±¾ðÇØ¾ß¸¸ Á÷·ÄÈ­ÇÒ ¶§ Æ÷ÇÔÀÌ µÈ´Ù´Â °ÍÀ» ±â¾ïÇϽñ⠹ٶø´Ï´Ù. staticº¯¼ö´Â °øÀ¯¸Þ¸ð¸® °³³äÀ» °¡Áö°í Àֱ⠶§¹®¿¡ Á÷·ÄÈ­ ÇÒ ¶§ Á¦¿Ü µË´Ï´Ù. Transient´Â ´ç¿¬È÷ Á÷·ÄÈ­¿¡¼­ Á¦¿Ü µË´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ
ÀúÀÚ:ÃÖ¿µ°ü