IBM Korea Skip to main content
       IBM Ȩ    |  Á¦Ç° & ¼­ºñ½º  |  °í°´Áö¿ø & ´Ù¿î·Îµå  |  È¸¿ø°¡ÀÔ  

Java theory and practice: JTS ÀÌÇØÇϱâ - Æ®·£Àè¼Ç¿¡ ´ëÇÑ ¼Ò°³
¸ñ Â÷:
Æ®·£Àè¼ÇÀ» »ç¿ëÇÏ´Â µ¿±â
Æ®·£Àè¼ÇÀ̶õ ¹«¾ùÀΰ¡?
Æ®·£Àè¼Ç ÇغÎ
Æ®·£Àè¼ÇÀº ¿¹¿Ü ó¸® ¸ÞÄ¿´ÏÁò
°á·Ð
Âü°í ÀÚ·á
ÇÊÀÚ ¼Ò°³
±â»ç¿¡ ´ëÇÑ Æò°¡
°ü·Ã dW ¸µÅ©:
À¥ ¼­ºñ½º¿Í J2EE¿¡ ´ëÇÑ °³¹æÇü Ç¥ÁØ Áö¿øÇϱâ (PDF)
À¥ ¼­ºñ½ºÀÇ qos ÀÌÇØÇϱâ
US ¿ø¹® Àбâ
Æ®·£Àè¼ÇÀº ½Å·Ú¼º ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ±¸¼º ¿ä¼Ò


Brian Goetz
¼ö¼® ÄÁ¼³ÅÏÆ®, Quiotix Corp
2002³â 3¿ù

Column iconÀÚ¹Ù Æ®·£Àè¼Ç ¼­ºñ½º´Â J2EE ¾ÆÅ°ÅØóÀÇ ÇÙ½É ¿ä¼ÒÀÌ´Ù. ÀÚ¹Ù Æ®·£Àè¼Ç API¿Í ÇÔ²² ÀÚ¹Ù Æ®·£Àè¼Ç ¼­ºñ½º´Â ¸ðµç Á¾·ùÀÇ ½Ã½ºÅÛ ¹× ³×Æ®¿öÅ© Àå¾Ö¿¡ ´ëÇØ °­·ÂÇÑ ºÐ»ê ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇϵµ·Ï ÇØÁØ´Ù. Æ®·£Àè¼ÇÀº ½Å·Ú¼º ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇϱâ À§ÇÑ ±âÃÊÀûÀÎ ±¸¼º ¿ä¼ÒÀÌ´Ù. Æ®·£Àè¼ÇÀûÀÎ Áö¿ø ¾øÀÌ ½Å·Ú¼º ÀÖ´Â ºÐ»ê ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ´Â °ÍÀÌ Å͹«´Ï¾øÀÌ ¾î·Á¿î ÀÏÀÌ´Ù. ´ÙÇàÈ÷µµ JTS´Â ÀÚ½ÅÀÇ ´ëºÎºÐÀÇ ÀÛ¾÷À» °³¹ßÀÚ¿¡°Ô Åõ¸íÇÏ°Ô ¼öÇàÇÑ´Ù.; J2EE ÄÁÅ×À̳ʴ Ʈ·£Àè¼Ç ±¸ºÐ°ú ÀÚ¿ø »ç¿ëÀ» °ÅÀÇ º¸ÀÌÁö ¾Ê°Ô ¼öÇàÇÑ´Ù. À̹ø 3ȸ·Î ±¸¼ºµÈ ¿¬Àç¹° Áß Ã¹ ȸ¿¡¼­´Â Æ®·£Àè¼ÇÀÌ ¹«¾ùÀÌ°í ¿Ö À̵éÀÌ ½Å·Ú¼º ÀÖ´Â ºÐ»ê ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Ãà¿¡ ÇʼöÀûÀÎÁö¿¡ ´ëÇÑ ±âÃÊÀûÀÎ »çÇ×À» ´Ù·çµµ·Ï ÇÏ°Ú´Ù.

J2EE¿¡ ´ëÇÑ ¾î¶² ¼Ò°³±ÛÀ̳ª ÀÔ¹®¼­¸¦ º¸´õ¶óµµ ÀÚ¹Ù Æ®·£Àè¼Ç ¼­ºñ½º (JTS)³ª ÀÚ¹Ù Æ®·£Àè¼Ç API (JTA)¿¡ ´ëÇؼ­´Â ÀÛÀº ºÎºÐ¸¸ ÇÒ´çµÇ¾î ÀÖÀ½À» ¹ß°ßÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº JTS°¡ Áß¿äÇÏÁö ¾Ê°Å³ª J2EEÀÇ ¼±ÅÃÀû ºÎºÐÀ̱⠶§¹®Àº ¾Æ´Ï´Ù. »ç½ÇÀº ±× ¹Ý´ë¶ó ÇÒ ¼ö ÀÖ´Ù. JTS´Â EJB ±â¼úº¸´Ù ÁÖ¸ñÀ» ´ú ¹Þ¾Ò´Âµ¥, ÀÌ´Â JTS°¡ ¾ÖÇø®ÄÉÀ̼ǿ¡ Á¦°øÇÏ´Â ¼­ºñ½º°¡ ´ëºÎºÐ Åõ¸íÇϱ⠶§¹®ÀÌ´Ù. ¸¹Àº °³¹ßÀÚµéÀº ÀÚ½ÅÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¾îµð¿¡¼­ Æ®·£Àè¼ÇÀÌ ½ÃÀÛµÇ°í ³¡³ª´ÂÁöµµ ¾ËÁö ¸øÇÑ´Ù. JTS°¡ ¾Ë·ÁÁ® ÀÖÁö ¾ÊÀº °ÍÀº ¾î¶² ¸é¿¡¼­ º¸¸é ±× ¼º°ø ¶§¹®ÀÌ´Ù.; Æ®·£Àè¼Ç °ü¸®ÀÇ »ó¼¼ »çÇ×À» ³Ê¹«³ª È¿°úÀûÀ¸·Î ¼û±â±â ¶§¹®¿¡ ¿ì¸®´Â ¿©±â¿¡ ´ëÇØ ¸¹ÀÌ µè°Å³ª ¸»ÇÏÁö ¾Ê´Â °ÍÀÌ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ºÐ¸íÈ÷ JTS°¡ ¿©·¯ºÐÀ» ´ë½ÅÇؼ­ ¹«´ë µÚ¿¡¼­ ¹«½¼ ÀÏÀ» ÇÏ°í ÀÖ´ÂÁö ¾Ë°í ½ÍÀ» °ÍÀÌ´Ù.

