1.1 ÁÖ¼®¹® ÄÚµù Áöħ
* ÁÖ¼®¹® ÀÔ·Â ¿ä·ÉÀº JavaDocÇ¥ÁØ¿¡ µû¸£°í ¿µ¹®À¸·Î ±âÀÔÇÑ´Ù.
1.1.1 ¹®¼È ÁÖ¼®¹®ÀÇ ½ÃÀÛ°ú ³¡
½ÃÀÛ : /**
Áß°£ : *
³¡ : */
1.1.2 ºñ¹®¼È ÁÖ¼®¹®
ÀÌ ºÎºÐÀÇ ÁÖ¼®Àº ÇѶóÀÎÀ» ³ÑÁö ¾ÊÀ¸¸é ÇØ´ç ¶óÀÎ ³¡¿¡ ÀÔ·ÂÇÑ´Ù.
½ÃÀÛ : //
1.1.3 ¹®¼È ÁÖ¼®¹®¿¡¼ »ç¿ëÇÏ´Â Tag
1. @see
¹®¼ÀÇ ´Ù¸¥ºÎºÐ°ú Link »ý¼º
ex) @see #getName
1. @param
method¿¡¼ »ç¿ëÇÏ´Â parameter ¼³¸í
ex) @param max ÀԷ¹ÞÀ» ¹®ÀÚÀÇ ÃÖ´ë ±æÀÌ
3. @return
methodÀÇ return value ¼³¸í
ex) @return ½ÇÁ¦ ÀԷ¹ÞÀº ¹®ÀÚÀÇ ±æÀÌ
4. @exception
method¿¡¼ ¹ß»ýÇÏ´Â exception ¼³¸í
ex) @exception IOException ÀÔ·Â ½ºÆ®¸² ¿À·ù
5. @author
codeÀÇ ÀÛ¼ºÀÚ ¼³¸í
ex) @author Javapattern.info È«±æµ¿
6. @version
ÀÛ¼ºÇÑ codeÀÇ version ºÎ¿©
ex) @version 1.0.0 2003.06.25
7. @since
method°¡ Ãß°¡µÈ ½ÃÁ¡ÀÇ versionÀ» Ç¥½Ã
ex) @since 1.1.5 2003.08.30
1. 2 ÁÖ¼®¹® »ç¿ë¿¹Á¦
/*
* @(#)Attr.java 1.1 03/03/26
*
* Copyright (c) 2003 Javapattern.info. All Rights Reserved.
*
* ¼öÁ¤³»¿ª :
* list ¸Þ½îµå Ãß°¡ - 2003.04.03, È«±æµ¿
* toString ¸Þ½îµå ¼öÁ¤ - 2003.05.10, ÀÓ²©Á¤
*/
package com.javapattern.ejb.masterGroup;
/**
* Attr ¿ÀºêÁ§Æ®´Â ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀ» name/value ½ÖÀ¸·Î¼
* ¼³Á¤ÇÑ´Ù. ÀÌ ¶§ nameÀº String ÀÌ°í, the value´Â ÀÓÀÇÀÇ
* ¿ÀºêÁ§Æ®ÀÌ´Ù.
* @author È«±æµ¿
* @version 1.1
*/
public class Attr {
Object o;
/**
* ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀ» setÇÑ´Ù.
* @param newValue ¾ÖÆ®¸®ºäÆ®ÀÇ »õ·Î¿î °ª
* @return ¾ÖÆ®¸®ºäÆ®ÀÇ ¿ø·¡ °ª
* @see #getValue()
*/
public Object setValue(Object newValue) {
Object o = this.o;
this.o = newValue;
return o;
}
/**
* ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀ» getÇÑ´Ù.
* @return ¾ÖÆ®¸®ºäÆ®ÀÇ °ª
* @see #setValue()
*/
public Object getValue() {
return o;
}
/**
* ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀ» StringÀ¸·Î º¯È¯ÇÏ¿© ¹ÝȯÇÑ´Ù.
* @return StringÀ¸·Î º¯È¯µÈ °ª.
*/
public String toString() {
return "Attr value = " + o.toString();
}
}
1.3 Coding Áöħ
1.3.1 ȯ°æ Áöħ
- JDK´Â 1.4.1_02¸¦ ±âÁØÇÑ´Ù.
- HTMLÀº Indent¾øÀÌ ÀÔ·ÂÇÏ°í ÀÚ¼¼ÇÑ ÁöħÀº °³¹ßÀÚ »çÀÌÆ®¸¦ ÂüÁ¶ÇÑ´Ù.
- ¼Ò½º ÀÔ·Â ½Ã Indent»çÀÌÁî´Â 4·Î ¸ÂÃá´Ù.
- ¼¹ö¿¡¼ ½©Àº Äܽ©À» »ç¿ëÇÑ´Ù.
1.3.2 EJB ÄÚµù Áöħ
- ¼¼¼ÇºóÀº stateless ºóÀ¸·Î ¸¸µç´Ù.
- Exception 󸮴 ÀÚüÀûÀ¸·Î ó¸®ÇÏÁö ¾Ê°í È£ÃâÇÑ °÷À¸·Î ThrowÇÑ´Ù.
- StatelessºóÀº ´Ù¼öÀÇ »ç¿ëÀÚ°¡ °øÀ¯ÇϹǷΠ±â´ÉÇÏ¸é ¸â¹öº¯¼ö´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù.
- ¿£Æ¼Æ¼ºóÀº container managedºóÀ¸·Î ¸¸µç´Ù.
- ¿£Æ¼Æ¼ºó¾ÈÀÇ ¸â¹öº¯¼ö´Â DB table field¿Í °°Àº À̸§À¸·Î ÇÑ´Ù.
- ±âº»ÀûÀ¸·Î read query´Â ¼¼¼Çºó¿¡¼ ó¸®ÇÏ°í, create, update, delete´Â ¿£Æ¼Æ¼ºó¿¡¼ ó¸®Çϴµ¥
󸮸¦ ÇؾßÇÒ ·¹Äڵ尡 10°³ ÀÌ»óÀ϶§´Â performanceÇâ»óÀ» À§ÇØ ¼¼¼Çºó¿¡¼ ó¸®ÇÑ´Ù.
- Transaction Attribute´Â TX_REQUIRED ·Î ÇÑ´Ù.
- ÇÑ ¼¼¼Çºó¿¡¼ ¿©·¯ °³ÀÇ ¿£Æ¼Æ¼ºóÀ» »ç¿ëÇÏ¿© ¾÷µ¥ÀÌÆ®¸¦ ÇÒ °æ¿ì Æ®·£Àè¼ÇÀ» À¯Áö½ÃÄÑ ÁÖ·Á¸é
¹Ýµå½Ã °¢°¢ÀÇ ¿£Æ¼Æ¼ºó¿¡¼ ¹ß»ýÇÏ´Â ExceptionÀº Throw¸¦ ÇؾßÇÑ´Ù. EJB¿¡¼ ó¸®ÇÒ °æ¿ì¿¡´Â
LibraryÀÇ BaseExceptionÀ» »ç¿ëÇÏ¸é µÈ´Ù. (³»ºÎÀûÀ¸·Î jts Driver¸¦ »ç¿ëÇÔ)
- ÇÑ ¼¼¼Çºó¿¡¼ jdbc ¸¦ ÀÌ¿ëÇÏ¿© ¿©·¯ °³ÀÇ Å×ÀÌºí¿¡ ¾÷µ¥ÀÌÆ®¸¦ ÇÒ °æ¿ì³ª ÇÑ ¼¼¼Çºó¿¡¼
¿©·¯ °³ÀÇ ´Ù¸¥ ¼¼¼ÇºóÀ» È£ÃâÇÏ¿© ¿©·¯ °³ÀÇ Å×ÀÌºí¿¡ ¾÷µ¥ÀÌÆ®¸¦ ÇÒ °æ¿ì
- weblogic pool Driver¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ÃÖÃÊÀÇ ¼¼¼Çºó¿¡¼ ¹Ýµå½Ã setAutoCommitÀ» false·Î ÇÏ°í
¸¶Áö¸· ºÎºÐ¿¡¼ commitÀ» ÇØ¾ß ÇÔ
- jts Driver¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ¹ß»ýÇÏ´Â ExceptionÀ» ThrowÇÏ¸é µÈ´Ù.
1.3.3 ÀÏ¹Ý ÄÚµù Áöħ
- ½ºÆ®¸µ °´Ã¼¸¦ º´ÇÕÇÏ´Â ÇàÀ§°¡ ¸¹Àº°æ¿ì + ¿¬»êÀÚ º¸´Ù´Â StringBuffer¸¦ »ç¿ëÇϴ°ÍÀÌ
¾µµ¥¾ø´Â °´Ã¼¸¦ ¸¸µå´Â °ÍÀ» ¹æÁöÇÒ ¼ö ÀÖ´Ù. ÀÚ¹Ù¿¡¼ °´Ã¼¸¦ »õ·Î »ý¼ºÇÏ´Â °ÍÀº °´Ã¼ »ý¼º
ÀÚü°¡ ºñ½Ñ ÀÛ¾÷À̶ó´Â Á¡, ±×¸®°í ÃßÈÄ °¡ºñÁö Ä÷ºÅÍ°¡ ´õ ¸¹Àº ÀÏÀ» ÇØ¾ß ÇÑ´Ù´Â Á¡¿¡¼
¼º´É¿¡ º°·Î ÁÁÁö ¾ÊÀº ¿µÇâÀ» ¹ÌÄ£´Ù. ´Ü¼øÇÑ ¹®ÀÚÀÇ Ãß°¡°¡ ºñÈ¿À²ÀûÀÎ ÀÌÀ¯´Â String °´Ã¼´Â
ºÒº¯(immutable)À̱⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î "a"¶ó´Â ¹®ÀÚ¿À» ¼öÁ¤Çؼ "ab"¶ó´Â ¹®ÀÚ¿·Î ¹Ù²Ü ¼ö´Â
¾ø°í "ab"¶ó´Â »õ·Î¿î °´Ã¼¸¦ »ý¼ºÇؼ "a"¸¦ ġȯÇؾ߸¸ ÇÑ´Ù. ÀÌ¿Í´Â ´Þ¸® StringBuffer °´Ã¼´Â
¹®ÀÚ¿À» º¯°æÇÒ ¼ö ÀÖ´Ù. ¹®ÀÚ¿À» °è¼ÓÀûÀ¸·Î Ãß°¡Çؾ߸¸ ÇÑ´Ù¸é StringBuffer¸¦ »ç¿ëÇÏ´Â °ÍÀÌ
ÈξÀ È¿À²ÀûÀÌ´Ù.
- StringBuffer¸¦ »ç¿ëÇÒ °æ¿ì Ãʱ⠿뷮À» ÁöÁ¤ÇÑ´Ù. ±âº» Å©±â°¡ 16¹ÙÀÌÆ®Àε¥ À̺¸´Ù Ä¿Áú
°æ¿ì ºÒ ÇÊ¿äÇÑ °´Ã¼°¡ »ý¼ºµÇ±â ¶§¹®¿¡ °¡´ÉÇϸé Ãʱâ¿ë·®À» ¿©À¯ÀÖ°Ô Àâ¾ÆÁØ´Ù.
- ½ºÆ®¸µÀ» ºñ±³ÇÒ ¶§ ´ë¼ÒºÐÀÚ ±¸ºÐÇÏ¿© ºñ±³ÇÏ´Â ÇàÀ§´Â °¡±ÞÀû ÇÇÇÑ´Ù.
- String Ŭ·¡½º¿¡¼ getBytes() ¸Þ¼Òµå´Â °è»ê·®ÀÌ °¡Àå ¸¹Àº ¸Þ¼ÒµåÀÌ´Ù. Äڵ忡¼ ´Ü Çѹø¸¸À̶óµµ
getBytes()¸¦ È£ÃâÇغ¸¸é ±×°ÍÀÌ ¼º´É¿¡ ¸¹Àº ¿µÇâÀ» ¹ÌÄ£´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
ÀÌ ¸Þ¼Òµå´Â char ¹è¿À» byte ¹è¿·Î ¹Ù²ãÁÖ´Â ¸Þ¼ÒµåÀε¥ °¢°¢ÀÇ À¯´ÏÄÚµå ij¸¯ÅÍ´Â Çϳª³ª µÑ
¶Ç´Â ½ÉÁö¾î 3°³ÀÇ ¹ÙÀÌÆ®·Î º¯È¯ÀÌ µÇ¸ç À̸¦ À§ÇÑ ÆÇ´Ü ÀÛ¾÷µµ µÚµû¶ó¾ß ÇϹǷΠºñ½Ñ ÀÛ¾÷ÀÏ ¼ö
¹Û¿¡ ¾ø´Ù. ±×·¯³ª ASCII ¹®ÀÚÀÇ °æ¿ì´Â ¹®Á¦°¡ °£´ÜÇØÁø´Ù. °¢°¢ÀÇ ASCII ¹®ÀÚ´Â 2byte À¯´ÏÄڵ忡¼
ÇÑ byte¸¦ À߶ó¹ö¸®°í ³²Àº 1byte¸¸À» º¯È¯ÇÏ¸é µÈ´Ù. ±×·¡¼ ASCII°°Àº °æ¿ì¿¡´Â charAt()À»
»ç¿ëÇϴ°ÍÀÌ ´õ ³ªÀº ¹æ¹ýÀÌ´Ù.
- StringTokenizer Ŭ·¡½º´Â ÀÚ¹Ù¿¡¼ ÀÖ¾î¼ ÇÁ·Î±×·¡¸Ó°¡ ¹®ÀÚ¿À» ÆĽÌÇÒ¶§ °£ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö
ÀÖ´Â °·ÂÇϸ鼵µ À¯¿¬ÇÑ Å¬·¡½ºÀÌ´Ù. ±×·¯³ª °·ÂÇÏ°í À¯¿¬ÇÏ´Ù´Â ¸»Àº °í¼º´ÉÀ» ¶æÇÏÁö´Â ¾Ê´Â´Ù.
°í¼º´ÉÀÇ ÄÚµå´Â ÁַΠƯ¼öÈµÈ ÄÚµåÀ̹ǷΠ´Ü¼øÈµÈ °¡Á¤¿¡ ÃÊÁ¡À» ¸ÂÃç ÀÛ¼ºµÈ´Ù.
ÀϹÝÀûÀÎ ¸ñÀûÀÇ Äڵ带 ÀÛ¼ºÇϱâ À§Çؼ´Â ¸¹Àº Á¦¹Ý »çÇ×µéÀ» °í·ÁÇØ¾ß ÇϹǷΠ°¡Á¤À» ³Ê¹« ¸¹ÀÌ
´Ü¼øȽÃų ¼ö°¡ ¾ø´Ù.
JDK´Â ¸¹Àº ÀÚ¹Ù ÀÀ¿ëÇÁ·Î±×·¥À» ¸¸Á·½ÃÄÑ¾ß ÇϹǷΠÀϹÝÀûÀÎ ÇüÅ·ΠÀÛ¼ºÀÌ µÈ´Ù.
±×·¡¼ ÀϹÝÈµÈ StringTokenizer¸¦ »ç¿ëÇϱ⠺¸´Ù´Â °¡´ÉÇÏ´Ù¸é indexOf()¿Í substring()À» »ç¿ëÇÏ´Â
°ÍÀÌ ¼º´ÉÀ» Çâ»ó ½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀÌ´Ù.
- ÇÑ ¹®ÀÚ¸¦ üũÇϱâ À§Çؼ startsWith()¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ÀÌ °æ¿ì¿¡´Â charAt()ÀÌ À¯¿ëÇÏ´Ù.
- µð¹ö±ë¿ëÀ¸·Î System.out.println()À» »ç¿ëÇÑ °æ¿ì´Â ¿î¿µ Áß¿¡´Â remarkÇϴ°ÍÀÌ ÃÖ»óÀÌ´Ù.
ƯÁ¤ °øÅëŬ·¡½º¿¡ trace()¸¦ ¸¸µé°í ¸ðµç Ŭ·¡½º°¡ ÀÌ °øÅëŬ·¡½ºÀÇ trace()¸¦ »ç¿ëÇÏ´Â °æ¿ì,
´ëºÎºÐ ¿î¿µÀÚ°¡ ÀÌ °øÅëŬ·¡½ºÀÇ trace¸ðµå¸¦ offÇϱ⸸ Çϴµ¥ ½ÇÁ¦ Disk I/O¸¦ ¾È ÇÑ´Ù ÇÏ´õ¶óµµ
ÀÌ ¸Þ¼Òµå¸¦ ºÎ¸£´Â ÇàÀ§ ÀÚü¸¸À¸·Îµµ ¾µµ¥ ¾ø´Â °´Ã¼°¡ ¸¸µé¾îÁö±â ¶§¹®¿¡ ½Ã½ºÅÛ Àüü¿¡
¿µÇâÀ» ¹ÌÄ£´Ù.
- º¤Å͸¦ ÀÚ·á ±¸Á¶·Î »ç¿ëÇÒ °æ¿ì º¤ÅÍÀÇ Áß°£ºÎºÐ¿¡ Ãß°¡³ª »èÁ¦°¡ ºó¹øÈ÷ ÀϾٸé
´Ù¸¥ ÀڷᱸÁ¶¸¦ °í·ÁÇÑ´Ù. (Linked List, ArrayList etc)
- º¤Å͸¦ »ç¿ëÇÒ °æ¿ì »ç¿ëÇÒ Å©±â¸¦ ¾î´À Á¤µµ ¿¹ÃøÇÒ ¼ö ÀÖ´Ù¸é Ãʱ⠿뷮À» ÁöÁ¤Çϴ°ÍÀÌ
¾µµ¥ ¾ø´Â °´Ã¼¸¦ ¸¸µéÁö ¾Ê´Â ¹æ¹ýÀÌ´Ù. º¤ÅÍÀÇ ¿¤¸®¸ÕÆ®´Â ³»ºÎÀûÀ¸·Î ¹è¿¿¡ ÀúÀåµÇ¾î ÀÖ´Ù.
±âº»ÀûÀ¸·Î °´Ã¼°¡ »ý¼ºµÇ¸é ¹è¿ÀÇ Å©±â´Â 10ÀÌ µÈ´Ù. ¸¸¾à¿¡ ¿¤¸®¸ÕÆ®°¡ ´Ã¾î³ª¼ ¿¤¸®¸ÕÆ®ÀÇ
°¹¼ö°¡ 10À» ³Ñ¾î°¡¸é µðÆúÆ®·Î 2¹èÀÇ Å©±â°¡ µÇ´Â ¹è¿À» »õ·Î »ý¼ºÇÏ°í ÀÌÀüÀÇ °ªµéÀ» »õ·Î¿î
¹è¿¿¡ º¹»çÇÑ ÈÄ »õ·Î¿î ¹è¿À» »ç¿ëÇÑ´Ù. ÀÌÀüÀÇ ¹è¿Àº °¡ºñÁö Ä÷ºÅÍÀÇ ´ë»óÀÌ µÇ¸é¼ ¹ö·ÁÁø´Ù.
ÀÌ·¸µí, º¤ÅÍ Å©±â¸¦ È®Àå ½ÃÅ°´Â °ÍÀº ¸Å¿ì ºñ½Ñ ÀÛ¾÷ÀÌ´Ù.
- º¤ÅÍÀÇ ¿¤¸®¸ÕÆ®¸¦ ¾ò±âÀ§ÇØ ¹Ýº¹ÇÏ´Â °æ¿ì EnumerationÀ» »ç¿ë ÇÏ´Â°Í º¸´Ù´Â
elementAt( index )À» »ç¿ëÇÏ´Â °ÍÀÌ ´õ ºü¸£´Ù
- Java2 ¿¡¼´Â Vector¿¡¼ µ¿±âÈ°¡ ºüÁø ArrayList¶ó´Â Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù.
±×·¡¼ ¸¸¾à¿¡ ´ÜÀÏ ¾²·¹µå ȯ°æÀ̶ó¸é Vector ´ë½Å ArrayList¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ ÁÁÀº ¹æ¾ÈÀÌ´Ù.
- º¤ÅÍ Å¬·¡½º°¡ °¡Áö°í ÀÖ´Â ¶Ç´Ù¸¥ ¹®Á¦Á¡Àº ´ÙÀ½ÀÇ ¸î°¡Áö ¸Þ¼Òµå¸¦ ¼öÇàÇϱâ À§Çؼ
¿¤¸®¸ÕÆ®¸¦ óÀ½ºÎÅÍ ³¡±îÁö ´Ù ÈȾî¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù.
- contains()
- indexOf()
- lastIndexOf()
- removeElement()
- remove()
- removeAllElements()
- clear()
ÀÌ·¯ÇÑ °ÍµéÀº ´Ù ºñ½Ñ ÀÛ¾÷À̸ç, ±× ºñ¿ëÀº VectorÀÇ size¿¡ ºñ·ÊÇÒ °ÍÀÌ´Ù.
- Çؽ¬Å×ÀÌºí ¹× Hash¿ë °´Ã¼¿¡¼ ¹öŶÀÇ ¸µÅ©µå ¸®½ºÆ®ÀÇ ±æÀÌ´Â °¡´ÉÇÑ ÂªÀ»¼ö·Ï ÁÁ´Ù.
±×·¯±â À§Çؼ´Â °´Ã¼°¡ »ðÀԵɶ§ µ¿ÀÏÇÑ ¹öŶÀ¸·Î »ðÀԵǴ ÀÏÀº °¡´ÉÇÏ¸é ¾ø¾î¾ß ÇÑ´Ù.
ÀÌ´Â °ð Å°ÀÇ hashCode() °ªÀÌ °¡´ÉÇÏ¸é ³Ð°Ô ºÐÆ÷µÇ´Â °ÍÀÌ ÁÁ´Ù´Â ¸»ÀÌ´Ù
Çؽ¬Å×ÀÌºí¿¡¼ ¸µÅ©µå ¸®½ºÆ®ÀÇ ±æÀ̸¦ °áÁ¤ÇÏ´Â ¶ÇÇϳªÀÇ ¿äÀÎÀº Ãʱ⠿뷮(capacity)°ú
ºÎÇÏÀ²(load factor)ÀÌ´Ù. HashtableÀÇ Ãʱ⠿뷮Àº °ð ¹öŶÀÇ ¼öÀÌ´Ù. ¶ÇÇÑ ºÎÇÏÀ²Àº ÇöÀçÀÇ
¹öŶÀÌ ¾ó¸¶¸¸Å áÀ»¶§ ¹öŶÀÇ ¼ö¸¦ µÎ¹è·Î ´Ã¸±°ÍÀΰ¡(rehashing)ÇÏ´Â °ÍÀÌ´Ù.
ÀÌ ÀÛ¾÷Àº ºñ½Ñ ÀÛ¾÷ÀÌ´Ù. ±×·¡¼ °¡´ÉÇϸé Ãʱ⠿뷮À» 1.33¹è·Î Àâ¾Æ ÁÖ´Â °ÍÀÌ
rehashingÇÏ´Â °ÍÀ» ¸·°í ¼º´ÉÀ» Çâ»ó ½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀÌ´Ù.
- Áö¼ÓÀûÀ¸·Î º¯Çϱä Ç쵂 »ó´ëÀûÀ¸·Î ±ä ¼ö¸íÀ» °¡Áö´Â °ªµé¿¡ ´ëÇؼ´Â ij½Ì Àü·«À»
¼¼¿ì´Â °ÍÀÌ ÀûÀýÇÏ´Ù.
- System.currentTimeMillis()´Â ¸Å¿ì ºñ½Î´Ù. ÀÚ¹Ù´Â system clock¿¡ ÀÇÁ¸Çϱ⠶§¹®¿¡ À̸¦
À§Çؼ´Â ¹Ýµå½Ã native callÀÌ ÇÊ¿äÇÏ´Ù. java¿¡¼ Java Native Interface(JNI)¸¦ °ÅÃÄ°¡´Â °ÍÀº ºñ¿ëÀÌ
µé±â¿¡ System.currentTimeMillis()¿¡ µå´Â ºñ¿ëÀ» °¡º±°Ô º¸¾Æ¼´Â ¾ÈµÈ´Ù.
- Date Ŭ·¡½º´Â ·©±ÍÁö¿¡ »ó°ü¾øÀÌ Ã³¸®Çϱ⿡ ¸Å¿ì ºñ½Ñ ÀÚ¿øÀÌ´Ù. ÇöÀç ½Ã°£À» ¹°¾îº»´Ù¸é
1970³â 1¿ù 1ÀÏ ÀÌÈÄ ÇöÀç ½Ã°£±îÁö¸¦ ÃÊ·Î ¹Ù²Û ´ÙÀ½ ¸Å¿ì º¹ÀâÇÑ Ã³¸® °úÁ¤À» °ÅÃļ
'Fri Jul 02 16:38:41 PDT 1998'°ú °°ÀÌ º¯È¯ÇØÁÖ¾î¾ß ÇÑ´Ù. °Ô´Ù°¡ ÀÚ¹Ù¿¡¼´Â locale ±îÁöµµ ¹Ý¿µÀ»
ÇÏ´Ï ÇöÀç ½Ã°£ Çϳª¸¦ ¾ò±â À§ÇØ ¾ó¸¶³ª ¸¹Àº ºñ¿ëÀ» ÁöºÒÇØ¾ß ÇÏ´ÂÁö ÁüÀÛÇÒ ¼ö ÀÖ´Ù.
- ·çÇÁ³»¿¡¼ º¯Ä¡ ¾Ê´Â °ªÀ» ¹Ì¸® °è»êÇØ ³õ´Â °Íµµ °íÀüÀûÀÎ ÃÖÀûÈ ¹æ¹ýÀÇ ÇϳªÀÌ´Ù.
ÀÌ´Â ·çÇÁ°¡ ½ÇÇàµÇ´Â µ¿¾È °ªÀÌ º¯ÇÏÁö ¾ÊÀ¸¹Ç·Î static value ¹üÁÖ¿¡ µé¾î°£´Ù
- ¹öÆÛ¸µÀº ¹ÙÀÌÆ®´ç ¿À¹öÇìµå¸¦ ÃÖ¼ÒÈ ÇÒ ¼ö ÀÖ´Â ±â¹ýÀÌ´Ù. µ¥ÀÌÅ͸¦ º¸³»±â À§Çؼ
ÀÚ¹Ù¿¡¼´Â OS ÀÚüÀÇ ÇÔ¼ö¸¦ ÄÝÇØ¾ß Çϴµ¥, OS ÇÔ¼ö ÀÚü´Â Çѹø ÄÝÇϴµ¥ µå´Â ºñ¿ëÀÌ
ÇÑ ¹ÙÀÌÆ®¸¦ º¸³»³ª ¿©·¯ ¹ÙÀÌÆ®¸¦ º¸³»³ª ºñ½ÁÇÏ´Ù(±× ºñ¿ë ¶ÇÇÑ ¸¸¸¸Ä¡µµ ¾Ê´Ù).
±×·¯¹Ç·Î Çѹø¿¡ ÇÑ ¹ÙÀÌÆ®¾¿¸¸ º¸³½´Ù¸é ¿©·¯ ¹ÙÀÌÆ®¸¦ ¹¾î¼ Çѹø¿¡ º¸³»´Â °Íº¸´Ù
¾öû³ª°Ô ºñ½Ñ ´ñ°¡¸¦ Ä¡·¯¾ß µÇ´Â °ÍÀº ÀÚ¸íÇÑ »ç½ÇÀÌ´Ù. ÀÚ¹Ù¿¡¼ I/O streamÀ» ÀÌ¿ëÇؼ
¹öÆÛ¸µÀ» ÇÏ´Â °ÍÀº ¾ÆÁÖ ½±´Ù. ´ÜÁö ¿ø·¡ÀÇ output streamÀ» buffered streamÀ¸·Î °¨½Î±â¸¸ ÇÏ¸é µÈ´Ù.
- ¹öÆÛ¿¡ ´ã°Ü ÀÖ´Â µ¥ÀÌÅ͸¦ ³»º¸³»´Â flushingÀº ¹öÆÛ°¡ ´Ù Â÷¸é ÀÚµ¿À¸·Î ³»º¸³»´Â
½ÄÀ¸·Î¸¸Àº »ç¿ëÇÒ ¼ö ¾ø´Ù. ¿¹¸¦ µé¾î ÀÏ´Ü Å¬¶óÀ̾ðÆ® ÂÊ¿¡¼ ¿äû ¸í·ÉÀ» º¸³½´ÙÀ½
¼¹öÂÊÀ¸·ÎºÎÅÍ ¾î¶² µ¥ÀÌÅ͸¦ ¹Þ´Â´Ù°í ÇßÀ» ¶§ ¿äûÀÌ ¹öÆÛ¸µÀÌ µÇ¾îÀÖ´Ù¸é ¼¹öÂÊ¿¡
Àü´ÞÀÌ µÇÁú ¾ÊÀ»Å×´Ï ±×·¯ÇÑ °æ¿ì´Â ¹öÆÛ°¡ ´Ù Â÷Áö ¾Ê¾Æµµ Áï°¢ µ¥ÀÌÅ͸¦ ³»º¸³»¾ß ÇÑ´Ù.
¹Ý¸é¿¡ ±× ÈÄ·Î À̾îÁö´Â ÀÏ·ÃÀÇ µ¥ÀÌÅÍ°¡ ÀÖ´Ù¸é ¹öÆÛ°¡ Âû ¶§±îÁö ±â´Ù·È´Ù ÇѲ¨¹ø¿¡
º¸³»ÁÖ´Â°Ô È¿À²ÀûÀÌ´Ù. ÀÌ·¸µí Ç÷¯½³Àº ±× ½ÃÁ¡ÀÌ ³ª¸§´ë·Î Áß¿äÇϹǷΠ¼öµ¿À¸·Î ÀûÀýÈ÷
Á¶ÀýÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ±×·¯³ª ºñÀûÀýÇÑ ½ÃÁ¡¿¡ ÀÚÁÖ Ç÷¯½³À» ÇÏ¸é ¼º´ÉÀº ¶³¾îÁø´Ù.
- Output streamÀº ´ë·« À¯´ÏÄÚµå ¹®ÀÚ¿À» ´Ù·ç´Â writer¿Í ¹ÙÀÌÆ® ¹è¿À» ´Ù·ç´Â °ÍÀ¸·Î
³ª´ ¼ö ÀÖ´Ù. À¯´ÏÄÚµå ¹®ÀÚ¿À» writer¸¦ ÀÌ¿ëÇÏ¿© ³»º¸³¾ ¶§ ±× ³¡´ÜÀº ¾Æ¸¶
socketÀ̳ª fileÂëÀÌ µÉ °ÍÀÌ´Ù.
±×·±µ¥ ¿©±â¼ÀÇ ¹®Á¦Á¡Àº soketÀ̳ª fileÀº À¯´ÏÄڵ尡 ¾Æ´Ï¶ó ´ÜÁö ¹ÙÀÌÆ®·Î¸¸ ó¸® ÇÒ ¼ö
Àִٴµ¥ ÀÖ´Ù. ±×·¯¹Ç·Î ¾îµò°¡¿¡¼´Â À¯´ÏÄڵ带 ¹ÙÀÌÆ®·Î º¯È¯À» ÇØÁÖ¾î¾ß Çϴµ¥
ÀÌ´Â ¸Å¿ì ºñ½Ñ ÀÛ¾÷ÀÌ´Ù.
|