ÄÚµå °ËÅä - ¸±¸®½º Á¤º¸


1.0 ¾Ë·ÁÁø ¹®Á¦Á¡
   1.1 ƯÁ¤ ÆÐŰÁöÀÇ ¼Ò½º°¡ °ËÅäµÇÁö ¾ÊÀ½
   1.2 Çà ¹øÈ£°¡ Ç×»ó Ç¥½ÃµÇÁö´Â ¾ÊÀ½
   1.3 JSDK ¶Ç´Â J2EE Ŭ·¡½ºÀÇ ³»ºÎ µ¥ÀÌÅÍ º¯¼ö´Â µ¥ÀÌÅÍ ÇÃ·Î¿ì °æ·Î¿¡ Ç¥½ÃµÉ ¼ö ¾øÀ½
   1.4 µðÀÚÀÎ ÇÁ¸°½ÃÆÞ/º¹Àâµµ ±ÔÄ¢¿¡¼­ ±íÀ̸¦ À½¼ö °ªÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖÀ½
   1.5 ¸Å°³º¯¼ö¿¡ US ASCII°¡ ¾Æ´Ñ ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ±ÔÄ¢À» ÀÛ¼ºÇÒ °æ¿ì ÀÎÄÚµù ¹®Á¦ ¹ß»ý
   1.6 ±¸Á¶ ºÐ¼® ±ÔÄ¢ÀÇ ÁøÇàÀÌ ÀûÀýÇÏ°Ô º¸°íµÇÁö ¾ÊÀ½
   1.7 ±âº» º¸±â¿¡¼­ ½ÃÀÛ/ÁßÁö ´ÜÃß°¡ °ãħ
   1.8 ±ÔÄ¢ "Avoid using java.lang.String.compareTo () to compare locale-sensitive strings"¿¡ ´ëÇÑ ºü¸¥ ¼öÁ¤»çÇ׿¡ ¿Ã¹Ù¸£Áö ¾ÊÀº ¼Ö·ç¼ÇÀÌ Á¦½ÃµÊ
   1.9 J2EE ÅÛÇø®Æ® ±ÔÄ¢ÀÇ ÀϺΠÀνºÅϽº »ý¼º¿¡ ¹®Á¦°¡ ÀÖÀ½: Always call [method A] after [method B]
   1.10 J2EE ÅÛÇø®Æ® ±ÔÄ¢¿¡ ¹®Á¦ ¹ß»ý °¡´É¼ºÀÌ ÀÖÀ½: Always call [methodA] after [methodB]
   1.11 »ç¿ëÀÚ Á¤ÀÇµÈ Avoid Defining Method ±ÔÄ¢¿¡¼­ÀÇ False È®½Ç¼º
   1.12 ¸Þ¼Òµå À̸§ ÀÔ·Â ½Ã ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ÅÛÇø®Æ®°¡ µ¿ÀÛÇÏÁö ¾ÊÀ½
   1.13 ¼­¹ö µ¥ÀÌÅÍ ±¸¼º ½Ã Áß¿ä ¿À·ù âÀÌ Ç¥½ÃµÊ
   1.14 Linux OS¿¡¼­ÀÇ È¯°æ ¼³Á¤ ÆäÀÌÁö ¹®Á¦

1.0 ¾Ë·ÁÁø ¹®Á¦Á¡

1.1 ƯÁ¤ ÆÐŰÁöÀÇ ¼Ò½º°¡ °ËÅäµÇÁö ¾ÊÀ½

´ÙÀ½ ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ¼Ò½º´Â J2EE ¸ð¹ü »ç·Ê ±ÔÄ¢ Áß ÀϺο¡¼­ °ËÅäµÇÁö ¾Ê½À´Ï´Ù.
1. com.ibm
2. COM.ibm
3. sun
4. sunw
5. java
6. javax
7. org.apache
8. com.sun
9. org.omg
10. org.ietf
11. org.w3c
12. org.xml

1.2 Çà ¹øÈ£°¡ Ç×»ó Ç¥½ÃµÇÁö´Â ¾ÊÀ½

ÄÚµå °ËÅä º¸±â¿¡¼­, J2EE ¸ð¹ü »ç·Ê ±ÔÄ¢À¸·Î ¹ß°ßµÈ °á°ú Áß ÀϺο¡ Çà ¹øÈ£°¡ Ç×»ó Ç¥½ÃµÇÁö´Â ¾Ê½À´Ï´Ù. ¹ß°ß °á°ú¸¦ µÎ ¹ø Ŭ¸¯ÇÏ¸é ¿Ã¹Ù¸¥ Çà ¹øÈ£°¡ Ç¥½ÃµË´Ï´Ù.