Æ®·£Àè¼ÇÀÌ ¾øÀ¸¸é ½Å·Ú¼º ÀÖ´Â ºÐ»ê ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ´Â °ÍÀÌ °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù°í ¸»Çصµ °úÀåÀº ¾Æ´Ò °ÍÀÌ´Ù. Æ®·£Àè¼ÇÀº ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¿µ¼ÓÀûÀÎ »óŸ¦ ÅëÁ¦µÈ ¹æ½ÄÀ¸·Î ¼öÁ¤ÇÒ ¼ö ÀÖµµ·Ï Çϱ⠶§¹®¿¡, ¿ì¸® ¾ÖÇø®ÄÉÀ̼ÇÀº ½Ã½ºÅÛ ÆļÕ, ³×Æ®¿öÅ© Àå¾Ö, Àü¿ø Àå¾Ö, ½ÉÁö¾î´Â ÀÚ¿¬ ÀçÇØ µî ¸ðµç Á¾·ùÀÇ ½Ã½ºÅÛ Àå¾Ö¿¡ ´ëÇØ °­·ÂÇØÁú ¼ö ÀÖ´Ù. Æ®·£Àè¼ÇÀº ³»°áÇÔ¼ºÀ» °®Ãß°í ½Å·Ú¼º°ú °¡¿ë¼ºÀÌ ³ôÀº ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇϴµ¥ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ ±¸¼º ¿ä¼Ò Áß ÇϳªÀÌ´Ù.

Æ®·£Àè¼ÇÀ» »ç¿ëÇÏ´Â µ¿±â

ÇÑ °èÁ¿¡¼­ ´Ù¸¥ °èÁ·Πµ·À» ÀÌüÇÑ´Ù°í »ó»óÇØ º¸ÀÚ. °¢ °èÁÂÀÇ Àܾ×Àº µ¥ÀÌÅͺ£À̽º Å×À̺íÀÇ ÇàÀ¸·Î Ç¥½ÃµÈ´Ù. A °èÁ¿¡¼­ B °èÁ·Πµ·À» ÀÌüÇÏ°í ½ÍÀ¸¸é ¾Æ¸¶µµ ´ÙÀ½°ú °°Àº SQL Äڵ带 ½ÇÇà½Ãų °ÍÀÌ´Ù.:


SELECT accountBalance INTO aBalance 
    FROM Accounts WHERE accountId=aId;
IF (aBalance >= transferAmount) THEN 
    UPDATE Accounts 
        SET accountBalance = accountBalance - transferAmount
        WHERE accountId = aId;
    UPDATE Accounts 
        SET accountBalance = accountBalance + transferAmount
        WHERE accountId = bId;
    INSERT INTO AccountJournal (accountId, amount)
        VALUES (aId, -transferAmount);
    INSERT INTO AccountJournal (accountId, amount)
        VALUES (bId, transferAmount);
ELSE
    FAIL "Insufficient funds in account";
END IF

Áö±Ý±îÁö´Â ÀÌ Äڵ尡 ¸Å¿ì Á÷Á¢ÀûÀ¸·Î º¸ÀδÙ. A°¡ ÃæºÐÇÑ Àܾ×À» °¡Áö°í ÀÖ´Ù¸é ÇÑ °èÁ¿¡¼­ µ·ÀÌ ºüÁ® ³ª¿Í ´Ù¸¥ °èÁ·Π´õÇØÁú °ÍÀÌ´Ù. ±×·¯³ª ½Ã½ºÅÛÀÌ Æļյǰųª Àü¿øÀÌ ³ª°£ °æ¿ì¿¡´Â ¾î¶»°Ô µÉ±î? A °èÁÂ¿Í B °èÁ¸¦ ³ªÅ¸³»´Â ÇàÀÌ µ¿ÀÏÇÑ µð½ºÅ© ºí·Ï¿¡ ÀúÀåµÇÁö ¾ÊÀ» °ÍÀÌ°í, ÀÌ°ÍÀº ÀÌü¸¦ ¿Ï·áÇϴµ¥ ÇÑ °³ ÀÌ»óÀÇ µð½ºÅ© ÀÔÃâ·ÂÀÌ ÇÊ¿äÇÒ °ÍÀ̶ó´Â ¶æÀÌ´Ù. ù¹ø° °ÍÀº ÀÛ¼ºµÇ¾ú´Âµ¥ µÎ¹ø° °ÍÀ» ÀÛ¼ºÇϱâ Àü¿¡ ½Ã½ºÅÛ Àå¾Ö°¡ ¹ß»ýÇÑ´Ù¸é ¾î¶»°Ô µÉ±î? ±×·¯¸é µ·ÀÌ A °èÁ¿¡¼­´Â ¶°³µ´Âµ¥ B °èÁ¿¡´Â ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÌ°í (A¿Í B ¸ðµÎ ÀÌ°ÍÀ» ÁÁ¾ÆÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù), ȤÀº µ·ÀÌ BÀÇ °èÁ¿¡ ³ªÅ¸³­´Ù ÇÏ´õ¶óµµ A °èÁ¿¡¼­ ºüÁ® ³ª°¡Áö ¾Ê¾ÒÀ» ¼öµµ ÀÖ´Ù. (ÀÌ°ÍÀº ÀºÇàÀÌ ÁÁ¾ÆÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù) ¶Ç´Â °èÁµéÀº Á¦´ë·Î ¾÷µ¥ÀÌÆ®µÇ¾ú´Âµ¥, °èÁ ºÐ¼® ÇöȲ¿¡´Â ¾÷µ¥ÀÌÆ®°¡ ÀÌ·ç¾îÁöÁö ¾Ê¾Ò´Ù¸é ¾î¶»°Ô µÉ±î ? A¿Í BÀÇ ¿ùº° °èÁ¤ ÅëÁö ÀÛ¾÷ÀÌ °èÁ ÀÜ°í¿Í ÀÏÄ¡ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.

¿©·¯ °³ÀÇ µ¥ÀÌÅÍ ºí·ÏÀ» µð½ºÅ©¿¡ µ¿½Ã¿¡ ÀÛ¼ºÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÒ »Ó ¾Æ´Ï¶ó, µ¥ÀÌÅÍÀÇ ÀϺΰ¡ º¯°æµÇ¾úÀ» ¶§ ¸ðµç µ¥ÀÌÅÍ ºí·ÏÀ» µð½ºÅ©¿¡ ÀÛ¼ºÇÏ´Â °Íµµ ½Ã½ºÅÛ ¼º´É¿¡ ÁÁÁö ¾Ê´Ù. µð½ºÅ© ÀÛ¼ºÀ» º¸´Ù ÀûÀýÇÑ ¶§·Î ¹Ì·ç¸é ¾ÖÇø®ÄÉÀÌ¼Ç Ã³¸®·®À» Å©°Ô Çâ»ó½Ãų ¼ö ÀÖÁö¸¸, µ¥ÀÌÅÍ ¹«°á¼ºÀ» ÇØÄ¡Áö ¾Êµµ·Ï ¼öÇàµÇ¾î¾ß ÇÑ´Ù.

½Ã½ºÅÛ Àå¾Ö°¡ ¾ø´Â °æ¿ì¶óµµ À§ÀÇ Äڵ忡¼­ ³íÀÇÇÒ¸¸ÇÑ ´Ù¸¥ À§ÇèÀÌ ÀÖ´Ù. ¹Ù·Î µ¿½Ã ó¸® (concurrency)ÀÌ´Ù. A°¡ °èÁ¿¡ $100¸¦ °¡Áö°í Àִµ¥ µÎ °³ÀÇ ´Ù¸¥ °èÁ·Π$100¾¿À» Á¤È®È÷ µ¿½Ã¿¡ º¸³Â´Ù°í ÇÏ¸é ¾î¶»°Ô µÉ±î? ŸÀ̹ÖÀÌ ¸ÂÀ¸¸é ÀûÀýÇÑ Àá±Ý ¸ÞÄ¿´ÏÁòÀÌ ¾øÀ» °æ¿ì µÎ ÀÌü°¡ ¸ðµÎ ¼º°øÇÒ ¼ö ÀÖ´Ù. AÀÇ ÀÜ°í´Â ¸¶À̳ʽº°¡ µÉ °ÍÀÌ´Ù.

