|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.security.AccessController
AccessController Ŭ·¡½º´Â ¾×¼¼½º Á¦¾îÀÇ Á¶ÀÛ°ú °áÁ¤¿¡ »ç¿ëµË´Ï´Ù.
±¸Ã¼ÀûÀ¸·Î´Â AccessController Ŭ·¡½º¸¦ ´ÙÀ½ÀÇ 3 °³ÀÇ ¸ñÀûÀ¸·Î »ç¿ëÇÕ´Ï´Ù.
checkPermission
¸Þ¼Òµå´Â ÁöÁ¤ÇÑ ¾×¼¼½º±Ç¿¡ ÀÇÇØ ³ªÅ¸³ª´Â ¾×¼¼½º ¿ä±¸°¡ Çã°¡µÇ´ÂÁö °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù. ÀÌÇÏ¿¡, È£ÃâÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ ¿¹¿¡¼´Â checkPermission
´Â /temp µð·ºÅ丮ÀÇ testFile ¶ó°í ÇÏ´Â ÆÄÀÏ¿¡ÀÇ Àоîµé¿© ±ÇÀ» Çã°¡ÇÒÁö ¾î¶³Áö¸¦ °áÁ¤ÇÕ´Ï´Ù.
FilePermission perm = new FilePermission("/temp/testFile", "read"); AccessController.checkPermission(perm);
¿ä±¸ÇÑ ¾×¼¼½º°¡ Çã°¡µÇ´Â °æ¿ì¿¡´Â checkPermission
´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇÕ´Ï´Ù. °ÅºÎµÇ´Â °æ¿ì¿¡´Â AccessControlException °¡ ½½·Î¿ì µË´Ï´Ù. ¿ä±¸ ¾×¼¼½º±ÇÀÌ ºÎÀûÀýÇϰųª ¹«È¿ÀÎ °ªÀ» Æ÷ÇÔÇϰí ÀÖ¾úÀ» °æ¿ì¿¡µµ, AccessControlException ´Â ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ±×·¯ÇÑ Á¤º¸´Â °¡´ÉÇÑ °æ¿ì¿¡´Â ¹Ýµå½Ã Á¦°øµË´Ï´Ù.
ÇöÀçÀÇ thread°¡, m °³ÀÇ È£ÃâÃøÀ» 1, 2 % % % m ÀÇ Â÷·Ê·Î ó¸®ÇØ, È£ÃâÃø m °¡ checkPermission
¸Þ¼Òµå¸¦ È£ÃâÇß´Ù°í ÇÕ´Ï´Ù. checkPermission
¸Þ¼Òµå´Â ´ÙÀ½ÀÇ ¾Ë°í¸®Áò¿¡ ±Ù°ÅÇØ, ¾×¼¼½º°¡ Çã°¡µÉ±î °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù.
i = m; while (i > 0) { if (È£ÃâÃøÀÇ µµ¸ÞÀο¡ ¾×¼¼½º±ÇÀÌ ¾ø´Ù) throw AccessControlException else if (È£Ãâ¿ø i °¡ Ư±Ç ÄÚµå·Î¼ ¸¶Å© µÇ°í ÀÖ´Ù) { if (¹®¸ÆÀÌ doPrivileged ÀÇ È£Ãâ·Î ÁöÁ¤µÇ¾ú´Ù) context.checkPermission(permission) return; } i = i - 1; }; // Next, check the context inherited when // the thread was created. Whenever a new thread is created, the // AccessControlContext at that time is // stored and associated with the new thread, as the "inherited" // context. inheritedContext.checkPermission(permission);
È£ÃâÃøÀº Ư±Ç ÄÚµå·Î¼ ¸¶Å© ÇÒ ¼ö ÀÖ½À´Ï´Ù (doPrivileged
¹× ÀÌÇÏÀÇ ¼³¸íÀ» ÂüÁ¶). ¾×¼¼½º Á¦¾î¸¦ °áÁ¤ÇÏ´Â °æ¿ì,checkPermission
¸Þ¼Òµå´Â ¹®¸Æ Àμö°¡ ¾ø´Â doPrivileged
ÀÇ È£Ãâ¿¡ ÀÇÇØ Ư±Ç ÄÚµå·Î¼ ¸¶Å© µÈ È£Ãâ Ãø¿¡ ´ê¾ÒÀ» ¶§¿¡, °Ë»ç¸¦ ÁßÁöÇÕ´Ï´Ù (¹®¸Æ Àμö¿¡ ´ëÇØ¼´Â ÀÌÇÏÀÇ ¼³¸íÀ» ÂüÁ¶). ±× È£ÃâÃøÀÇ area·Î ÁöÁ¤µÈ ¾×¼¼½º±ÇÀÌ ÀÖ´Â °æ¿ì, ÀÌÈÄÀÇ °Ë»ç´Â ÇàÇØÁöÁö ¾Ê°í checkPermission
´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇØ, ¿ä±¸ÇÑ ¾×¼¼½º°¡ Çã°¡µÈ °ÍÀ» ³ªÅ¸³À´Ï´Ù. ±× area·Î ÁöÁ¤µÈ ¾×¼¼½º±ÇÀÌ ¾ø´Â °æ¿ì¿¡´Â Åë»ó ´ë·Î ¿¹¿Ü°¡ ½½·Î¿ì µË´Ï´Ù.
ÀÌÇÏ¿¡, Ư±Ç ±â´ÉÀÇ Åë»óÀÇ »ç¿ë¹ýÀ» ¼³¸íÇÕ´Ï´Ù. Ư±Ç ºí·Ï³»·ÎºÎÅÍ °ªÀ» µ¹·ÁÁÙ Çʿ䰡 ¾ø´Â °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÕ´Ï´Ù.
somemethod() { ...normal code here... AccessController.doPrivileged(new PrivilegedAction() { public Object run() { // privileged code goes here, for example: System.loadLibrary("awt"); return null; // nothing to return } }); ...normal code here... }
PrivilegedAction ´Â Object ¸¦ µ¹·ÁÁÖ´Â run
¶ó°í ÇÏ´Â ¸Þ¼Òµå¸¦ °¡Áö´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. »ó±âÀÇ ¿¹´Â ±× ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀÇ ÀÛ¼º ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. Áï,run
¸Þ¼ÒµåÀÇ °íÁ¤ ±¸ÇöÀÌ Á¦°øµË´Ï´Ù. doPrivileged
°¡ ºÒ·Á °¡¸é(ÀÚ), ±× doPrivileged
¿¡ PrivilegedAction ÀÇ ±¸ÇöÀÇ ÀνºÅϽº°¡ °Ç³×¹Þ½À´Ï´Ù. doPrivileged
¸Þ¼Òµå´Â Ư±ÇÀ» À¯È¿ÇÏ°Ô ÇÑ ÈÄ¿¡ PrivilegedAction ÀÇ ±¸ÇöÀ¸·ÎºÎÅÍ run
¸Þ¼Òµå¸¦ È£ÃâÇØ,run
¸Þ¼ÒµåÀÇ ¹Ýȯ°ªÀ» doPrivileged
ÀÇ ¹Ýȯ°ª (»ó±âÀÇ ¿¹¿¡¼´Â ¹«½ÃµÇ°í ÀÖ´Ù)À¸·Î¼ µ¹·ÁÁÝ´Ï´Ù.
°ªÀ» µ¹·ÁÁÙ Çʿ䰡 ÀÖ´Â °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÕ´Ï´Ù.
somemethod() { ...normal code here... String user = (String) AccessController.doPrivileged( new PrivilegedAction() { public Object run() { return System.getProperty("user.name"); } } ); ...normal code here... }
run
¸Þ¼Òµå·Î ½ÇÇàÇÑ ¾×¼ÇÀÌ ¡¸È®ÀÎÁ¦¡¹¿¹¿Ü (¸Þ¼ÒµåÀÇ throws
Àý¿¡ Ç¥½ÃµÇ°í ÀÖ´Â ¿¹¿Ü)¸¦ ½½·Î¿ì ÇÒ °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì¿¡´Â PrivilegedAction
ÀÎÅÍÆäÀ̽º ´ë½Å¿¡ PrivilegedExceptionAction
ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
somemethod() throws FileNotFoundException {
...normal code here...
try {
FileInputStream fis = (FileInputStream) AccessController.doPrivileged(
new PrivilegedExceptionAction() {
public Object run() throws FileNotFoundException {
return new FileInputStream("someFile");
}
}
);
} catch (PrivilegedActionException e) {
// e.getException() should be an instance of FileNotFoundException,
// as only "checked" exceptions will be "wrapped" in a
// PrivilegedActionException
.
throw (FileNotFoundException) e.getException();
}
...normal code here...
}
Ư±Ç ±¸Á¶ÀÇ »ç¿ë¿¡´Â ¼¼½ÉÀÇ ÁÖÀ§¸¦ ±â¿ï¿©, Ư±Ç ÄÚµå ¼½¼ÇÀ» °¡´ÉÇÑ ÇÑ ÀÛ°Ô ÇØ ÁÖ¼¼¿ä.
checkPermission
´Â Ç×»ó ÇöÀç ½ÇÇàÇϰí ÀÖ´Â threadÀÇ ¹®¸Æ³»¿¡¼ ½ÃÅ¥·¯Æ¼ üũ¸¦ ½Ç½ÃÇÕ´Ï´Ù. ±×·¯³ª ½ÇÁ¦·Î´Â ÁöÁ¤µÈ ¹®¸Æ³»¿¡¼ ½Ç½ÃÇÏ´Â ½ÃÅ¥·¯Æ¼ üũ¸¦, ¡¸´Ù¸¥¡¹¹®¸Æ³»·ÎºÎÅÍ (¿¹¸¦ µé¾î, ¿öÅ©½º ·¹µå³»·ÎºÎÅÍ) ½Ç½ÃÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ »óȲ¿¡ ´ëÀÀÇϱâ À§Çؼ,getContext
¸Þ¼Òµå¿Í AccessControlContext Ŭ·¡½º°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. getContext
¸Þ¼Òµå´Â ÇöÀçÀÇ È£ÃâÃø ¹®¸ÆÀÇ ¡¸snapshot¡¹¸¦ ÃëµæÇØ, ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â AccessControlContext ¿ÀºêÁ§Æ®¿¡ ±× ¹®¸ÆÀ» ³Ö½À´Ï´Ù. ÀÌÇÏ¿¡, È£ÃâÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
AccessControlContext acc = AccessController.getContext()
AccessControlContext ¿¡´Â ÇöÀç ½ÇÇàÁßÀÇ threadÀÇ ¹®¸ÆÀº ¾Æ´Ï°í, AccessControlContext °¡ ĸ½¶ÈÇÏ´Â ¹®¸Æ¿¡ ±Ù°ÅÇØ, ¾×¼¼½º¸¦ °áÁ¤ÇÏ´Â checkPermission
¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù. µû¶ó¼, ´Ù¸¥ ¹®¸Æ³»ÀÇ ÄÚµå´Â ÀÌÀü¿¡ º¸Á¸ÇÑ AccessControlContext ¿ÀºêÁ§Æ®ÀÇ checkPermission
¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡, È£ÃâÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
acc.checkPermission(permission)
¶Ç, ¹®¸ÆÀ» ¾î´À ¾×¼¼½º±ÇÀ¸·Î °Ë»çÇÒÁö°¡, »çÀü¿¡´Â ºÒ¸íÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡´Â ¹®¸ÆÀ» °ªÀ¸·Î ÇØ¼ ¹Þ´Â doPrivileged ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
somemethod() { AccessController.doPrivileged(new PrivilegedAction() { public Object run() { // Code goes here. Any permission checks within this // run method will require that the intersection of the // callers protection domain and the snapshot's // context have the desired permission. } }, acc); ...normal code here... }
AccessControlContext
¸Þ¼ÒµåÀÇ °³¿ä | |
static void |
checkPermission (Permission perm)
ÇöÀç À¯È¿ÇÑ ½ÃÅ¥·¯Æ¼ Æú¸®½Ã¿¡ ±Ù°ÅÇØ, ÁöÁ¤µÈ ¾×¼¼½º±Ç¿¡ ÀÇÇØ ³ªÅ¸³ª´Â ¾×¼¼½º ¿ä±¸°¡ Çã°¡µÇ´ÂÁö °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù. |
static Object |
doPrivileged (PrivilegedAction action)
À¯È¿ÇÏ°Ô µÈ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedAction ¸¦ ½ÇÇàÇÕ´Ï´Ù. |
static Object |
doPrivileged (PrivilegedAction action,
AccessControlContext context)
ÁöÁ¤µÈ AccessControlContext ¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedAction ¸¦ ½ÇÇàÇÕ´Ï´Ù. |
static Object |
doPrivileged (PrivilegedExceptionAction action)
À¯È¿ÇÏ°Ô µÈ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionAction ¸¦ ½ÇÇàÇÕ´Ï´Ù. |
static Object |
doPrivileged (PrivilegedExceptionAction action,
AccessControlContext context)
ÁöÁ¤µÈ AccessControlContext ¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionAction ¸¦ ½ÇÇàÇÕ´Ï´Ù. |
static AccessControlContext |
getContext ()
ÇöÀçÀÇ threadÀÇ °è½ÂµÈ AccessControlContext ¸¦ Æ÷ÇÔÇÑ, ÇöÀçÀÇ È£ÃâÃø ¹®¸ÆÀÇ ¡¸snapshot¡¹¸¦ ÃëµæÇØ, AccessControlContext ¿ÀºêÁ§Æ®¿¡ ¹èÄ¡ÇÕ´Ï´Ù. |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
¸Þ¼ÒµåÀÇ »ó¼¼ |
public static Object doPrivileged(PrivilegedAction action)
PrivilegedAction
¸¦ ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ area·Î ¼ÒÀ¯Çϰí ÀÖ´Â ¡¸¸ðµç¡¹¾×¼¼½º±ÇÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.
¾×¼ÇÀÇ run
¸Þ¼Òµå°¡ ¹ÌÈ®ÀÎÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì Çϸé(ÀÚ), ¿¹¿Ü´Â ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.
action
- ½ÇÇàµÇ´Â ¾×¼Ç
run
¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â °ªdoPrivileged(PrivilegedAction, AccessControlContext)
,
doPrivileged(PrivilegedExceptionAction)
public static Object doPrivileged(PrivilegedAction action, AccessControlContext context)
AccessControlContext
¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedAction
¸¦ ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ area·Î ¼ÒÀ¯Çϰí ÀÖ´Â ¾×¼¼½º±Ç°ú ÁöÁ¤µÈ AccessControlContext
¿¡ ÀÇÇØ ³ªÅ¸³»Áö´Â area·Î ¼ÒÀ¯Çϰí ÀÖ´Â ¾×¼¼½º±ÇÀÇ °øÅë ºÎºÐÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.
¾×¼ÇÀÇ run
¸Þ¼Òµå°¡ ¹ÌÈ®ÀÎÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì Çϸé(ÀÚ), ¿¹¿Ü´Â ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.
action
- ½ÇÇàµÇ´Â ¾×¼Çcontext
- ÁöÁ¤µÈ ¾×¼ÇÀÇ ½ÇÇàÀü¿¡, È£ÃâÃøÀÇ areaÀÇ Æ¯±Ç¿¡ Àû¿ëµÇ´Â Á¦ÇÑÀ» ³ªÅ¸³»´Â ¡¸¾×¼¼½º Á¦¾î ¹®¸Æ¡¹
run
¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â °ªdoPrivileged(PrivilegedAction)
,
doPrivileged(PrivilegedExceptionAction, AccessControlContext)
public static Object doPrivileged(PrivilegedExceptionAction action) throws PrivilegedActionException
PrivilegedExceptionAction
¸¦ ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ area·Î ¼ÒÀ¯Çϰí ÀÖ´Â ¡¸¸ðµç¡¹¾×¼¼½º±ÇÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.
¾×¼ÇÀÇ run
¸Þ¼Òµå°¡ ¡¸¹ÌÈ®ÀΡ¹ÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì Çϸé(ÀÚ), ¿¹¿Ü´Â ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.
action
- ½ÇÇàµÇ´Â ¾×¼Ç
run
¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â °ª
PrivilegedActionException
- ÁöÁ¤µÈ ¾×¼ÇÀÇ run
¸Þ¼Òµå°¡ ¡¸È®ÀÎÁ¦¡¹ÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì ÇßÀ» °æ¿ìdoPrivileged(PrivilegedAction)
,
doPrivileged(PrivilegedExceptionAction, AccessControlContext)
public static Object doPrivileged(PrivilegedExceptionAction action, AccessControlContext context) throws PrivilegedActionException
AccessControlContext
¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionAction
¸¦ ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ area·Î ¼ÒÀ¯Çϰí ÀÖ´Â ¾×¼¼½º±Ç°ú ÁöÁ¤µÈ AccessControlContext
¿¡ ÀÇÇØ ³ªÅ¸³»Áö´Â area·Î ¼ÒÀ¯Çϰí ÀÖ´Â ¾×¼¼½º±ÇÀÇ °øÅë ºÎºÐÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.
¾×¼ÇÀÇ run
¸Þ¼Òµå°¡ ¡¸¹ÌÈ®ÀΡ¹ÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì Çϸé(ÀÚ), ¿¹¿Ü´Â ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.
action
- ½ÇÇàµÇ´Â ¾×¼Çcontext
- ÁöÁ¤µÈ ¾×¼ÇÀÇ ½ÇÇàÀü¿¡, È£ÃâÃøÀÇ areaÀÇ Æ¯±Ç¿¡ Àû¿ëµÇ´Â Á¦ÇÑÀ» ³ªÅ¸³»´Â ¡¸¾×¼¼½º Á¦¾î ¹®¸Æ¡¹
run
¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â °ª
PrivilegedActionException
- ÁöÁ¤µÈ ¾×¼ÇÀÇ run
¸Þ¼Òµå°¡ ¡¸È®ÀÎÁ¦¡¹ÀÇ ¿¹¿Ü¸¦ ½½·Î¿ì ÇßÀ» °æ¿ìdoPrivileged(PrivilegedAction)
,
doPrivileged(PrivilegedExceptionAction, AccessControlContext)
public static AccessControlContext getContext()
AccessControlContext
public static void checkPermission(Permission perm) throws AccessControlException
perm
- ¿ä±¸ ¾×¼¼½º±Ç
AccessControlException
- ÇöÀçÀÇ ½ÃÅ¥·¯Æ¼ Æú¸®½Ã¿¡ ±Ù°ÅÇØ, ÁöÁ¤µÈ ¾×¼¼½º±ÇÀÌ Çã°¡µÇÁö ¾Ê´Â °æ¿ì
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.