|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
ÂüÁ¶Ã³:
¼³¸í
| ÀÎÅÍÆäÀ̽º °³¿ä | |
|---|---|
| SyncResolver | ¾îÇø®ÄÉÀ̼ÇÀÌ, ¼öµ¿ÀÇ Áö°áÁ¤ Æ®¸®¸¦ »ç¿ëÇØ µ¿±â °æÇÕÀÌ ¹ß»ýÇßÀ» ¶§ÀÇ ´ëó ¹æ¹ýÀ» °áÁ¤ÇÒ ¼ö ÀÖµµ·Ï Çϴ üÁ¦¸¦ Á¤ÀÇÇÕ´Ï´Ù. |
| TransactionalWriter | º¸´Ù Á¤¹ÐÇÑ Æ®·£Àè¼Ç(transaction) Á¦¾î¸¦ ÇÒ ¼ö ÀÖµµ·Ï, Ç¥ÁØ SyncProviderÃß»ó Ŭ·¡½ºÀÇ È®ÀåÀ» ÃËÁøÇϴ Ưº°ÇÑ ÀÎÅÍ
ÆäÀ̽ºÀÔ´Ï´Ù. |
| XmlReader | SyncProvider Ãß»ó Ŭ·¡½ºÀÇ È®ÀåÀ» ÃËÁøÇÏ´Â XML ÁöÇâÀÇ µ¿±â Á¦°øÀÚ¿ëÀÇ Æ¯º°ÇÑ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. |
| XmlWriter | SyncProvider Ãß»ó Ŭ·¡½ºÀÇ È®ÀåÀ» ÃËÁøÇÏ´Â XML ÁöÇâÀÇ µ¿±â Á¦°øÀÚ¿ëÀÇ Æ¯º°ÇÑ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. |
| Ŭ·¡½º °³¿ä | |
|---|---|
| SyncFactory | ¹ÌÁ¢¼ÓÀÇ RowSet°´Ã¼¿¡ ÀÇÇØ »ç¿ëµÇ´Â SyncProviderÀνºÅº
½º¸¦ »ý¼ºÇÏ´Â ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ ÀÎÅÍÆäÀ̽º (Service Provider Interface, SPI) µµ±¸
ÀÔ´Ï´Ù. |
| SyncProvider | ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼ÀÇ Àо/Ãâ·Â ±â´ÉÀ» Á¦°øÇÏ´Â µ¿±âµµ±¸
ÀÔ´Ï´Ù. |
| ¿¹¿Ü °³¿ä | |
|---|---|
| SyncFactoryException | SyncFactory µµ±¸
ÀÇ ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù. |
| SyncProviderException | SyncProvider µµ±¸
·Î ¹ß»ýÇÑ ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù. |
½áµåÆÄƼÀÇ º¥´õ°¡ µ¿±â ÇÁ·Î¹ÙÀÌ´õÀÇ ±¸ÇöÀ¸·Î »ç¿ëÇØ¾ß Çϴ ǥÁØ Å¬·¡½º ¹× ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Å¬·¡½º ¹× ÀÎÅÍÆäÀ̽º¸¦ Á¤¸®ÇØ, ¡¸¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ ÀÎÅÍÆäÀ̽º (Service Provider Interface, SPI)¡¹¶ó°í ºÎ¸¨´Ï´Ù. »ç¿ë °¡´ÉÇÑ SyncProvider ±¸ÇöÀÇ À϶÷ÀÌ ±âÀçµÈ JDBC Web ÆäÀÌÁö¿¡ º¥´õ °íÀ¯ÀÇ ±¸ÇöÀ» Ãß°¡ÇØ, °³¹ßÀÚ¿¡°Ô ±¸ÇöÀ» °ø°³ÇÏ°í ½ÍÀº °æ¿ì´Â jdbc@sun.com ±îÁö ÀüÀÚ ¸ÞÀÏ¿¡¼ ¿¬¶ôÇØ ÁֽʽÿÀ. RowSet °´Ã¼·Î ±¸ÇöÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é,
±× ±¸ÇöÀ» SyncFactory ½Ì±Û Åæ¿¡ µî·ÏÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. µî·Ï ¼ø¼¿Í ¸í¸í ±ÔÄ¢ÀÇ ÀÚ¼¼ÇÑ ¼³¸í¿¡ ´ëÇØ¼´Â SyncProvider
Ŭ·¡½º ÄÚ¸àÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ.
javax.sql.rowset.spi ÆÐŰÁö´Â ´ÙÀ½ÀÇ Å¬·¡½º ¹× ÀÎÅÍÆäÀ̽º·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
SyncFactory
SyncProvider
SyncFactoryException
SyncProviderException
SyncResolver
XmlReader
XmlWriter
TransactionalWriter
javax.sql ÆÐŰÁö³»ÀÇ ´ÙÀ½ÀÇ ÀÎÅÍÆäÀ̽ºµµ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.
RowSetReader
RowSetWriter
SyncProvider ±¸ÇöÀº ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼°¡ µ¥ÀÌÅ͸¦ Àбâ, º¯°æÀ» ´õÇÑ µÚ ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ ÀçÂ÷ Ãâ·ÂÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÕ´Ï´Ù. ¸®´õ °´Ã¼ (RowSetReader ¶Ç´Â XMLReader)´Â CachedRowSet
execute ¶Ç´Â populate ¸Þ¼µå°¡ ºÒ·Á°¡
¸é, RowSet °´Ã¼¿¡ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. ¶óÀÌÅÍ °´Ã¼ (RowSetWriter ¶Ç´Â XMLWriter)´Â CachedRowSet
acceptChanges ¸Þ¼µå°¡ ºÒ·Á°¡
¸é, ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º·Î º¯°æµÈ µ¥ÀÌÅ͸¦ Ãâ·ÂÇÕ´Ï´Ù.
RowSet °´Ã¼ÀÇ º¯°æ ³»¿ëÀ» µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇϴ ó¸®¸¦ ¡¸µ¿±â¡¹¶ó°í ºÎ¸¨´Ï´Ù. RowSet °´Ã¼ÀÇ ¶óÀÌÅͰ¡ »ç¿ëÇÏ´Â µ¿±âÀÇ ·¹º§Àº, RowSet °´Ã¼ÀÇ SyncProvider ±¸Çö¿¡
°áÁ¤µË´Ï´Ù. µ¿±âÀÇ ´Ù¾çÇÑ ·¹º§À» ¡¸±×·¹À̵塹¶ó°í ºÎ¸¨´Ï´Ù.
Àú±×·¹À̵åÀÇ µ¿±â´Â °æÇÕÀÌ ÀüÇô Á¸ÀçÇÏÁö ¾Ê´ÂÁö, Á¸ÀçÇß´Ù°í ÇØµµ Àû´Â´Ù°í ÇÏ´Â ¿ÀÇÁƼ¹Ì½ºÆ½ (³«°üÀû)ÀÎ »óÁ¤ÇÑ ±âÃÊ·Î ÇàÇØÁý´Ï´Ù. ÀÌ µ¿±â ¸ðµ¨À» ¡¸¿ÀÇÁƼ¹Ì½ºÆ½ º´Çà ¸ðµ¨¡¹À̶ó°í ºÎ¸¨´Ï´Ù. RowSet °´Ã¼³»¿¡¼ º¯°æµÈ µ¥ÀÌÅͰ¡ µ¥ÀÌÅÍ ¼Ò½º³»¿¡¼µµ º¯°æµÇ°í ÀÖ´Â °æ¿ì´Â °æÇÕÀÌ Á¸ÀçÇÕ´Ï´Ù. ¿ÀÇÁƼ¹Ì½ºÆ½ º´Çà ¸ðµ¨À» »ç¿ëÇÑ´Ù°í ÇÏ´Â °ÍÀº °æÇÕÀÌ Á¸ÀçÇÏ´Â °æ¿ì, µ¥ÀÌÅÍ ¼Ò½º ¶Ç´Â RowSet °´Ã¼¿¡ÀÇ º¯°æÀÌ ¾ø¾îÁø´Ù°í ÇÏ´Â °ÍÀ»ÀǹÌÇÕ´Ï´Ù.
À̰Ϳ¡ ´ëÇØ¼ °í±×·¹À̵åÀÇ µ¿±â ¸ðµ¨À» ¡¸¿°¼¼ÀûÀÎ (ºñ°üÀû) º´Çà ¸ðµ¨¡¹À̶ó°í ºÎ¸¨´Ï´Ù. ÀÌ ¸ðµ¨¿¡¼´Â ´Ù¸¥ »ç¿ëÀÚ°¡ µ¥ÀÌÅÍ ¼Ò½º¿¡ Á¢¼ÓÇØ º¯°æÀ» ´õÇÒ °¡´É¼ºÀÌ ÀÖ´Ù°í ÇÏ´Â »óÁ¤ÇÑ ±âÃÊ·Î µ¿±â 󸮸¦ ÇÕ´Ï´Ù. ¿°¼¼ÀûÀÎ º´Çà ¸ðµ¨¿¡¼´Â °æÇÕÀÇ ¹ß»ýÀ» ¾ïÁ¦Çϱ⠶§¹®¿¡ ´Ù¾çÇÑ ¶ô ·¹º§ÀÌ ¼³Á¤µË´Ï´Ù.
ÃÖÀú ·¹º§ÀÇ µ¿±â·Î´Â RowSet °´Ã¼¿¡ÀÇ Àüº¯°æ ³»¿ëÀÌ, ´Ü¼øÇÏ°Ô ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇØÁý´Ï´Ù. ¶óÀÌÅÍ´Â °æÇÕÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. °æÇÕÀÌ Á¸ÀçÇØ, µ¥ÀÌÅÍ ¼Ò½ºÀÇ °ªÀÌ µ¡¾²±âµÇ¾úÀ» °æ¿ì, ±× ¿ÜÀÇ »ç¿ëÀÚ¿¡
ÇÑ µ¥ÀÌÅÍ ¼Ò½ºÀÇ º¯°æÀº ¾ø¾îÁý´Ï´Ù.
RIXMLProvider ±¸ÇöÀº ÃÖÀú ·¹º§ÀÇ µ¿±â¸¦ »ç¿ëÇØ, RowSet
º¯°æÀ» ´Ü¼øÇÏ°Ô µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇÕ´Ï´Ù. À̰ÍÀº º¸Åë, XML µ¥ÀÌÅÍ ¼Ò½º°¡ µ¥ÀÌÅÍÀÇ Á¤ÇÕ¼ºÀ» È®º¸Çϱâ À§ÇÑ Æ®·£Àè¼Ç(transaction) ±â¼úÀ» Áö¿ø
Çϰí ÀÖÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ±×·¯³ª, XML º£À̽ºÀÇ µ¿±â¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÏ·Á°í Çϰí Àִ ǥÁØÈ ±×·ìµµ Á¸ÀçÇÕ´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â ÀÌÇϸ¦ ÂüÁ¶ÇϽʽÿÀ.
http://www.syncml.org
1°³
»óÀÇ ·¹º§¿¡¼´Â ¶óÀÌÅÍ´Â °æÇÕÀÌ Á¸ÀçÇÒÁö ¾î¶³Áö¸¦ Ã¼Å©ÇØ, Á¸ÀçÇÏ´Â °æ¿ì´Â µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾Æ¹«°Íµµ Ãâ·ÂÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ µ¿±â ·¹º§¿¡´Â RowSet °´Ã¼°¡ µ¥ÀÌÅ͸¦ ÃëµæÇÑ µÚ ´Ù¸¥ »ç¿ëÀÚ°¡ µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ ´ëÀÀÇÏ´Â µ¥ÀÌÅÍ·Î º¯°æÀ» ´õÇßÀ» °æ¿ì, RowSet °´Ã¼ÀÇ º¯°æÀÌ ¾ø¾îÁø´Ù°í ÇÏ´Â ¹®Á¦°¡ ÀÖ½À´Ï´Ù. RIOptimisticProvider ±¸ÇöÀº ÀÌ µ¿±â ·¹º§À» »ç¿ëÇÕ´Ï´Ù.
ÃÖ°í ·¹º§ÀÇ µ¿±â (¿°¼¼ÀûÀÎ º´Çà ¸ðµ¨ÀÇ µ¿±â)·Î´Â ¶óÀÌÅÍ´Â °æÇÕÀ» ÇÇÇϱâ À§Çؼ ¶ôÀ» ¼³Á¤ÇÕ´Ï´Ù. ¶ôÀÇ ¼³Á¤À̶ó°í ÇØµµ, ´ÜÀÏÀÇ ÇàÀÇ ¶ôÀ¸·ÎºÎÅÍ, Å×ÀÌºí ¶Ç´Â µ¥ÀÌÅÍ ¼Ò½º ÀüüÀÇ ¶ô±îÁö, ´Ù¾çÇÑ ·¹º§ÀÌ ÀÖ½À´Ï´Ù. µû¶ó¼, µ¿±â ·¹º§Àº º¹¼öÀÇ »ç¿ëÀÚ¿¡
ÇÑ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ µ¿½Ã ¾×¼¼½º¿¡ ÁßÁ¡À» µÑ±îÇϰí, ¶óÀÌÅͰ¡ RowSet °´Ã¼³»ÀÇ µ¥ÀÌÅÍ¿Í µ¥ÀÌÅÍ ¼Ò½º¸¦ µ¿±â ÇÏ°Ô ÇÏ´Â °Í¿¡ ÁßÁ¡À» µÑ±îÇϰíÀÇ Æ®·¹ÀÌµå ¿ÀÇÁ°¡ µË´Ï´Ù. ¹Ý´ë·Î ¶óÀÌÅÍÀÇ ±â´ÉÀ» À¯È¿ÇÏ°Ô Çϸé, µ¿½Ã ¾×¼¼½º ±â´ÉÀº ¹«È¿°¡ µË´Ï´Ù.
¹ÌÁ¢¼ÓÀÇ ¸ðµç RowSet °´Ã¼ (CachedRowSet, FilteredRowSet, JoinRowSet ¹× WebRowSet °´Ã¼)´Â SyncFactory µµ±¸
·ÎºÎÅÍ SyncProvider °´Ã¼¸¦ ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
·¹ÆÛ·±½º ±¸Çö (RI)Àº ´ÙÀ½ÀÇ 2 »ìÀÇ µ¿±â ÇÁ·Î¹ÙÀÌ´õ¸¦ Á¦°øÇÕ´Ï´Ù.
SyncFactoryÀνºÅϽº·ÎºÎÅÍ ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼¿¡ Á¦°øµÇ´Â µðÆúÆ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ. RowSet °´Ã¼¿Í µ¥ÀÌÅÍ ¼Ò½ºÀÇ µ¿±â¸¦ Àâ±â Àü¿¡
°æÇÕÀÌ Á¸ÀçÇÒÁö ¾î¶³ÁöÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÕ´Ï´Ù. °æÇÕÀÌ Á¸ÀçÇÏ´Â °æ¿ì´Â ¾Æ¹«°Íµµ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. Áï, RowSet °´Ã¼ÀÇ º¯°æÀº µ¥ÀÌÅÍ ¼Ò½º¿¡¼´Â º¸°ü À¯ÁöµÇÁö ¾Ê½À´Ï´Ù.
WebRowSet °´Ã¼, Áï XML Çü½Ä¿¡¼ Àо ¶Ç´Â Ãâ·Â°¡´ÉÇÑ Çà ¼¼Æ®·Î »ç¿ëÇÒ ¼ö ÀÖ´Â µ¿±â ÇÁ·Î¹ÙÀÌ´õ. RIXMLProvider ±¸ÇöÀº °æÇÕÀÇ Ã¼Å©¸¦ ÀÏÀý ½Ç½ÃÇÏÁö ¾Ê°í, WebRowSet °´Ã¼ÀÇ °»½Å µ¥ÀÌÅ͸¦ ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ ´Ü¼øÇÏ°Ô Ãâ·ÂÇÕ´Ï´Ù. WebRowSet°´Ã¼´Â
XML µ¥ÀÌÅÍÀÇ Ã³¸®½Ã¿¡
ÀÌ ÇÁ·Î¹ÙÀÌ´õ¸¦ »ç¿ëÇÕ´Ï´Ù.
SyncProvider ±¸ÇöÀº ·¹ÆÛ·±½º ±¸Çö¿¡ ¹øµé µÇ°í Àֱ⠶§¹®¿¡
RowSet ±¸ÇöÀº ÀÌ·¯ÇÑ ±¸ÇöÀ» ¾ðÁ¦¶óµµ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. SyncProvider ±¸ÇöÀº, SyncFactory ½Ì±Û Åæ¿¡ µî·ÏµÇ¸é, ÀÌ¿ë °¡´ÉÇÑ »óŰ¡ µË´Ï´Ù. RowSet °´Ã¼·ÎºÎÅÍ ÇÁ·Î¹ÙÀÌ´õ (»ý¼ºÀÚ³»·Î ÁöÁ¤, ¶Ç´Â CachedRowSet
setSyncProvider ¸Þ¼µåÀÇ Àμö·Î¼ ÁöÁ¤)ÀÇ ¿ä±¸¸¦ ¹Þ¾ÆµéÀ̸é, SyncFactory ½Ì±Û ÅæÀº ¿ä±¸µÈ ÇÁ·Î¹ÙÀÌ´õ°¡ µî·ÏµÇ¾î ÀÖ´ÂÁö¸¦ È®ÀÎÇÕ´Ï´Ù. µî·ÏµÇ¾î ÀÖ´Â °æ¿ì´Â ±× ÀνºÅϽº¸¦ ÀÛ¼ºÇØ, ¿ä±¸¿øÀÇ RowSet °´Ã¼¿¡ °Ç³×ÁÝ´Ï´Ù. ÁöÁ¤µÈ SyncProvider ±¸ÇöÀÌ µî·ÏµÇÁö ¾ÊÀº °æ¿ì´Â SyncFactory ½Ì±Û ÅæÀº SyncFactoryException °´Ã¼¸¦ Throw ÇÕ´Ï´Ù. ÇÁ·Î¹ÙÀÌ´õ°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â µðÆúÆ® ÇÁ·Î¹ÙÀÌ´õ ±¸Çö RIOptimisticProvider¸¦ ÀÛ¼ºÇØ, ¿ä±¸¿øÀÇ RowSet °´Ã¼¿¡ °Ç³×ÁÝ´Ï´Ù.
WebRowSet °´Ã¼ÀÇ »ý¼ºÀÚ³»¿¡ ÇÁ·Î¹ÙÀÌ´õ°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, SyncFactory´Â
RIOptimisticProvider
ÀνºÅϽº¸¦ °Ç³×ÁÝ´Ï´Ù. ´Ù¸¸, ±¸Çö¿¡ÀÇÇØ WebRowSet
»ý¼ºÀÚ°¡ ÇÁ·Î¹ÙÀÌ´õ·Î¼ RIXMLProvider¸¦ ¼³Á¤ÇÏ´Â °æ¿ì, RowSet °´Ã¼ÀÇ µ¶ÇØ ¹× Ãâ·ÂÀº XML Çü½Ä¿¡¼ ÇàÇØÁý´Ï´Ù.
»ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â SyncProvider Ŭ·¡½º »ç¾çÀ» ÂüÁ¶ÇϽʽÿÀ.
º¥´õ´Â SyncProvider ±¸Çö°ú ÀÓÀÇÀÇ µ¿±â ·¹º§À» °³¹ßÇØ, RowSet °´Ã¼¿¡ µ¿±âµµ±¸¸¦ ¼±ÅýÃų ¼ö°¡ ÀÖ½À´Ï´Ù. ¶Ç, jdbc@sun.com·Î
Sun Microsystems¿¡ ±¸ÇöÀÇ ¿ÏÀü ¼ö½Ä Ŭ·¡½º¸íÀ» µî·ÏÇÏ´Â °ÍÀ¸·Î½á, ±× ±¸ÇöÀ» °ø°³ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ Ã³¸®ÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â ÀÌÇÏ·Î ¼³¸íÇÕ´Ï´Ù.
¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ ÀÎÅÍÆäÀ̽º´Â 2.2 ¹ÌÁ¢¼ÓÀÇ ÇÁ·ÎÆÛƼ ÆÄÀϳ»¿¡ ½Ã½ºÅÛ ÇÁ·ÎÆÛƼ³ª ÇÁ·ÎÆÛƼ¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ý, JNDI ÄÁÅØ½ºÆ®¸¦ ±¸¼ºÇÏ´Â ¹æ¹ýÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â 2.3 SyncFactory ÇÁ·Î¹ÙÀÌ´õ ÀνºÅϽº »ý¼º Á¤Ã¥
ÇÁ·Î¹ÙÀÌ´õ°¡ Á¤»óÀûÀ¸·Î µî·ÏµÇ¾î ÀÖÀ¸¸é, ÀÌ·¯ÇÑ Á¤Ã¥
ÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â °Ô´Ù°¡ 3.2 ±×·¹À̵å JSR 114 ¿¡´Â 3.3 ¶ô JSR 114 ¿¡´Â ÀÌ·¯ÇÑ Á¤¼ö´Â ±×·¹À̵å Á¤¼ö¸¦ º¸¿ÏÇÏ´Â Á¤¼öÀÔ´Ï´Ù. ´ëºÎºÐÀÇ ±×·¹À̵åÀÇ µðÆúÆ® ¼³Á¤Àº, 3.4 °»½Å °¡´É ºä 3.5 ÀÌÇÏ¿¡
·¹ÆÛ·±½º ±¸Çö CachedRowSetImpl°¡ setSyncProvider ¸Þ¼µå¸¦ È£ÃâÇÏ´Â °Í¿¡ ÀÇÇØ ÇöÀçÀÇ SyncProvider °´Ã¼¸¦ ±¸¼ºÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
±× ÈÄ,
»ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ
ÂüÁ¶ÇϽʽÿÀ. 2.0 ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ ÀÎÅÍÆäÀ̽º ¾ÆÅ°ÅØÃÄ
2.1°³
¿ä
SyncProvider ±¸ÇöÀ» µî·ÏÇÑµÚ ÇÊ¿äÇÑ ¶§¿¡ »ý¼ºÇÒ ¼ö ÀÖ´Â
Ç÷¯±× ÀÎ °¡´ÉÇÑ µµ±¸¸¦ Á¦°øÇÕ´Ï´Ù. SyncFactory
Áö¿¬ ÂüÁ¶ µµ±¸´Â ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼·ÎºÎÅÍ ¿ä±¸°¡ ÀÖÀ» ¶§±îÁö ÀνºÅϽºÀÇ »ý¼ºÀ» ´ÊÃß´Â °ÍÀ¸·Î ÀÚ¿øÀÇ ¾µµ¥¾ø´Â ¼Òºñ¸¦ Á¦ÇÑÇÕ´Ï´Ù. SyncFactory Ŭ·¡½º´Â ƯÁ¤ÀÇ SyncProvider ±¸Çö¿¡ ÀÇÇØ Á¦°øµÇ´Â ·Î±× ¿É¼Ç°ú ½ºÆ®¸²À» ±¸¼ºÇϱâ À§ÇÑ Ç¥ÁØ APIµµ
Á¦°øÇÕ´Ï´Ù. SyncFactory¿¡
ÀÇ µî·ÏRowSet °´Ã¼°¡ ½áµåÆÄƼÀÇ SyncProvider ±¸ÇöÀ» ÃëµæÇØ, ±× javax.sql.RowSetReader ±¸Çö°ú javax.sql.RowSetWriter ±¸ÇöÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é,
ÀÌ ±¸ÇöÀ» SyncFactory¿¡ µî·ÏÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¸ðµç SyncProvider ±¸ÇöÀº ´ÙÀ½ÀÇ µî·Ï µµ±¸¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. SyncProvider °´Ã¼¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´ÙSyncFactory¿¡ °Ç³×ÁÙ Çʿ䰡 ÀÖ´Ù
SyncFactory Ŭ·¡½ºÀÇ ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ. SyncFactory Àº ¿ä±¸µÈ SyncProvider °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù. ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼°¡ ƯÁ¤ÀÇ SyncProvider ±¸ÇöÀ¸·Î ÃʱâȵǾúÀ» ¶§, ¶Ç´Â ±× ¿ÜÀÇ SyncProvider °´Ã¼·Î ½ÇÇà½Ã¿¡ º¹±¸ ÀÌ·ç¾îÁ³À» ¶§´Â ´ÙÀ½ÀÇ Á¤Ã¥°¡ ½ÃÇàµË´Ï´Ù. SyncProvider °´Ã¼°¡ ÁöÁ¤µÇ¾îSyncFactory¿¡ ÇÁ·Î¹ÙÀÌ´õÀÇ ÂüÁ¶°¡ Æ÷ÇÔµÇÁö ¾Ê´Â °æ¿ì, SyncFactoryException°¡ Throw µÈ´ÙSyncProvider °´Ã¼°¡ ÁöÁ¤µÇ¾îSyncFactory¿¡ ÇÁ·Î¹ÙÀÌ´õÀÇ ÂüÁ¶°¡ Æ÷ÇԵǴ °æ¿ì, ¿ä±¸µÈ ÇÁ·Î¹ÙÀÌ´õ°¡ Á¦°øµÈ´ÙSyncProvider °´Ã¼°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ·¹ÆÛ·±½º ±¸Çö ÇÁ·Î¹ÙÀÌ´õ RIOptimisticProvider°¡ Á¦°øµÈ´Ù
Ŭ·¡½ºÀÇ ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ.
SyncFactory3.0 SyncProvider ±¸Çö °¡À̵å
3.1 ¿ä°Ç
SyncFactory¿¡ ¿ÏÀüÇÏ°Ô Ç÷¯±× ÀÎ °¡´ÉÇÑ SyncProvider Áذб¸ÇöÀº ¸ðµç Ãß»ó ¸Þ¼µå¸¦ È®ÀåÇØ, SyncProvider Ŭ·¡½º¿¡ ±¸ÇöÇÒÇʿ䰡 ÀÖ½À´Ï´Ù. °³°³ÀÇ ±¸ÇöÀº, SyncProvider Ŭ·¡½º Á¤Àdz»ÀÇ ±×·¹À̵å, ¶ô, °»½Å °¡´É ºäÀÇ ±â´ÉÀ» È®Á¤ÇÒÇʿ䰡 ÀÖ½À´Ï´Ù. 1°³
ÀÌ»óÀÇ SyncProvider ±â¼ú ±âÁØÀÌ Áö¿ø
µÇ°í ÀÖÀ»Çʿ䰡 ÀÖ½À´Ï´Ù. º¥´õ ±¸ÇöÀº ±×·¹À̵å, ¶ô, °»½Å °¡´É ºäÀÇ ±â´ÉÀÇ ¹üÀ§¸¦ ³ªÅ¸³»´Â °ÍÀÌ ¿ä±¸µË´Ï´Ù. SyncProvider ¸í¸í ±ÔÄ¢¿¡ ÁذÅÇÒÇʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ ¸í¸í ±ÔÄ¢ÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â SyncProvider Ŭ·¡½ºÀÇ ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ. SyncProvider °´Ã¼·ÎºÎÅÍ ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼¿¡ Á¦°øµÇ´Â µ¿±âÀÇ Ç°ÁúÀ» ³ªÅ¸³»´Â ÀÏ·ÃÀÇ ±×·¹À̵尡 Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±×·¹À̵å´Â ¼ºñ½º ǰÁúÀÇ ³·Àº ¼ø¼¿¡ À϶÷ µË´Ï´Ù. SyncProvider ±¸ÇöÀº, RowSet °´Ã¼³»ÀÇ º¯°æÀÌ ³¡³ µ¥ÀÌÅ͸¦ ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ µ¡¾²±âÇÒ »Ó. ¿øÀÇ °ª°ú ÇöÀçÀÇ °ªÀ» ºñ±³ÇØ °æÇÕÀÌ ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇϴ ó¸®´Â ÇàÇØÁöÁö ¾Ê´Â´Ù. RIXMLProvider´Â
ÀÌ ±×·¹À̵å·Î ±¸ÇöµÇ°í ÀÖ´ÙSyncProvider ±¸ÇöÀº ÀüȸÀÇ µ¿±âºÎÅÍ À̹ø µ¿±â±îÁö º¯°æµÈ ÀºÇà³»¿¡ °æÇÕÀÌ ¾ø´Â°¡ üũ¸¦ ½Ç½ÃÇÑ´Ù. ¿ø·¡ÀÇ µ¥ÀÌÅÍ ¼Ò½º·Î º¯°æÀÌ ´õÇØÁøµÚ ±× ³»¿ëÀÌ ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼¿¡ ¹Ý¿µµÉ °ÍÀº ¾ø´Ù. °æÇÕÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, RowSet °´Ã¼³»ÀÇ º¯°æÀº µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇØÁø´Ù. °æÇÕÀÌ Á¸ÀçÇÏ´Â °æ¿ì, º¯°æ ³»¿ëÀº Ãâ·ÂÇØÁöÁö ¾Ê´Ù. RIOptimisticProvider ±¸ÇöÀº ÀÌ ±×·¹À̵带 »ç¿ëÇÑ´ÙSyncProvider ±¸ÇöÀº ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼³»ÀÇ ¸ðµç ÇàÀ» ¹Ìº¯°æÀÇ °Íµµ Æ÷ÇÔÇØ üũÇÑ´Ù. À̰Ϳ¡ ÀÇÇØ
µ¿±â°¡ Á¤»óÀûÀ¸·Î ¿Ï·áÇßÀ» ¶§, ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ ¸ðµç ÇàÀÇ º¯°æÀÌ ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼¿¡ ¹Ý¿µµÈ´ÙSyncProvider ±¸ÇöÀº, RowSet °´Ã¼³»ÀÇ ÇàÀÌ º¯°æµÇ¾úÀ» ¶§, µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ °°Àº µ¥ÀÌÅͰ¡ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ º¯°æµÇ´Â °ÍÀÌ ¾ø°Ô, ¿ø·¡ÀÇ µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ ÇàÀ» Àá±Ù´ÙSyncProvider ±¸ÇöÀº, RowSet °´Ã¼ÀÇ À̽Ŀ¡ »ç¿ëµÈ ¿øÀÇ Äõ¸®ÀÇ ¿µÇâÀ» ¹Þ´Â ºä¿Í Å×À̺í Àüü, ¶Ç´Â ±× ¾î´ÀÂÊÀ̵çÀ» Àá±Ù´Ù
RowSet °´Ã¼ÀÇ ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ ¶ôÀÌ Àû¿ëµÇ°í ÀÖ´ÂÁö ¾î¶²Áö, Àû¿ëµÇ°í ÀÖ´Â °æ¿ì´Â ¾î´À ±¸Á¶Ã¼¿¡ Àû¿ëµÇ°í ÀÖ´ÂÁö¸¦ ³ªÅ¸³»´Â Á¤¼ö¼¼Æ®°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¶ôÀº µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ RowSet °´Ã¼°¡ Àý´Ü µÉ ¶§±îÁö, µ¥ÀÌÅÍ ¼Ò½º»ó¿¡ º¸°ü À¯ÁöµË´Ï´Ù.
RowSet °´Ã¼¸¦ µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ Àý´Ü ÇÒ ¶§ µ¥ÀÌÅÍ ¼Ò½ºÀÇ ¶ôµµ ÆÄ±âÇÏ´Â °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù. ±×·¹À̵å GRADE_LOCK_WHEN_MODIFIED ¹× GRADE_LOCK_WHEN_LOADED¿¡
¼´Â ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼·Î ¶ôÀÇ ´Ü°è¸¦ ¼¼¼¼ÇÏ°Ô Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. RowSet °´Ã¼ÀÇ °ü¸®ÇÏ¿¡ ÀÖ´Â °ÍÀ» Á¦¿ÜÇÏ´Â ¸ðµç SyncProvider ±¸ÇöÀÇ µðÆúÆ®ÀÇ ¶ô ¼³Á¤RowSet °´Ã¼ÀÇ À̽Ŀ¡ »ç¿ëµÈ ¿øÀÇ SQL Äõ¸®ÀÇ ¿µÇâÀ» ¹Þ´Â Çà¿¡°Ô¸¸ º¸°ü À¯ÁöµÈ´ÙRowSet °´Ã¼ÀÇ À̽Ŀ¡ »ç¿ëµÈ Äõ¸®ÀÇ ¿µÇâÀ» ¹Þ´Â ¸ðµç Å×À̺í»ó¿¡¼ º¸°ü À¯ÁöµÈ´ÙRowSet °´Ã¼¿¡ ÀÇÇØ »ç¿ëµÇ´Â µ¥ÀÌÅÍ ¼Ò½º Àüü·Î º¸°ü À¯ÁöµÈ´Ù
RowSet °´Ã¼¿¡´Â SQL VIEW
µ¥ÀÌÅ͸¦ À̽ÄÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÇÏ´Â SyncProvider °´Ã¼°¡VIEW
ÆÄ»ý¿øÀÇ Å×À̺í (º¹¼ö°¡) ³»ÀÇ µ¥ÀÌÅ͸¦ °»½ÅÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â Á¤¼öÀÔ´Ï´Ù. SyncProvider ±¸ÇöÀÌ, RowSet °´Ã¼¸¦ À̽ÄÇϱâ À§Çؼ »ç¿ëµÈ SQL VIEW
ÆÄ»ý¿øÀÇ Å×À̺í (º¹¼ö°¡´É)¿¡ÀÇ µ¿±â¸¦ Áö¿øÇÏ´Â °ÍÀ» ³ªÅ¸³½´ÙSyncProvider ±¸ÇöÀÌ, RowSet °´Ã¼¸¦ À̽ÄÇϱâ À§Çؼ »ç¿ëµÈ SQL VIEW
ÆÄ»ý¿øÀÇ Å×À̺í (º¹¼ö°¡´É)¿¡ÀÇ µ¿±â¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â°ÍÀ» ³ªÅ¸³½´Ù
SyncProvider
±×·¹ÀÌµå ±â´É°ú ¶ô ±â´ÉÀÇ »ç¿ë ¹æ¹ý CachedRowSetImpl crs = new CachedRowSetImpl(); crs.setSyncProvider("com.foo.bar.HASyncProvider"); ¾îÇø®ÄÉÀ̼ÇÀº ¹ÌÁ¢¼ÓÀÇ RowSet °´Ã¼¿¡ ÀÇÇØ ÇöÀç »ç¿ëµÇ°í ÀÖ´Â SyncProvider °´Ã¼¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÇÁ·Î¹ÙÀÌ´õÀÇ ±¸Çö¿¡ »ç¿ëµÈ µ¿±âÀÇ ±×·¹À̵å¿Í ÇöÀç »ç¿ëµÇ°í ÀÖ´Â ¶ôÀÇ ´Ü°èµµ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ À¯¿¬¼ºÀ» ÀÌ¿ëÇØ, »ç¿ëÇÏ´Â ¶ôÀÇ ´Ü°è¸¦ ¼³Á¤ÇÏ´Â °ÍÀ¸·Î½á, µ¿±âÀÇ ¼º°øÀÇ È®·üÀ» ³ôÀÏ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿ÀÆÛ·¹À̼ǿ¡ ´ëÇØ¼´Â ¾Æ·¡ÀÇ ÄÚµåÀÇ ¹ßÃ鸦 ÂüÁ¶ÇϽʽÿÀ. SyncProvider sync = crs.getSyncProvider();
switch (sync.getProviderGrade()) { case: SyncProvider.GRADE_CHECK_ALL_AT_COMMIT //A high grade of optimistic synchronization break; case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT //A low grade of optimistic synchronization break; case: SyncProvider.GRADE_LOCK_WHEN_LOADED // A pessimistic synchronization grade break; case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED // A pessimistic synchronization grade break; case: SyncProvider.GRADE_NONE // No synchronization with the originating data source provided break; } switch (sync.getDataSourcLock() { case: SyncProvider.DATASOURCE_DB_LOCK // A lock is placed on the entire datasource that is used by the // RowSet object break;
case: SyncProvider.DATASOURCE_NO_LOCK // No locks remain on the originating data source. break;
case: SyncProvider.DATASOURCE_ROW_LOCK // A lock is placed on the rows that are touched by the original // SQL statement used to populate // the RowSet object that is using the SyncProvider break;
case: DATASOURCE_TABLE_LOCK // A lock is placed on all tables that are touched by the original // SQL statement used to populated // the RowSet object that is using the SyncProvider break;
SyncFactory Ŭ·¡½ºÀÇ static À¯Æ¿¸®Æ¼ ¸Þ¼µå¸¦ »ç¿ëÇØ, ÇöÀç SyncFactory¿¡ µî·ÏµÇ¾î ÀÖ´Â SyncProvider ±¸ÇöÀÇ À϶÷À» È®ÀÎÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Enumeration e = SyncFactory.getRegisteredProviders();
4.0 µ¿±â °æÇÕÀÇ ÇØ°á
¾îÇø®ÄÉÀ̼ÇÀº, SyncResolverÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇØ, °æÇÕÀÌ ¹ß»ýÇßÀ» ¶§ÀÇ ¼öµ¿¿¡¼ÀÇ ´ëó¹ýÀ» °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. CachedRowSet
acceptChanges ¸Þ¼µå°¡ Á¾·áÇØ, °æÇÕÀÇ Á¸Àç°¡ È®ÀεǾúÀ» °æ¿ì, ÀÌ ¸Þ¼µå´Â SyncProviderException °´Ã¼¸¦ Throw ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ¿¹¿Ü¸¦ ijġ ÇØ, SyncProviderException.getSyncResolver() ¸Þ¼µå È£Ãâ¿¡ ÀÇÇØ SyncResolver °´Ã¼¸¦ Ãëµæ½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù.
SyncResolver°´Ã¼´Â
SyncResolverÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí Àִ Ư¼öÇÑ CachedRowSet ¶Ç´Â JdbcRowSet °´Ã¼À̸ç, 1 Ç྿ °æÇÕÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÕ´Ï´Ù. µ¿±â µÇ´Â RowSet °´Ã¼ÀÇ º¹Á¦°¡ µÇ¾î ÀÖ¾î, °æÇÕÀÇ ¿øÀÎÀÌ µÇ°í ÀÖ´Â µ¥ÀÌÅÍ ¼Ò½ºÀÇ µ¥ÀÌÅ͸¸À» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀÌ, °æÇÕÀÇ ¿øÀÎÀÔ´Ï´Ù. ±× ¿ÜÀÇ ¸ðµç ·ÄÄ¡´Â null·Î
¼³Á¤µË´Ï´Ù. SyncResolver°´Ã¼´Â
°æÇÕ Çϰí ÀÖ´Â °ªÀ¸·ÎºÎÅÍ ´Ù¸¥ °æÇÕ Çϰí ÀÖ´Â °ª¿¡ À̵¿ÇÒ ¼ö ÀÖ´Â ¸Þ¼µå, nextConflict ¹× previousConflict¸¦ Á¦°øÇϰí ÀÖ½À´Ï´Ù.
SyncResolverÀÎÅÍÆäÀ̽º´Â ¾Æ·¡ÀÇ Ã³¸®¸¦ ½Ç½ÃÇÏ´Â ¸Þ¼µåµµ Á¦°øÇÕ´Ï´Ù.
RowSet °´Ã¼ÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì ±× ÀûÀýÇÑ °ªÀÇ ¼³Á¤
CachedRowSet
acceptChanges ¸Þ¼µå´Â ºÒ·Á°¡
¸é, RowSet °´Ã¼ÀÇ SyncProvider °´Ã¼¸¦ À§¾ç ÇÕ´Ï´Ù. ÀÌ SyncProvider °´Ã¼·ÎºÎÅÍ Á¦°øµÇ´Â ¶óÀÌÅÍÀÇ ±¸Çö ¹æ¹ýÀº °æÇÕÀÇ Ã¼Å© ·¹º§ (±×·¹À̵å)¿¡
°áÁ¤µË´Ï´Ù. °æÇÕÀÇ Ã¼Å©°¡ ¸ðµÎ ¿Ï·áÇØ, ½ÇÁ¦·Î °æÇÕÀÌ °ËÃâµÇ¾úÀ» °æ¿ì, acceptChanges ¸Þ¼µå´Â SyncProviderException °´Ã¼¸¦ Throw ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ¿¹¿Ü¸¦ ijġ ÇØ, ÀÌ ¿¹¿Ü¸¦ »ç¿ëÇØ SyncResolver °´Ã¼¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù
.
SyncResolver ¸Þ¼µå¸¦ »ç¿ëÇØ, °¢ °æÇÕÀÇ Á¤º¸¸¦ ÃëµæÇØ, ´ëó ¹æ¹ýÀ» °áÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀÌ¼Ç ³í¸® ¶Ç´Â »ç¿ëÀÚ¿¡ ÀÇÇØ RowSet °´Ã¼³»ÀÇ °ªÀ» Áö¼Ó½Ãų Çʿ䰡 ÀÖ´Ù°í ÇÏ´Â ÆÇ´ÜÀÌ ³»·ÁÁ³À» °æ¿ì, ¾îÇø®ÄÉÀÌ¼Ç ¶Ç´Â »ç¿ëÀÚ´Â ÀÌ °ªÀ¸·Î µ¥ÀÌÅÍ ¼Ò½ºÄ¡¸¦ µ¡¾²±âÇÒ ¼ö ÀÖ½À´Ï´Ù.
SyncResolverÀÎÅÍÆäÀ̽ºÀÇ ÄÚ¸àÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ.
5.0 °ü·Ã »ç¾ç
6.0 °ü·Ã Ç׸ñ
°³¿ä
ÆÐŰÁö
Ŭ·¡½º
»ç¿ë
°èÃþ Æ®¸®
ºñÃßõ API
»öÀÎ
ÇïÇÁ
JavaTM 2 Platform
Standard Ed. 5.0
ÀüÀÇ ÆÐŰÁö
´ÙÀ½ÀÇ ÆÐŰÁö
ÇÁ·¹ÀÓÀ¸·Î
ÇÁ·¹ÀÓ ¾øÀÌ