1.3 JSDK ¶Ç´Â J2EE Ŭ·¡½ºÀÇ ³»ºÎ µ¥ÀÌÅÍ º¯¼ö´Â µ¥ÀÌÅÍ ÇÃ·Î¿ì °æ·Î¿¡ Ç¥½ÃµÉ ¼ö ¾øÀ½

µ¥ÀÌÅÍ ÇÃ·Î¿ì °æ·Î´Â ±ÔÄ¢ ¹ß°ß °á°ú·Î °­Á¶Ç¥½ÃµÈ ¹®Á¦¸¦ ¾ß±âÇÏ´Â µ¥ÀÌÅÍ º¯°æ»çÇ× Á¾¼Ó¼º È÷½ºÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ·¯ÇÑ µ¥ÀÌÅÍ ÇÃ·Î¿ì °æ·Î´Â °æ·Î ÅÇ¿¡ Ç¥½ÃµË´Ï´Ù. °£È¤ µ¥ÀÌÅÍ ÇÃ·Î¿ì °æ·Î°¡ JSDK ¶Ç´Â J2EE Ŭ·¡½º¿¡ ÀÖ´Â ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶¸¦ Ç¥½ÃÇÒ ¶§µµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, java.lang.Vector À¯ÇüÀÇ º¯¼ö°¡ ¼öÁ¤µÇ¾ú´Ù°í Ç¥½ÃÇÏ´Â ´ë½Å java.lang.Object[]variableÀÌ ¼öÁ¤µÇ¾ú´Ù°í Ç¥½ÃÇÏ´Â ¸Þ½ÃÁö¸¦ º¸°Ô µË´Ï´Ù. ÀÌ´Â java.lang.Vector ±¸ÇöÀÇ ³»ºÎ ÇʵåÀ̸ç, ÅÇ¿¡ ÀÌ·± °³ÀÎ Á¤º¸°¡ Ç¥½ÃµÇ¸é È¥µ¿½º·¯¿ï ¼ö ÀÖ½À´Ï´Ù.

1.4 µðÀÚÀÎ ÇÁ¸°½ÃÆÞ/º¹Àâµµ ±ÔÄ¢¿¡¼­ ±íÀ̸¦ À½¼ö °ªÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖÀ½

µðÀÚÀÎ ÇÁ¸°½ÃÆÞ ±ÔÄ¢ Ä«Å×°í¸®¿¡¼­ º¹À⼺ ±ÔÄ¢ ±íÀ̸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ±ÔÄ¢ "Avoid nesting more than 1 class(es)"¸¦ "Avoid nesting more than 3 class(es)"·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±ÔÄ¢ÀÌ ¿Ã¹Ù¸£°Ô µ¿ÀÛÇÏ·Á¸é ±íÀÌ¿¡ ¾ç¼ö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª º¹À⼺ ±ÔÄ¢Àº ÇöÀç ±íÀ̰¡ ¾ç¼ö·Î ¼³Á¤µÇ´ÂÁö È®ÀÎÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¹®Á¦¸¦ ¹æÁöÇÏ·Á¸é 0À̳ª À½¼ö¿Í °°Àº À¯È¿ÇÏÁö ¾ÊÀº ¼ýÀÚ¸¦ ÀÔ·ÂÇÏÁö ¸¶½Ê½Ã¿À.

1.5 ¸Å°³º¯¼ö¿¡ US ASCII°¡ ¾Æ´Ñ ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ±ÔÄ¢À» ÀÛ¼ºÇÒ °æ¿ì ÀÎÄÚµù ¹®Á¦ ¹ß»ý

¸Å°³º¯¼ö¿¡ US ASCII°¡ ¾Æ´Ñ ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ÅÛÇø®Æ®·ÎºÎÅÍ ±ÔÄ¢À» ÀÛ¼ºÇÒ °æ¿ì ÀÎÄÚµù ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ·ÎÄà ¹®ÀÚ¸¦ »ç¿ëÇÏ´Â À¯Çü ¶Ç´Â ¸Þ¼Òµå¸¦ ¼±ÅÃÇÒ °æ¿ì¿¡ ÀÌ·± ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ÀÌ·± ÀÎÄÚµù ¹®Á¦·Î, ÇØ´ç Ư¼º°ú US ASCII°¡ ¾Æ´Ñ ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ÀÛ¼ºÇÑ ±ÔÄ¢À» ½ÇÇàÇÒ °æ¿ì ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.

1.6 ±¸Á¶ ºÐ¼® ±ÔÄ¢ÀÇ ÁøÇàÀÌ ÀûÀýÇÏ°Ô º¸°íµÇÁö ¾ÊÀ½