ÀÌ ½Ã³ª¸®¿ÀµéÀº ¾ÆÁÖ ±×·² µíÇØ º¸ÀÌ°í, ±â¾÷ µ¥ÀÌÅÍ ½Ã½ºÅÛÀÌ À̵鿡 ´ëÇØ ´ëóÇØ ÁÙ °ÍÀ» ±â´ëÇÏ´Â °ÍÀÌ ´ç¿¬ÇÏ´Ù. ¿ì¸®´Â ÀºÇàÀÌ È­Àç, È«¼ö, Á¤Àü, µð½ºÅ© Àå¾Ö ¹× ½Ã½ºÅÛ Àå¾Ö µîÀÇ »óȲ¿¡¼­ °èÁ ±â·ÏÀ» Á¤È®È÷ À¯ÁöÇØ ÁÙ °ÍÀ» ±â´ëÇÑ´Ù. ³»°áÇÔ¼ºÀº Áߺ¹ (redundancy) - Áߺ¹ µð½ºÅ©, Áߺ¹ ÄÄÇ»ÅÍ, ½ÉÁö¾î´Â µ¥ÀÌÅÍ ¼¾ÅͱîÁö Áߺ¹½ÃÅ´-¿¡ ÀÇÇØ Á¦°øµÉ ¼ö ÀÖÁö¸¸, ³»°áÇÔ¼ºÀ» °®Ãá ¼ÒÇÁÆ®¿þ¾î ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÁúÀûÀ¸·Î ±¸ÃàÇϵµ·Ï ÇÏ´Â °ÍÀº Æ®·£Àè¼ÇÀÌ´Ù. Æ®·£Àè¼ÇÀº ½Ã½ºÅÛÀ̳ª ÄÄÆ÷³ÍÆ® Àå¾Ö½Ã µ¥ÀÌÅÍ ÀÏ°ü¼º°ú ¹«°á¼ºÀ» ÁöÅ°±â À§ÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¦°øÇÑ´Ù.

Æ®·£Àè¼ÇÀ̶õ ¹«¾ùÀΰ¡?

±×·¸´Ù¸é °ú¿¬ Æ®·£Àè¼ÇÀº ¹«¾ùÀΰ¡? ÀÌ ¿ë¾î¸¦ Á¤ÀÇÇϱâ Àü¿¡ ¸ÕÀú ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ (application state)¶ó´Â °³³äÀ» Á¤ÀÇÇØ º¸ÀÚ. ¾ÖÇø®ÄÉÀ̼ÇÀÇ »óÅ´ ¾ÖÇø®ÄÉÀ̼ÇÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¸Þ¸ð¸® ³», ±×¸®°í µð½ºÅ© »óÀÇ ¸ðµç µ¥ÀÌÅÍ ¾ÆÀÌÅÛ -- ¾ÖÇø®ÄÉÀ̼ÇÀÌ "¾Ë°í ÀÖ´Â" ¸ðµç °ÍÀ» Æ÷ÇÔÇÑ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ´ ¸Þ¸ð¸®¿¡ ÀúÀåµÉ ¼öµµ ÀÖ°í ÆÄÀÏ, ȤÀº µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÉ ¼öµµ ÀÖ´Ù. ½Ã½ºÅÛ Àå¾Ö°¡ ¹ß»ýÇßÀ» °æ¿ì, ¿¹¸¦ µé¾î ¾ÖÇø®ÄÉÀ̼Ç, ³×Æ®¿öÅ©, ȤÀº ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÌ ÆļյǾúÀ» °æ¿ì, ¿ì¸®´Â ½Ã½ºÅÛÀÌ À籸µ¿µÇ¾úÀ» ¶§ ¾ÖÇø®ÄÉÀ̼ÇÀÇ »óŵµ º¹±¸µÉ ¼ö ÀÖÀ½À» º¸ÁõÇÏ°í ½Í´Ù.

ÀÌÁ¦ ¿ì¸®´Â Æ®·£Àè¼ÇÀ» ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ¿¡ ´ëÇÑ °ü·Ã ÀÛ¾÷ ¸ðÀ½À¸·Î Á¤ÀÇÇÒ ¼ö Àִµ¥, ¿øÀÚ¼º, ÀÏ°ü¼º, °Ý¸®¼º ¹× ¿µ¼Ó¼ºÀ̶ó´Â Ư¼ºÀ» °¡Áø´Ù. ÀÌ Æ¯¼ºµéÀº ÁýÇÕÀûÀ¸·Î ACID Ư¼ºÀ̶ó°í ºÒ¸°´Ù.

¿øÀÚ¼ºÀº Æ®·£Àè¼ÇÀÇ ¸ðµç ÀÛ¾÷ÀÌ ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ¿¡ Àû¿ëµÇµç°¡ ¾Æ´Ï¸é ¾Æ¹« °Íµµ ÀÛ¿ëµÇÁö ¾Ê´Â´Ù´Â ÀǹÌÀÌ´Ù.; Æ®·£Àè¼ÇÀº ´õ ÀÌ»ó ³ª´©¾îÁöÁö ¾Ê´Â ÀÛ¾÷ ´ÜÀ§ÀÌ´Ù.

ÀÏ°ü¼ºÀº Æ®·£Àè¼ÇÀÌ ¾ÖÇø®ÄÉÀÌ¼Ç »óÅÂÀÇ Á¤È®ÇÑ º¯ÇüÀ» ³ªÅ¸³½´Ù´Â ¶æÀÌ´Ù. ¾ÖÇø®ÄÉÀ̼ǿ¡ ³»Æ÷µÈ ¾î¶² ¹«°á¼º Á¦¾àµµ Æ®·£Àè¼Ç¿¡ ÀÇÇØ Ä§ÇصÇÁö ¾Ê´Â´Ù. ½ÇÁ¦·Î ÀÏ°ü¼º °³³äÀº ¾ÖÇø®ÄÉÀ̼Ǹ¶´Ù µ¶ÀÚÀûÀÎ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ȸ°è ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ÀÏ°ü¼ºÀº ¸ðµç ÀÚ»ê °èÁ¤ÀÇ ÇÕÀº ¸ðµç ºÎä °èÁ¤ÀÇ ÇÕ°ú °°´Ù´Â ºÒº¯°ªÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù. ¿ì¸®´Â ÀÌ ¿¬Àç¹°ÀÇ 3Æí¿¡¼­ Æ®·£Àè¼Ç ±¸ºÐÀ» ³íÀÇÇÒ ¶§ ÀÌ ¿ä°Ç¿¡ ´ëÇØ ´Ù½Ã »ìÆ캼 °ÍÀÌ´Ù.