±¸Á¶ ºÐ¼® ±ÔÄ¢ÀÇ ÄÚµå °ËÅä ÁøÇàÀÌ ÀûÀýÇÏ°Ô º¸°íµÇÁö ¾Ê½À´Ï´Ù. (Áï, ÁøÇà ´ëÈ­ »óÀÚ°¡ Ç×»ó 100% ÁøÇàÀ¸·Î º¸°íµË´Ï´Ù.) ÄÚµå °ËÅä°¡ ¿Ï·áµÇ±â¸¦ ±â´Ù·Á¾ß ÇÕ´Ï´Ù.

1.7 ±âº» º¸±â¿¡¼­ ½ÃÀÛ/ÁßÁö ´ÜÃß°¡ °ãħ

°£È¤ ÄÚµå °ËÅ並 ½ÃÀÛÇÒ ¶§ ½ÃÀÛ/ÁßÁö ´ÜÃß°¡ ¼­·Î °ãÄ£ ¾ÆÀÌÄÜÀ¸·Î Ç¥½ÃµË´Ï´Ù.

1.8 ±ÔÄ¢ "Avoid using java.lang.String.compareTo () to compare locale-sensitive strings"¿¡ ´ëÇÑ ºü¸¥ ¼öÁ¤¿¡ ¿Ã¹Ù¸£Áö ¾ÊÀº ¼Ö·ç¼ÇÀÌ Á¦½ÃµÊ

"Avoid using java.langString.compareTo () to compare locale-sensitive strings" ±ÔÄ¢¿¡ ´ëÇÑ ºü¸¥ ¼öÁ¤»çÇ×ÀÌ ±ÔÄ¢ÀÇ ´ë»óÀÎ ¹®Á¦¸¦ ÇØ°áÇÏ´Â µÎ °¡Áö ¼Ö·ç¼ÇÀ» Á¦¾ÈÇÕ´Ï´Ù. <Use com.ibm.icu.text.Collator »ç¿ë>À» Á¦¾ÈÇÏ´Â ¼Ö·ç¼ÇÀº ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù. ¼Ö·ç¼ÇÀº <Use java.text.Collator>À̾î¾ß ÇÕ´Ï´Ù.

1.9 J2EE ÅÛÇø®Æ® ±ÔÄ¢ÀÇ ÀϺΠÀνºÅϽº »ý¼º¿¡ ¹®Á¦°¡ ÀÖÀ½: Always call [method A] after [method B]

J2EE ±ÔÄ¢ ÅÛÇø®Æ® "Always call [methodA] after [methodB]"¸¦ »ç¿ëÇÏ¿© »õ ±ÔÄ¢À» ÀÛ¼ºÇÒ ¶§ ÀÛ¾÷°ø°£¿¡¼­ ±âº»ÀûÀ¸·Î [methodB]°¡ »ý¼ºÀÚÀ̰í ÄÚµå °ËÅä ½Ã ±ÔÄ¢ÀÌ ½ÇÇàµÇ¸é, ±ÔÄ¢ ¹ß°ß °á°ú°¡ »ý¼ºµÇÁö ¾Ê½À´Ï´Ù.

1.10 J2EE ÅÛÇø®Æ® ±ÔÄ¢¿¡ ¹®Á¦ ¹ß»ý °¡´É¼ºÀÌ ÀÖÀ½: Always call [methodA] after [methodB]

J2EE ¸ð¹ü »ç·Ê ÅÛÇø®Æ® ±ÔÄ¢ "Always call [methodA] after [methodB]"·Î ƯÁ¤ ¿ÀºêÁ§Æ® ÀνºÅϽº¿¡ ´ëÇØ »õ ±ÔÄ¢À» ÀÛ¼ºÇÒ °æ¿ì, ±ÔÄ¢À» Á¤ÀÇÇÏ´Â ´ÙÀ½ÀÇ Æ¯Á¤ °æ¿ì¿¡¼­ ¿Ã¹Ù¸£Áö ¾ÊÀº ±ÔÄ¢ ¹ß°ß °á°ú°¡ »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. "Always call [methodA] after [methodB]" ÆÐÅÏ¿¡¼­ ¸Þ¼Òµå¸¦ ¼±ÅÃÇϸç, J2EE Äڵ忡¼­ ¸Þ¼ÒµåÀÇ ¿ÀºêÁ§Æ® ÀνºÅϽº°¡ ºÐ¼®ÇÒ ServletÀÇ ¶óÀÌÇÁ»çÀÌŬº¸´Ù Å« ¶óÀÌÇÁ»çÀÌŬÀ» °¡Áö´Â °æ¿ì, ±ÔÄ¢ ¹ß°ß °á°ú°¡ ¿Ã¹Ù¸£Áö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ Äڵ带 °í·ÁÇØ º¸½Ê½Ã¿À.

public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

// ÀϺΠÄÚµå..... final ServletOutputStream outStream = response.getOutputStream(); //... ÀÌÈÄ·Î response.flushBuffer¿¡ ´ëÇÑ È£ÃâÀÌ ¾ø½À´Ï´Ù. }