°Ý¸®¼ºÀº ÇÑ Æ®·£Àè¼ÇÀÇ °á°ú°¡ µ¿½Ã¿¡ ½ÇÇàµÇ°í ÀÖ´Â ´Ù¸¥ Æ®·£Àè¼Ç¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù´Â ¶æÀÌ´Ù.; Æ®·£Àè¼Ç Ãø¸é¿¡¼­ º¸¸é, Æ®·£Àè¼ÇÀº º´·Ä½Äº¸´Ù´Â ¼øÂ÷ÀûÀ¸·Î ½ÇÇàµÇ´Â °ÍÀ¸·Î º¸ÀδÙ. µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ¿¡¼­ °Ý¸®¼ºÀº º¸Åë Àá±Ý ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇØ ±¸ÇöµÈ´Ù. °Ý¸®¼º ¿ä°ÇÀº ¶§¶§·Î ¾ÖÇø®ÄÉÀÌ¼Ç ¼º´ÉÀ» ³ôÀ̱â À§ÇØ Æ¯Á¤ Æ®·£Àè¼Ç¿¡ ´ëÇØ ¿ÏÈ­µÇ±âµµ ÇÑ´Ù.

¿µ¼Ó¼ºÀº ÀÏ´Ü ÇÑ Æ®·£Àè¼ÇÀÌ ¼º°øÀûÀ¸·Î ¿Ï·áµÇ¸é ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ¿¡ ´ëÇÑ º¯°æÀÌ Àå¾Ö¿¡µµ »ï¾Æ ³²À» °ÍÀ̶ó´Â ¶æÀÌ´Ù.

"Àå¾Ö¿¡µµ »ì¾Æ ³²´Â´Ù"´Â °ÍÀº ¹«½¼ ¶æÀϱî? Àå¾Ö¿¡µµ »ì¾Æ ³²À¸·Á¸é ¹«¾ùÀ¸·Î ±¸¼ºµÇ¾î¾ß ÇÒ±î? ÀÌ°ÍÀº ½Ã½ºÅÛ¿¡ ´Þ·Á ÀÖ°í, Àß ¼³°èµÈ ½Ã½ºÅÛÀº ȸº¹µÉ ¼ö ÀÖ´Â Àå¾Ö¸¦ ¸íÈ®ÇÏ°Ô ±ÔÁ¤ÇÒ °ÍÀÌ´Ù. ³» µ¥½ºÅ©Å¾ ¿öÅ©½ºÅ×À̼ǿ¡¼­ ¿î¿µµÇ´Â Æ®·£Àè¼Ç µ¥ÀÌÅͺ£À̽º´Â ½Ã½ºÅÛ Æļհú Àü¿ø Àå¾Ö¿¡ ´ëÇؼ­´Â °­ÇÏÁö¸¸, »ç¹«½Ç °Ç¹°ÀÌ ºÒŸ ¹ö¸®´Âµ¥´Â °­ÇÏÁö ¾Ê´Ù. ÀºÇàÀº ÀÚ»ç µ¥ÀÌÅÍ ¼¾ÅÍ¿¡ µð½ºÅ©, ³×Æ®¿öÅ© ¹× ½Ã½ºÅÛÀ» Áߺ¹ÇÏ¿© µÑ »Ó ¾Æ´Ï¶ó ¾Æ¸¶µµ ´Ù¸¥ µµ½Ã¿¡ Áߺ¹µÇ´Â µ¥ÀÌÅÍ ¼¾Å͸¦ ¸¸µé¾î Áߺ¹ Åë½Å ¸µÅ©·Î ¿¬°á½ÃÄÑ ÀÚ¿¬ ÀçÇØ¿Í °°Àº ½É°¢ÇÑ Àå¾Ö·ÎºÎÅÍÀÇ º¹±¸¸¦ ²ÒÇÒ °ÍÀÌ´Ù. ±º¿ë µ¥ÀÌÅÍ ½Ã½ºÅÛÀº º¸´Ù ¾ö°ÝÇÑ ³»°áÇÔ¼º ¿ä°ÇÀ» °¡Áú °ÍÀÌ´Ù.

Æ®·£Àè¼Ç ÇغÎ

ÀϹÝÀûÀÎ Æ®·£Àè¼ÇÀº ¿©·¯ Âü°¡ÀÚ -- ¾ÖÇø®ÄÉÀ̼Ç, Æ®·£Àè¼Ç ó¸® ¸ð´ÏÅÍ (TPM) ¹× Çϳª ÀÌ»óÀÇ ÀÚ¿ø °ü¸®ÀÚ (RM)¸¦ °¡Áö°í ÀÖ´Ù. RMÀº ¾ÖÇø®ÄÉÀÌ¼Ç »óŸ¦ ÀúÀåÇϴµ¥, ´ëºÎºÐ µ¥ÀÌÅͺ£À̽ºÀÌÁö¸¸ ¸Þ½ÃÁö Å¥ ¼­¹ö (J2EE ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â JMS provider°¡ ¿©±â¿¡ ÇØ´çµÉ °ÍÀÌ´Ù)°¡ µÉ ¼öµµ ÀÖ°í ȤÀº ´Ù¸¥ Æ®·£Àè¼Ç ÀÚ¿øÀÌ µÉ ¼öµµ ÀÖ´Ù. TPMÀº Æ®·£Àè¼ÇÀÇ "¸ðµÎ ó¸®ÇϵçÁö ¾Æ´Ï¸é ¾Æ¹«°Íµµ ó¸®ÇÏÁö ¾ÊµçÁö"¶ó´Â Ư¼ºÀ» ÁöÅ°±â À§ÇØ RMµéÀÇ È°µ¿À» Á¶À²ÇÑ´Ù.

¾ÖÇø®ÄÉÀ̼ÇÀÌ ÄÁÅ×À̳ʳª Æ®·£Àè¼Ç ¸ð´ÏÅÍ¿¡°Ô »õ·Î¿î Æ®·£Àè¼ÇÀ» ½ÃÀÛ½ÃÅ°µµ·Ï ¿ä±¸ÇÏ´Â ¼ø°£ Æ®·£Àè¼ÇÀº ½ÃÀ۵ȴÙ. ¾ÖÇø®ÄÉÀ̼ÇÀÌ ´Ù¾çÇÑ RMµé¿¡ Á¢±ÙÇÒ ¶§ RMµéÀº Æ®·£Àè¼Ç ³»¿¡ µî·ÏµÈ´Ù. RMÀº ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ¿¡ ´ëÇÑ ¸ðµç º¯°æ »çÇ×À» ±× º¯°æÀ» ¿äûÇÏ´Â Æ®·£Àè¼Ç°ú °áÇÕ½ÃÄÑ¾ß ÇÑ´Ù.