ÀÌ ¶§ »ç¿ëÀÚ°¡ ÀÛ¼ºÇÏ´Â ±ÔÄ¢Àº "Always call ServletResponse.flushBuffer() after ServletResponse.getOutputStream()"ÀÔ´Ï´Ù. ÀÀ´ä ¿ÀºêÁ§Æ®°¡ Servlet ÀÚüº¸´Ù Å« ¶óÀÌÇÁ»çÀÌŬÀ» °¡Áö´Â ÀνºÅϽºÀ̹ǷΠÄÚµå °ËÅä ºÐ¼®¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç Servlet ¹®Á¦ÀÇ ´ë»óÀÌ µÇ´Â ´Ù¸¥ Servlet¿¡¼­ ÀϺΠ¹ß°ß °á°ú¸¦ º¼ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Æ¯Á¤ ¿ÀºêÁ§Æ® ÀνºÅϽº¿¡ ´ëÇØ ±ÔÄ¢À» ÀÛ¼ºÇÏ¸é ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù.

1.11 »ç¿ëÀÚ Á¤ÀÇµÈ Avoid Defining Method ±ÔÄ¢¿¡¼­ÀÇ È®½Ç¼º ¿À·ù

±ÔÄ¢ ÅÛÇø®Æ® "Avoid Defining Method"¸¦ »ç¿ëÇÏ¿© »õ ±ÔÄ¢À» ÀÛ¼ºÇÏ°í ¿ÏÀüÇÑ À̸§À¸·Î ¸Þ¼Òµå¸¦ ¼±ÅÃÇÒ °æ¿ì, ÄÚµå °ËÅä ½Ã ¸Þ¼Òµå ¹× ¸Å°³º¯¼öÀÇ À̸§¸¸ »ç¿ëµË´Ï´Ù. ±ÔÄ¢ ÅÛÇø®Æ®´Â ¸Þ¼Òµå ¼­¸í¿¡¸¸ ÃÊÁ¡À» ¸ÂÃ߹ǷÎ, ÆÐŰÁö¿Í Ŭ·¡½º À̸§ Á¤º¸´Â Àǹ̰¡ ¾ø½À´Ï´Ù.

1.12 ¸Þ¼Òµå À̸§ ÀÔ·Â ½Ã ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ÅÛÇø®Æ®°¡ µ¿ÀÛÇÏÁö ¾ÊÀ½

Á¦°øÇÑ ±ÔÄ¢ ÅÛÇø®Æ®¿¡¼­ »õ ±ÔÄ¢À» ÀÛ¼ºÇÒ °æ¿ì, ¸Þ¼Òµå À̸§À» ÀÔ·ÂÇÏÁö ¸¶½Ê½Ã¿À. ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© ¸Þ¼Òµå¸¦ ¼±ÅÃÇϽʽÿÀ.

1.13 ¼­¹ö µ¥ÀÌÅÍ ±¸¼º ½Ã Áß¿ä ¿À·ù âÀÌ Ç¥½ÃµÊ

¼­¹ö µ¥ÀÌÅ͸¦ ±¸¼ºÇÒ ¶§ Áß¿ä ¿À·ù âÀÌ Ç¥½ÃµÉ °æ¿ì, .java ÆÄÀÏ °ü·Ã ÆäÀÌÁö(ÆäÀÌÁö ÄÚµå)¸¦ ´Ý°í µ¥ÀÌÅÍ ±¸¼ºÀ» ´Ù½Ã ½ÃµµÇϽʽÿÀ.

1.14 Linux OS¿¡¼­ÀÇ È¯°æ ¼³Á¤ ÆäÀÌÁö ¹®Á¦

LinuxÀÇ °æ¿ì, ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ¼±ÅÃÇÑ ÄÚµå °ËÅä¿¡ ¸¹Àº ±ÔÄ¢ÀÌ Æ÷ÇÔµÇ¸é ±ÔÄ¢ Ä«Å×°í¸®¿Í ±ÔÄ¢ ¼¼ºÎ»çÇ×À» ¸ðµÎ º¸Áö ¸øÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇØ°áÃ¥Àº ȯ°æ ¼³Á¤ ÆäÀÌÁö¿¡¼­ ºü¸¥ ÄÚµå °ËÅ並 ¼±ÅÃÇϰí ȯ°æ ¼³Á¤ ÆäÀÌÁö¸¦ ´ÝÀº ÈÄ ´Ù½Ã ¿©´Â °ÍÀÔ´Ï´Ù. ±×·¯¸é ÄÚµå °ËÅä°¡ ¿Ã¹Ù¸£°Ô Ç¥½ÃµË´Ï´Ù.

Readme ÆÄÀÏ·Î µ¹¾Æ°¡±â