Æ®·£Àè¼ÇÀº ´ÙÀ½ µÑ Áß Çϳª°¡ ¹ß»ýÇßÀ» ¶§ Á¾·áµÈ´Ù. : Æ®·£Àè¼ÇÀÌ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ È®¾à (commit)µÇ°Å³ª Æ®·£Àè¼ÇÀÌ ¾ÖÇø®ÄÉÀÌ¼Ç È¤Àº RM Áß Çϳª°¡ ½ÇÆÐÇÏ¿© ·Ñ¹é(roll back)µÉ ¶§°¡ ±×°ÍÀÌ´Ù. Æ®·£Àè¼ÇÀÌ ¼º°øÀûÀ¸·Î È®¾àµÇ¸é ±× Æ®·£Àè¼Ç°ú °ü·ÃµÈ º¯°æ »çÇ×ÀÌ ¿µ¼ÓÀûÀÎ ±â¾ï ÀåÄ¡¿¡ ÀÛ¼ºµÉ °ÍÀÌ°í »õ·Î¿î Æ®·£Àè¼ÇÀÌ À̸¦ º¼ ¼ö ÀÖ´Ù. Æ®·£Àè¼ÇÀÌ ·Ñ¹éµÇ¸é ±× Æ®·£Àè¼ÇÀÌ ¼öÇàÇÑ ¸ðµç º¯°æ »çÇ×Àº ¹ö·ÁÁú °ÍÀÌ´Ù. ; Áï, Æ®·£Àè¼ÇÀÌ ÀϾÁö ¾ÊÀº °Íó·³ µÉ °ÍÀÌ´Ù.

Æ®·£Àè¼Ç ·Î±× - ¿µ¼Ó¼ºÀÇ ÇÙ½É

Æ®·£Àè¼Ç¼º RMÀº ¿©·¯ Æ®·£Àè¼ÇÀÇ °á°ú¸¦ ÇϳªÀÇ Æ®·£Àè¼Ç ·Î±×¿¡ ¿ä¾àÇÔÀ¸·Î½á ÀûÀýÇÑ ¼º´ÉÀ¸·Î ¿µ¼Ó¼ºÀ» ¼ºÃëÇÑ´Ù. Æ®·£Àè¼Ç ·Î±×´Â ¼øÂ÷ÀûÀÎ µð½ºÅ© ÆÄÀÏ·Î (¶§·Î´Â ÇϳªÀÇ ¿ø½Ã ÆÄƼ¼Ç¿¡) ÀúÀåµÇ°í ·Ñ¹éÀ̳ª º¹±¸½Ã¸¦ Á¦¿ÜÇÏ°í´Â º¸Åë Àбâ´Â ¾ÈµÇ°í ¾²±â¸¸ °¡´ÉÇÒ °ÍÀÌ´Ù. ¿ì¸®ÀÇ ÀºÇà °èÁ ¿¹Á¦¿¡¼­, A¿Í B °èÁÂ¿Í °ü·ÃµÈ Àܾ×Àº ¸Þ¸ð¸®¿¡ ¾÷µ¥ÀÌÆ®µÉ °ÍÀÌ°í, Â÷¾×Àº Æ®·£Àè¼Ç ·Î±×¿¡ ÀÛ¼ºµÉ °ÍÀÌ´Ù. ¾÷µ¥ÀÌÆ® ±â·ÏÀ» Æ®·£Àè¼Ç ·Î±×¿¡ ÀÛ¼ºÇÏ¸é µð½ºÅ©¿¡ ÀÛ¼ºµÇ´Â ÃÑ µ¥ÀÌÅÍÀÇ ¼ö°¡ ÁÙ¾îµé °ÍÀÌ°í (Àüü µð½ºÅ© ºí·Ï ´ë½Å º¯°æµÈ µ¥ÀÌÅ͸¸ ÀÛ¼ºÇÏ¸é µÊ) µð½ºÅ© ÇÊ¿ä·®µµ ÁÙ¾îµé °ÍÀÌ´Ù (¸ðµç º¯°æ »çÇ×ÀÌ ·Î±×¿¡ ¼øÂ÷Àû µð½ºÅ© ºí·ÏÀ¸·Î µé¾î°¥ ¼ö Àֱ⠶§¹®ÀÌ´Ù). ´õ ³ª¾Æ°¡ µ¿½Ã¿¡ ÀϾ´Â ¿©·¯ °³ÀÇ Æ®·£Àè¼Ç°ú °ü·ÃµÈ º¯°æ »çÇ×µéÀÌ °áÇյǾî ÇÑ ¹ø¿¡ Æ®·£Àè¼Ç ·Î±×·Î ÀÛ¼ºµÉ ¼ö ÀÖ´Ù. ÀÌ´Â Æ®·£Àè¼Ç º°·Î ¿©·¯ °³ÀÇ µð½ºÅ© ¾²±â°¡ ÇÊ¿äÇÏÁö ¾Ê°í ´ë½Å ¿©·¯ °³ÀÇ Æ®·£Àè¼ÇÀ» ÇϳªÀÇ µð½ºÅ© ¾²±â·Î ó¸®ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ±× ÈÄ RMÀº º¯°æµÈ µ¥ÀÌÅÍ¿¡ ´ëÀÀÇÏ´Â ½ÇÁ¦ µð½ºÅ© ºí·ÏÀ» ¾÷µ¥ÀÌÆ®ÇÒ °ÍÀÌ´Ù.

À籸µ¿½Ã º¹±¸

½Ã½ºÅÛ Àå¾Ö½Ã ½Ã½ºÅÛÀÌ º¹±¸µÇ¸é¼­ Á¦ÀÏ ¸ÕÀú ÇÏ´Â ÀÏÀº ·Î±×¿¡´Â ÀÖÀ¸³ª ±× µ¥ÀÌÅÍ ºí·ÏÀÌ ¾ÆÁ÷ ¾÷µ¥ÀÌÆ®µÇÁö ¾ÊÀº È®¾àµÈ Æ®·£Àè¼ÇÀÇ °á°ú¸¦ ÀçÀû¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ·± ¹æ½ÄÀ¸·Î ·Î±×´Â Àå¾Ö½Ã ¿µ¼Ó¼ºÀ» º¸ÀåÇÏ°í, ¿ì¸®°¡ ¼öÇàÇÏ´Â µð½ºÅ© ÀÔÃâ·Â ÀÛ¾÷ÀÇ ¼ö¸¦ ÁÙÀÏ ¼ö ÀÖ°Ô ÇÏ°í ȤÀº Àû¾îµµ ½Ã½ºÅÛ ¼º´É¿¡ ¿µÇâÀ» ´ú ¹ÌÄ¥ ¶§·Î À̵éÀ» ¿¬±âÇÏ°Ô ÇØ ÁØ´Ù.

2´Ü°è È®¾à (Two-phase commit)

¸¹Àº Æ®·£Àè¼ÇÀº ÇϳªÀÇ RM (º¸Åë µ¥ÀÌÅͺ£À̽º)¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ °æ¿ì RMÀº º¸Åë Æ®·£Àè¼ÇÀ» È®¾àÇÏ°í ·Ñ¹éÇϱâ À§ÇÑ ´ëºÎºÐÀÇ ÀÛ¾÷À» ¼öÇàÇÑ´Ù. (°ÅÀÇ ¸ðµç Æ®·£Àè¼Ç¼º RMÀÌ ÀÚüÀûÀÎ Æ®·£Àè¼Ç °ü¸®ÀÚ¸¦ ³»ÀåÇÏ°í Àִµ¥, ÀÌ´Â Áö¿ª Æ®·£Àè¼Ç, Áï ±× RM¸¸ÀÌ Âü¿©ÇÑ Æ®·£Àè¼ÇÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù.) ±×·¯³ª Æ®·£Àè¼ÇÀÌ µÎ °³, ȤÀº ±× ÀÌ»óÀÇ RM (¾Æ¸¶µµ µÎ °³ÀÇ °³º°ÀûÀÎ µ¥ÀÌÅͺ£À̽º, ȤÀº µ¥ÀÌÅͺ£À̽º¿Í JMS Å¥, ¶Ç´Â µÎ °³ÀÇ °³º°ÀûÀÎ JMS provider)À» Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é "¸ðµÎ ó¸®ÇϵçÁö ¾Æ´Ï¸é ¾Æ¹«°Íµµ ó¸®ÇÏÁö ¾Ê´Â"´Ù´Â Àǹ̷ÐÀÌ ±× RM ³»¿¡¼­ »Ó ¾Æ´Ï¶ó Æ®·£Àè¼Ç ³»ÀÇ ¸ðµç RM¿¡°Ô Àû¿ëµÇµµ·Ï ÇÏ°í ½ÍÀ» °ÍÀÌ´Ù. ÀÌ·± °æ¿ì TPMÀº 2´Ü°è È®¾àÀ» Àü°³ÇÒ °ÍÀÌ´Ù. 2´Ü°è È®¾à¿¡¼­ TPMÀº °¢ RM¿¡°Ô "Áغñ" ¸Þ½ÃÁö¸¦ º¸³»¾î ±× RMÀÌ Áغñ°¡ µÇ¾ú°í Æ®·£Àè¼ÇÀ» ¼öÇàÇÒ ¼ö ÀÖ´ÂÁö ¹°¾îº»´Ù. ¸ðµç RMÀ¸·ÎºÎÅÍ ±àÁ¤ÀûÀÎ ´äÀ» ¹ÞÀ¸¸é ÀÚ½ÅÀÇ Æ®·£Àè¼Ç ·Î±×¿¡ Æ®·£Àè¼ÇÀÌ È®¾àµÇ¾ú´Ù°í ±â·ÏÇÑ ÈÄ ¸ðµç RM¿¡°Ô ±× Æ®·£Àè¼ÇÀ» È®¾àÇ϶ó°í Áö½ÃÇÑ´Ù. ¸¸ÀÏ ¾î´À ÇÑ RMÀÌ¶óµµ ½ÇÆÐÇÑ´Ù¸é, À籸µ¿½Ã TMP¿¡°Ô Àå¾Ö°¡ ÀϾ´Â ½ÃÁ¡¿¡ ¹Ì¿ÏÀ¸·Î ³²¾ÆÀÖ´ø Æ®·£Àè¼ÇÀÇ »óÅ¿¡ ´ëÇÏ¿© ÁúÀÇÇÏ°í, ±×µéÀ» È®¾àÇϰųª ȤÀº ·Ñ¹éÇÑ´Ù.

2´Ü°è È®¾àÀ» »çȸ »ýÈ°¿¡ ºñÀ¯ÇØ º¸¸é °áÈ¥½ÄÀ» µé ¼ö ÀÖ´Ù. ¸ñ»ç³ª Æǻ簡 ¸ÕÀú ½Å¶û, ½ÅºÎ¿¡°Ô °¢°¢ "´ç½ÅÀº ±×/±×³à¸¦ ´ç½ÅÀÇ ³²Æí/¾Æ³»·Î ¹Þ¾ÆµéÀÌ°Ú½À´Ï±î?"ÇÏ°í ¹°¾îº»´Ù. ½Å¶û, ½ÅºÎ ¸ðµÎ "³×"¶ó°í ´ë´äÇÏ¸é µÑÀº ¸ðµÎ °áÈ¥ÇßÀ½ÀÌ ¼±¾ðµÈ´Ù.; ±×·¸Áö ¾Ê´Ù¸é µÑ ¸ðµÎ °áÈ¥ÇÏÁö ¾ÊÀº »óÅ·Π³²À» °ÍÀÌ´Ù. ´©°¡ ¸ÕÀú "³×"¶ó°í ´ë´äÇß´ÂÁö¿¡ »ó°ü¾øÀÌ, ÇÑ »ç¶÷Àº °áÈ¥Çߴµ¥ ´Ù¸¥ ÂÊÀº °áÈ¥ÇÏÁö ¾ÊÀº »óÅ·Π³²´Â °æ¿ì´Â ¾ø´Ù.

Æ®·£Àè¼ÇÀº ¿¹¿Ü ó¸® ¸ÞÄ¿´ÏÁòÀÌ´Ù.

¿©·¯ºÐÀº µ¿±âÈ­µÈ ºí·ÏÀÌ ¸Þ¸ð¸® ³» µ¥ÀÌÅÍ¿¡ ¼öÇàÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¸¹Àº ±â´ÉÀ» Æ®·£Àè¼ÇÀÌ ¾ÖÇø®ÄÉÀÌ¼Ç µ¥ÀÌÅÍ¿¡ Á¦°øÇÔÀ» º¸¾ÒÀ» °ÍÀÌ´Ù. Áï ¿øÀÚ¼º, º¯°æ»çÇ×ÀÇ °¡½Ã¼º, ¸íÈ®ÇÑ ¼ø¼­ µîÀ» º¸ÀåÇÑ´Ù. ±×·¯³ª µ¿±âÈ­°¡ ÁÖ·Î µ¿½Ã ó¸® Á¦¾î ¸ÞÄ¿´ÏÁò¿¡ ÇØ´çµÈ´Ù¸é, Æ®·£Àè¼ÇÀº ÁÖ·Î ¿¹¿Ü ó¸® ¸ÞÄ¿´ÏÁòÀÌ´Ù. µð½ºÅ©¿¡ Àå¾Ö°¡ ¾ø°í ½Ã½ºÅÛ°ú ¼ÒÇÁÆ®¿þ¾î°¡ ÆļյÇÁö ¾ÊÀ¸¸ç Àü¿øµµ 100% ¾ÈÀüÇÑ °÷¿¡¼­´Â Æ®·£Àè¼ÇÀÌ ÇÊ¿äÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. Æ®·£Àè¼ÇÀº »çȸ¿¡¼­ °è¾à¹ýÀÌ ¼öÇàÇÏ´Â ¿ªÇÒÀ» ±â¾÷ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¼öÇàÇÑ´Ù. Áï °è¾à ÀÌÇàÀÇ ÀϺκп¡ ´ëÇÏ¿© ¾î´À ÇÑ ÂÊÀÌ ÀÌÇà¿¡ ½ÇÆÐÇÒ °æ¿ì °è¾à ÀÌÇà Àǹ«°¡ ¾î¶»°Ô Ç®¸®´ÂÁö¸¦ ¸í½ÃÇÑ´Ù. ¿ì¸®´Â °è¾à¼­¸¦ ÀÛ¼ºÇÒ ¶§ º¸Åë °è¾à ³»¿ëÀÌ ¿©À¯ Àֱ⸦ ¹Ù¶ó¸ç, °í¸¿°Ôµµ ´ëºÎºÐ ±×·¯ÇÏ´Ù.

°£´ÜÇÑ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÅëÇØ À¯ÃßÇغ¸¸é Æ®·£Àè¼ÇÀº catch¿Í finally ºí·ÏÀÌ ¸Þ¼Òµå ·¹º§¿¡ Á¦°øÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¸î °¡Áö ÀÌÁ¡À» ¾ÖÇø®ÄÉÀÌ¼Ç ·¹º§¿¡ Á¦°øÇÑ´Ù. ; ±ä ¿¡·¯ º¹±¸ Äڵ带 ÀÛ¼ºÇÏÁö ¾Ê°íµµ ½Å·Ú¼º ÀÖ´Â ¿¡·¯ º¹±¸¸¦ ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ÇÑ ÆÄÀÏÀ» ´Ù¸¥ ÂÊ¿¡ º¹»çÇÏ´Â ÀÌ ¸Þ¼Òµå¸¦ °ËÅäÇغ¸ÀÚ.:


public boolean copyFile(String inFile, String outFile) {
  InputStream is = null;
  OutputStream os = null;
  byte[] buffer;
  boolean success = true;

  try {
    is = new FileInputStream(inFile);
    os = new FileOutputStream(outFile);
    buffer = new byte[is.available()];
    is.read(buffer);
    os.write(buffer);
  }
  catch {IOException e) {
    success = false;
  }
  catch (OutOfMemoryError e) {
    success = false;
  }
  finally {
    if (is != null)
      is.close();
    if (os != null)
      os.close();
  }

  return success;
}

Àüü ÆÄÀÏÀ» À§ÇØ ÇϳªÀÇ ¹öÆÛ¸¦ ÇÒ´çÇÏ´Â °ÍÀÌ ±×¸® ÁÁÁö ¾ÊÀº »ý°¢À̶ó´Â »ç½ÇÀ» ¹«½ÃÇÏ°í º»´Ù¸é, ÀÌ ¸Þ¼Òµå ³»¿¡¼­ À߸øµÉ °¡´É¼ºÀÌ ÀÖ´Â °÷Àº ¾îµðÀΰ¡ ? ¾ÆÁÖ ¸¹´Ù. ÀÔ·Â ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê°Å³ª ÀÌ »ç¿ëÀÚ°¡ ±×°ÍÀ» ÀÐÀ» ±ÇÇÑÀ» °¡Áö°í ÀÖÁö ¾ÊÀ» ¼ö ÀÖ´Ù. »ç¿ëÀÚ°¡ Ãâ·Â ÆÄÀÏÀ» ÀÛ¼ºÇÒ ±ÇÇÑÀÌ ¾øÀ» ¼ö ÀÖ°í ȤÀº ´Ù¸¥ »ç¿ëÀÚ¿¡ ÀÇÇØ Àá°Ü ÀÖÀ» ¼öµµ ÀÖ´Ù. ÆÄÀÏ ÀÛ¼º ÀÛ¾÷À» ¿Ï·áÇÒ¸¸Å­ ÃæºÐÇÑ µð½ºÅ© °ø°£ÀÌ ¾øÀ» ¼öµµ ÀÖ°í, ȤÀº °¡¿ë ¸Þ¸ð¸®°¡ ÃæºÐÇÏÁö ¾ÊÀ» °æ¿ì ¹öÆÛ ÇÒ´çÀÌ ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù. ´ÙÇàÈ÷µµ ÀÌ ¸ðµç »çÇ×ÀÌ finally Àý¿¡ ÀÇÇØ Ã³¸®µÇ´Âµ¥, ÀÌ ÀýÀº copyFile()ÀÌ »ç¿ëÇÏ´Â ¸ðµç ÀÚ¿øÀ» ÇØÁ¦ÇÑ´Ù.

ÀÌ ¸Þ¼Òµå¸¦ ±¸½Ä C ½ÃÀý¿¡ ÀÛ¼ºÇß´Ù¸é °¢ ÀÛ¾÷ (ÀÔ·Â °³½Ã, Ãâ·Â °³½Ã, malloc, Àбâ, ¾²±â)¿¡ ´ëÇØ ¹Ýȯ »óŸ¦ Å×½ºÆ®ÇØ¾ß ÇÏ°í, ÀÛ¾÷ÀÌ ½ÇÆÐÇÒ °æ¿ì ÀÌÀüÀÇ ¸ðµç ¼º°øÀûÀÎ ÀÛ¾÷À» Ãë¼ÒÇÏ°í ÀûÀýÇÑ »óÅ Äڵ带 ¹ÝȯÇØ¾ß ÇÑ´Ù. ¸ðµç ¿¡·¯ ó¸® ÄÚµå ¶§¹®¿¡ ÄÚµå´Â ¾ÆÁÖ Ä¿Áú °ÍÀÌ°í µû¶ó¼­ ÀбⰡ ´õ ¾î·Á¿öÁú °ÍÀÌ´Ù. ÀÚ¿ø ÇØÁ¦¿¡ ½ÇÆÐÇϰųª ÇÑ ÀÚ¿øÀ» µÎ ¹ø ÇØÁ¦Çϰųª ¾ÆÁ÷ ÇÒ´çµÇÁö ¾ÊÀº ÀÚ¿øÀ» ÇØÁ¦ÇÏ´Â µî ¿¡·¯ ó¸® Äڵ忡¼­ ½Ç¼ö¸¦ Çϱ⵵ ½±´Ù (¶ÇÇÑ Å×½ºÆ®Çϱ⠰¡Àå ¾î·Á¿î ºÎºÐÀ̱⵵ ÇÏ´Ù). µÎ °³ÀÇ ÆÄÀÏ°ú ÇϳªÀÇ ¹öÆÛ, ÀÌ·¯ÇÑ ÀÚ¿øº¸´Ù ÈξÀ ¸¹Àº ÀÚ¿øÀ» ó¸®ÇØ¾ß ÇÏ´Â ´õ Å« ½ÇÁ¦ ¸Þ¼Òµå¿¡¼­´Â ÀÌ°ÍÀÌ ÈξÀ ´õ º¹ÀâÇØÁú °ÍÀÌ´Ù. ±× ¸ðµç ¿À·ù º¹±¸ Äڵ忡¼­ ½ÇÁ¦ ÇÁ·Î±×·¥ ·ÎÁ÷À» ã±â¶õ ´õ¿í ´õ ¾î·Á¿öÁú ¼ö ÀÖ´Ù.

ÀÌÁ¦ ¿©·¯ºÐÀÌ ¿©·¯ µ¥ÀÌÅͺ£À̽º¿¡ ¿©·¯ ÇàÀ» »ðÀÔÇϰųª ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÏ´Â º¹ÀâÇÑ ÀÛ¾÷À» ¼öÇàÇÏ°í ÀÖ°í, ÇÑ ÀÛ¾÷ÀÌ ¹«°á¼º Á¦¾àÀ» À§¹ÝÇÏ¿© ½ÇÆÐÇß´Ù°í »ó»óÇØ º¸ÀÚ. ¿©·¯ºÐÀÌ ÀÚüÀûÀ¸·Î ¿¡·¯ º¹±¸¸¦ °ü¸®ÇÑ´Ù¸é ¾î¶² ÀÛ¾÷µéÀÌ ÀÌ¹Ì ¼öÇàµÇ¾ú´ÂÁö¸¦ ÃßÀûÇÏ°í ´ÙÀ½ ÀÛ¾÷ÀÌ ½ÇÆÐÇßÀ» ¶§ ÀÌµé °¢°¢À» Ãë¼ÒÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ÀÛ¾÷ ´ÜÀ§°¡ ¿©·¯ ¸Þ¼Òµå³ª ÄÄÆ÷³ÍÆ®¿¡ °ÉÃÄ ÀÖÀ» ¶§´Â ÈξÀ ´õ ¾î·Á¿öÁø´Ù. ¿©·¯ºÐ ¾ÖÇø®ÄÉÀ̼ÇÀ» Æ®·£Àè¼ÇÀ¸·Î ü°èÈ­Çϸé ÀÌ ¸ðµç ºÎ±â ÀÛ¾÷À» µ¥ÀÌÅͺ£À̽º¿¡ À§ÀÓÇÒ ¼ö ÀÖ´Ù. -- '·Ñ¹é'À̶ó°í ¸»Çϱ⸸ Çϸé Æ®·£Àè¼Ç °³½Ã ÀÌÈÄ¿¡ ¿©·¯ºÐÀÌ ¼öÇàÇß´ø ¸ðµç ÀÛ¾÷Àº Ãë¼ÒµÈ´Ù.

°á·Ð

¾ÖÇø®ÄÉÀ̼ÇÀ» Æ®·£Àè¼ÇÀ¸·Î ü°èÈ­ÇÔÀ¸·Î½á ¿ì¸®´Â ¾ÖÇø®ÄÉÀÌ¼Ç »óÅÂÀÇ Á¤È®ÇÑ º¯Çü ¼¼Æ®¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ°í, ½Ã½ºÅÛÀ̳ª ÄÄÆ÷³ÍÆ® Àå¾Ö ÈÄ¿¡µµ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Ç×»ó ¿Ã¹Ù¸¥ »óÅ¿¡ ÀÖÀ½À» º¸ÁõÇÒ ¼ö ÀÖ´Ù. Æ®·£Àè¼ÇÀº ¿¹¿Ü ó¸®¿Í º¹±¸ ÀÛ¾÷ÀÇ ¸¹Àº ¿ä¼ÒµéÀ» TPM°ú RM¿¡ À§ÀÓÇϵµ·Ï ÇØÁÖ¾î, Äڵ带 ´Ü¼øÈ­½ÃÅ°°í ¿ì¸®°¡ ´ë½Å ¾ÖÇÃÄÉÀÌ¼Ç ·ÎÁ÷¿¡ ´ëÇØ »ý°¢ÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.

ÀÌ ½Ã¸®ÁîÀÇ 2Æí¿¡¼­´Â J2EE ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â ÀÌ°ÍÀÌ ¾î¶² Àǹ̸¦ °¡Áö´ÂÁö »ìÆ캸°Ú´Ù. -- J2EE°¡ Æ®·£Àè¼Ç Àǹ̷ÐÀ» J2EE ÄÄÆ÷³ÍÆ® (EJB ÄÄÆ÷³ÍÆ®, servlet ¹× JSP ÆäÀÌÁö)¿¡ ÀüÇÏ°Ô ÇÏ´Â ¹æ¹ý°ú, ½ÉÁö¾î´Â ºóÀÌ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç¿¡ ´ëÇؼ­µµ ÀÚ¿ø »ç¿ëÀ» ¾ÖÇø®ÄÉÀ̼ǿ¡°Ô ¿ÏÀüÈ÷ Åõ¸íÇÏ°Ô ¸¸µå´Â ¹æ¹ý, ±×¸®°í ÇÑ °³ÀÇ Æ®·£Àè¼ÇÀÌ ¾î¶»°Ô ¿©·¯ ½Ã½ºÅÛ »ó¿¡ ÀÖ´Â ÇÑ EJB ÄÄÆ÷³ÍÆ®¿¡¼­ ´Ù¸¥ EJB ÄÄÆ÷³ÍÆ®·ÎÀÇ Á¦¾î È帧, ¶Ç´Â ÇÑ servlet¿¡¼­ EJB ÄÄÆ÷³ÍÆ®·ÎÀÇ Á¦¾î È帧À» Åõ¸íÇÏ°Ô µû¶ó °¥ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇØ ¼³¸íÇÏ°Ú´Ù.

J2EE°¡ °´Ã¼ Æ®·£Àè¼Ç ¼­ºñ½º¸¦ ºñ±³Àû Åõ¸íÇÏ°Ô Á¦°øÇÑ´Ù ÇÏ´õ¶óµµ ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°èÀÚ´Â ¿©ÀüÈ÷ ¾îµð¿¡¼­ Æ®·£Àè¼ÇÀ» ±¸ºÐÇÒÁö¿Í ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ Æ®·£Àè¼Ç ÀÚ¿øÀ» ¾î¶»°Ô »ç¿ëÇÒ °ÍÀÎÁö¿¡ °üÇØ ÁÖÀÇ ±í°Ô »ý°¢ÇØ¾ß ÇÑ´Ù. ºÎÁ¤È®ÇÑ Æ®·£Àè¼Ç ±¸ºÐÀº ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÏ°ü¼º ¾ø´Â »óÅ·ΠµÑ ¼ö ÀÖ°í, Æ®·£Àè¼Ç ÀÚ¿øÀ» À߸ø »ç¿ëÇÏ¸é ¼º´É¿¡ ½É°¢ÇÑ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ÀÌ ½Ã¸®ÁîÀÇ 3Æí¿¡¼­ ÀÌ ¹®Á¦µéÀ» ´Ù·ç°í ¿©·¯ºÐÀÇ Æ®·£Àè¼ÇÀ» ü°èÈ­ÇÏ´Â ¹æ¹ý¿¡ °üÇØ ¸î °¡Áö Á¶¾ðÀ» Á¦°øÇϵµ·Ï ÇÏ°Ú´Ù.

Âü°í ÀÚ·á

ÇÊÀÚ¼Ò°³
Brian Goetz´Â ¼ÒÇÁÆ®¿þ¾î ÄÁ¼³ÅÏÆ®À̸ç Áö³­ 15³â°£ Àü¹®ÀûÀÎ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ·Î ÀÏÇØ¿Ô´Ù. ±×´Â Ķ¸®Æ÷´Ï¾ÆÁÖ Los Altos ¼ÒÀç ¼ÒÇÁÆ®¿þ¾î °³¹ß ¹× ÄÁ¼³Æà ¾÷üÀÎ Quiotix»çÀÇ ¼ö¼® ÄÁ¼³ÅÏÆ®ÀÌ´Ù. ¾÷°èÀÇ Àαâ ÀÖ´Â ÃâÆǹ°¿¡ °ÔÀçµÇ¾ú°Å³ª °³Á¦µÉ BrianÀÇ ±ÛµéÀ» º¸±â ¹Ù¶õ´Ù.



ÀÌ ±â»ç¿¡ ´ëÇÏ¿© ¾î¶»°Ô »ý°¢ÇϽʴϱî?

Á¤¸» ÁÁ´Ù (5) ÁÁ´Ù (4) ±×Àú±×·¸´Ù (3) ¼öÁ¤º¸¿ÏÀÌ ÇÊ¿äÇÏ´Ù(2) ÇüÆí¾ø´Ù (1)

  È¸»ç¼Ò°³  |  °³ÀÎÁ¤º¸ º¸È£Á¤Ã¥  |  ¹ý·ü  |  ¹®ÀÇ