Jose M. Fernández Â÷ ·Ê: µé¾î°¡´Â ±Û ±â¿ø JAVA¸¦ ¾ò°í ¼³Ä¡Çϱ⠰³¹ßȯ°æ Ư¡ JAVAÀÇ Ã¹ ¹ø° ÇÁ·Î±×·¥ ¿ä¾à |
ÀÚ¹Ù·ÎÇÏ´Â ÇÁ·Î±×·¡¹Ö 1ºÎ¿ä¾à: À̱ÛÀº Java ÇÁ·Î±×·¡¹Ö¿¬ÀçÀÇ Ã¹¹ø°ÀÔ´Ï´Ù. ¸ÕÀú ¾ð¾î·Î¼ÀÇ ÀÚ¹Ù¿Í ±× ÀϹÝÀûÀΠƯ¡ ¹× ÀûÀýÇÑ Á¤º¸¸¦ ¾îµð¿¡¼ ã¾Æ º¼ ¼ö Àִ°¡¸¦ À̾߱âÇÕ´Ï´Ù. µé¾î°¡´Â±ÛJava ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í °³¹ßȯ°æÀ» ¼³¸íÇÒ ¿¬À縦 ½ÃÀÛÇÑ´Ù. ù ¸ñÇ¥·Î¼ ¾ð¾î, ¸¶ÀÌÅ©·Î¿þÀ̺ê, ¼¼Å¹±âÀÇ ±â·Ï¿¡ ´ëÇÏ¿© Áß¿äÇÏ°Ô ¿©±âÁö ¾ÊÀ» °ÍÀÌ´Ù(´ÙÁß ÃâÆǹ°, Àç¹Õ´Â ¹®ÇÐÀ» Àд °Í Á¶Â÷ Èï¹Ì¸¦ ÀÏÀ¸ÄÑÁø´ÙÇصµ). ¸¶¸²¹Ù ¸®µë¿¡ ¸ÂÃç ¼ÕÀ» Èçµå´Â °Å´ëÇÑ ÄÚ¿Í »ï°¢Çü ¸ð¾çÀÇ ¸öü¸¦ °¡Áø ÀÛÀº ³²ÀÚÀÎ µàÅ©(Java ¸¶½ºÄÚÆ®)¿Í ¿¹Àü ¹Ì±¹ °ø»ó°úÇпµÈ¸¦ »ý°¢ÇÏ´Â °ÍÀ¸·ÎºÎÅÍ ¿ª½Ã ½Å°æÀ» ¾²Áö ¾ÊÀ» °ÍÀÌ´Ù. Java Çö»óÀº ¾à°£À» º¯È°¡ ÀÖ´Ù. ±×°Í¿¡ ´ëÇÑ °¡Ä¡´Â ¸ðµç ÄÄÇ»ÅÍ ¸Å°ÅÁø¿¡ ¾²¿©Áö°í, Java ¾ÖÇø´À» ¹ßÀü½ÃŲ Á¦Ç°À» ÆǸÅÇÏ´Â ¸¹Àº ¼ÒÇÁÆ®¿þ¾î ȸ»ç°¡ ÀÖ°í, ¸î¸î web »çÀÌÆ®°¡ Java ¾ÖÇø´À̳ª ±× ÀÌ»óÀ» °¡Áö°í ÀÖÁö ¾Ê´Ù. ÀÌ ¿¬À縦 ÅëÇÏ¿©, ±âº»ÀûÀÎ °ÍÀº °£´ÜÇÏÁö¸¸ µ¿½Ã¿¡ ¾ÆÁÖ º¹ÀâÇÏ°í, ²÷ÀÓ¾øÀÌ ¹ßÀüÇÏ°í Àֱ⠶§¹®¿¡ ¾î·Á¿î ÀÌ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ Æø³Ð°Ô ¹è¿ì±â À§ÇØ °¡´ÉÇÑ ÇÑ ¸¹ÀÌ Á¶»çÇÏ·Á°í ³ë·ÂÇÒ °ÍÀÌ´Ù. ù¹ø° ¿¬ÀçÀÇ ¸ñÇ¥´Â ÀϹÝÀûÀ¸·Î ¾ð¾îÀÇ ±â¼úÀ» Á¦°øµÈ ÈÄ¿¡ ¾ÖÇø´, network °ü°è ÇÁ·ÎÁ§Æ®, JDBCµî°ú °°Àº ±íÀº ÁÖÁ¦´Â ½ÉµµÀÖ°Ô Á¶»çÇÒ °ÍÀÌ´Ù. Java°¡ ¹ü¿ë ¾ð¾î¶ó´Â °ÍÀº webÆäÀÌÁö¸¦ À§ÇÑ ¾ÖÇø´À» ¸Å¿ì Àαâ ÀÖ°Ô ¸¸µç´Ù ÇÒÁö¶óµµ ¹èŸÀûÀ¸·Î »ç¿ëµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» °Á¶ÇÑ °ÍÀÌ´Ù. Java ¾ÖÇø´º¸´Ù ´õ Èï¹Ì¸¦ ²ø¼ö ÀÖ´Â ¸¹Àº ´Ù¸¥ ´ëü ¶§¹®¿¡ ´ÜÁö ÀÚ¹ÙÀÇ °üÁ¡À» °¿äÇÒ ¼ö°¡ ¾ø´Ù. ÀÌ Ã¹¹ø° ¿¬Àç´Â ½ÇÁ¦ÀûÀ̶ó±â º¸´Ù´Â ±â¼úÀûÀÌ´Ù. ´ÙÀ½ÀÇ ±Û¿¡¼ ¾ð¾î¿Í °³¹ßȯ°æÀÇ ±âº»ÀûÀΠƯ¼ºµéÀ» Ž±¸ÇÒ °ÍÀÌ´Ù. ´ÜÁö ÇϳªÀÇ ÀÚ¹ÙÀÇ ÇÁ·Î±×·¡¹Ö ¿¹¸¦ ³¡¿¡¼ º¼ °ÍÀÌ´Ù. ±â¿øJava´Â 1991³â óÀ½ 18°³¿ù µ¿¾È Sun Microsystem Inc.¿¡ ÀÖ´Â James Gosling, Patrick Naughton, Chis Warth, Ed Frank, Mike Sherindan¿¡ ÀÇÇØ Âø»óµÇ¾î Á³´Ù. 1992³â°ú 1995³â »çÀÌ¿¡ Bill Joy, Arthur Van Hoff, Jonathan Payne, Frank Yellia, Tim LindolmÀº Ãʱâ ÇÁ·ÎƮŸÀÔ(prototype)ÀÇ °øµ¿À¸·Î ¿¬±¸ÇÏ¿© ¿Ï¼ºÇÏ¿´´Ù. >À§ ³¯Â¥µé·ÎºÎÅÍ, Java°¡ WWW¿¡ ÀÌÀüÀ̰ųª Àû¾îµµ µ¿½Ã¿¡ ¸¸µé¾îÁø °ÍÀº ºÐ¸íÇÏ´Ù. -- 1991³âÀÌ µÉ ¶§ ±îÁö Tim Berner Lee´Â HTML¾ð¾î¸¦ °³¹ßÇÏÁö ¾Ê¾Ò´Ù. JavaÀÇ ±¸¹®ÀÌ C¿Í ¸Å¿ì ºñ½ÁÇÏ°í °´Ã¼ ÁöÇâ Ư¼ºÀ» Áö´Ñ C++ ¿ª½Ã ºñ½ÁÇÏ´Ù. Java´Â ÀÀÁý¼º°ú ³í¸®ÀûÀ¸·Î ÀÏ°üµÇ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÌ´Ù. C¿Í C++ÀÌ °¡Áø À¯»ç¼ºµéÀº Java°¡ ÀÎÅͳÝÀ» À§ÇÑ C++ÀÇ ¹öÀüÀÎ ÀλóÀ» ÁÙ ¼öµµ ÀÖÁö¸¸, Áß¿äÇÑ À̷аú ½ÇÁ¦ÀûÀÎ Â÷ÀÌ´Â ÀÖ´Ù. ƯÈ÷, Java´Â C++°ú ºñ±³ÇÑ ÈÄ, °³Ã¼ÁöÇâ ¹ý·ÊÀ» °³¼±ÇÏ°í ¼øÈÇÏ¿´´Ù. ÀÎÅͳÝÀº ÀϹÝÀûÀ¸·Î ¾Ë·ÁÁø ¾ð¾î·Î ¸¸µé¾î ÀÚ¹Ù¸¦ ½ÃÀÛÇß°í µ¿½Ã¿¡, ÀÚÀ¯·ÎÀÌ »çÀ̹ö½ºÆäÀ̽º¿¡¼ À̵¿µÉ ¼ö ÀÖ´Â ¿ÀºêÁ§Æ®ÀÇ ¹üÀ§¸¦ ³ÐÈù ÀÌÈÄ·Î ÀÚ¹Ù´Â ÀÎÅͳݿ¡ ±íÀº È¿°ú¸¦ °¡Áö°Ô µÇ¾ú´Ù(µ¿ÀûÀÎ ÀÚµ¿ ½ÇÇà ÇÁ·Î±×·¥). JAVA¸¦ ¾ò°í ¼³Ä¡ÇϱâJava ÇÁ·Î±×·¡¹ÖÀ» ÇϱâÀ§ÇØ °áÁ¤ÀûÀÎ µµ±¸°¡ ÀÖ´Ù. ºÎ¼öÀûÀ¸·Î Ç×»ó GNU/LINUX ȯ°æÀ» ÂüÁ¶ÇÑ´Ù.(ÀÒ¾î¹ö¸®°Ô µÈ °æ¿ì¿¡): ÇöÀçÀÇ ELF¸¦ ±âº»À¸·Î ¿ä±¸ÇÏ´Â Linux Ä¿³Î 1.2.13À̳ª ±× ÀÌÈÄ ¹öÀü ¼³Ä¡ÇÑ´Ù. JDK(Java Development Kit)ȯ°æ°ú ³Ý½ºÄÉÀÌÇÁ ¹öÀü 2.0.14³ª ±× ÀÌÈÄ ¹öÀü, ÅؽºÆ® ÆíÁýÀ¸·Î ÁÁÀº Xemacs¸¦ ÀÌ¿ëÇÒ °ÍÀÌ´Ù. Ç×»ó Xwindows »ó¿¡¼ ÀÛ¾÷À» ÇÒ °ÍÀÌ´Ù. ±×°ÍÀº Ç×»ó ÇÊ¿äÇÏÁö ¾ÊÀ»Áö¶óµµ, °³¹ßµÈ ¾ÖÇø´°ú ±×·¡ÇÈÀûÀÎ ÀÎÅÍÆäÀ̽º¿Í °ü·ÃµÈ ÇÁ·Î±×·¥Àº ¾î´À ¶§¶óµµ ¿ä±¸ÇÏ°Ô µÈ´Ù. ´ÙÀ½ÀÇ À¥»çÀÌÆ®·ÎºÎÅÍ JDK¹èÆ÷ÆÇÀ» ³»·Á ¹ÞÀ» ¼ö ÀÖ´Ù: ÀÌ »çÀÌÆ®·ÎºÎÅÍ ÆÄÀϵéÀ» »¡¸® ³»·Á ¹Þ±â À§Çؼ´Â Æí¸®ÇÑ ¹Ì·¯¸¦ Â÷·Ê·Î ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¸î ´Þ Àü, ÃֽŠ¹öÀüÀº JDK-1.1.3(ÀÌ ±â»ç¸¦ À§ÇØ »ç¿ëµÈ ¹öÀü)À̾úÁö¸¸, ¸¶Áö¸·À¸·Î ¹æ¹®ÇÏ¿´À» ¶§´Â ÀÌ¹Ì °Å±â¿¡¼ ¹öÀü 1.19¸¦ º¸¾Ò´Ù. ¸ðµç °ÍÀ» ³»·Á ¹Þ´Â´Ù¸é 24MbÀÎ °ÍÀ» ÁÖ¸ñ! ±×·³¿¡µµ ºÒ±¸ÇÏ°í ´ÜÁö ¾ö°ÝÇÏ°Ô ÇÊ¿äÇÑ °ÍÀº ´ë·«12Mb(Àγ»!)¸¦ ³»·Á¹Þ´Â´Ù. gunzipÇüÅÂÀÇ fileÀº ¾ÐÃàÀ» Ǭ µÚ¿¡ ¹®Á¦¾øÀÌ ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. º¸Åë µð·ºÅ丮 /usr/local¿¡¼ ¹èÆ÷ÆÇÀ» ¼³Ä¡Çϸç, ¼¹öµð·ºÅ丮 /JDK1.1.3¿¡ ´ÙÀ½°ú °°Àº °ÍÀ» »õ·Î ¸¸µé¾îÁø´Ù: /doc HTML Çü½ÄÀÇ °ø½Ä ¹®¼ /demo ÀÚ¹Ù ÇÁ·Î±×·¥ µ¥¸ð /lib ¶óÀ̺귯¸® /bin ÀÌ µð·ºÅ丮´Â Àû´çÇÑ JDKÀÇ µµ±¸µéÀº ÀÖ´Ù. /lib µð·ºÅ丮 ¾È¿¡, "classes.zip"(ÀÌ ÆÄÀÏÀº ¾ÐÃàÀ» Ç®Áö ¾Ê´Â´Ù)À̶ó´Â ÆÄÀÏÀ» ÀÖÀ¸¸ç, ±×°ÍÀº JDK¿¡ ÀÇÇØ »ç¿ëµÉ ¼ö ÀÖ´Â ÆíÁýµÈ ¸ðµç Ŭ·¡½ºµéÀ» Æ÷ÇÔÇÕ´Ï´Ù. ·çÆ® µð·ºÅ丮 ¾È¿¡ "src.zip"À̶ó´Â ÆÄÀÏÀÌ ÀÖÀ¸¸ç, ±×°ÍÀº classes.zip¿¡ Æ÷ÇÔµÈ ¼Ò½ºÆÄÀÏ·Î Æ÷ÇÔÇÑ´Ù. ±×µéÀº ÆíÁýµÇÁö ¾Ê°í, ´ÜÁö Á¤º¸ÀûÀÎ ¸ñÀûÀ¸·Î ¹èÆ÷ÆÇÀÌ Á¦°øµÈ´Ù. °³¹ßȯ°æ¾Õ¿¡¼ ¾ð±ÞµÈ °Íó·³ °³¹ß µµ±¸µéÀº /binµð·ºÅ丮¿¡ À§Ä¡ÇÑ´Ù: javac : Java ¼Ò½ºµéÀ» bytecode·Î º¯Çü½ÃÅ°´Â Java ÄÄÆÄÀÏ·¯. Java : Java Çؼ® ÇÁ·Î±×·¥. Java bytecode¸¦ ½ÇÇàÇÑ´Ù. jre : Java¿Í ºñ½ÁÇÑ ´Ù¸¥ Çؼ® ÇÁ·Î±×·¥ÀÌÁö¸¸, »ç¿ëÀÚ¸¦ À§ÇÏ¿© ¸ðµç ¿É¼Ç»ç¿ëÀ» ¿ä±¸ÇÏÁö ¾Ê´Â´Ù. appletviewer: ¾ÖÇø´À» °Ë»çÇÏ°í ¼öÇàÇÑ´Ù. jdb: µð¹ö±×. javap: Java·Î ÄÄÆÄÀÏµÈ bytecode ÆÄÀÏÀÇ µð¾î¼Àºí·¯. javadoc : ¹®¼ »ý¼º ÇÁ·Î±×·¥Àº public°ú produceÀÇ Å¬·¡½ºµé, ÀÎÅÍÆäÀ̽º, »ý¼ºÀÚ, ¸Þ¼Òµå¿Í Çʵ带 ¼³¸íÇÏ´Â ÀÏ·ÃÀÇ HTML ÆäÀÌÁö¸¦ »ý»êÇÑ´Ù. ¶ÇÇÑ, Ŭ·¡½ºÀÇ °èÃþ±¸Á¶¿Í ¸ðµç ¸â¹öµéÀ» À妽ºµµ »ý»êÇÑ´Ù. javah : Java ÇÁ·Î±×·¥ÀÇ °íÀ¯ ¸Þ¼Òµå(C¾ð¾î)¸¦ Ãß°¡ÇÏ´Â Åø. jar: Àڹ٠Ŭ·¡½ºÀÇ ±â·Ï°ú Jar º¸Á¸ ÆÄÀÏÀ» ¼Ò½º. javakey : µðÁöÅÐ ±âÈ£¸¦ À¯ÁöÇÏ´Â Åø. updateAWT : ¾îÇø®ÄÉÀ̼ÇÀÇ AWT1.02 ¸Þ¼ÒÆ®¿¡¼ º¯ÈµÈ À̸§À¸·Î °»½ÅÇÑ´Ù. ÇöÀçÀÇ µð·ºÅ丮 ±¸Á¶·Î¼ ÀÌ»ó¾øÀÌ ÀÛ¾÷Çϱâ À§Çؼ´Â ȯ°æ º¯¼ö PATH¿¡ /usr/local/JDK1.1.3/binÀ» Ãß°¡Çϵµ·Ï Ãæ°íÇÑ´Ù. ´ç½ÅÀÌ »ç¿ë °¡´ÉÇÑ °³¹ß ȯ°æÀ» ½Ã½ºÅÛÀ» Ç×»ó »ç¿ëÇϱ⠿øÇÑ´Ù¸é, /etc/profileÆÄÀÏÀÇ ¾È¿¡ ÀÖ´Â PATHº¯¼ö¸¦ °íÄ£´Ù. Ư¡°è¼ÓÇϱâ Àü¿¡ ÀÚ¹®ÇÑ´Ù. ÀÚ¹Ù°¡ ¹«¾ùÀϱî? ´ë´äÇϱâ À§ÇØ, ¿ì¸®´Â JDK ¸Þ´º¾ó¿¡ ÀÖ´Â °Í ó·³, Java´Â ÇÁ·Î±×·¥¹Ö ¾ð¾î¿Í Ç÷§ÆûÀ̶ó´Â µÎ ºÎºÐÀ¸·Î ´ë´äÇÒ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î Java´Â ´ÙÀ½ÀÇ Æ¯¼ºÀ¸·Î high level ¾ð¾îÀÔ´Ï´Ù(¸î°¡Áö Á¡¿¡, ¿ì¸®´Â ±×µéÀ» »ó¼¼ÇÏ°Ô °Ë»çÇÑ´Ù):
¿ì¸®µéÀÇ ÁÖÀǸ¦ ȯ±â½ÃÅ°´Â ù¹ø° ÀÏÀº ÀÚ¹Ù°¡ Çؼ®µÈ´Ù´Â °ÍÀÌ´Ù. ÀÌ¹Ì ÇÏÀ§ ´Ü°è ÄÚµåÀÎ Java¼Ò½º¿¡µµ ºÒ±¸ÇÏ°í, ±×°ÍÀº ´Ù¾çÇÑ Ç÷§Æû¿¡¼ Çؼ®µÇ±â ÀÌÀü¿¡ bytecodeÀÇ ¿ÀºêÁ§Æ®¸¦ »ý¼º½ÃÅ°±â À§ÇØ ÄÄÆÄÀÏÀ» ¿ä±¸ÇÑ´Ù. Java bytecodeÀÇ ´öÅÿ¡ "Çѹø ¾²°í, Ç×»ó ½ÇÇà"À» ÇÒ¼ö ÀÖ´Ù. Ç÷§Æû»ó¿¡¼ Java ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ°í Java °¡»ó ±â°è(JVM)ÀÇ ¿ÏÀüÇÏ°Ô ¼³Ä¡ÇÑ ´Ù¸¥ ¾ÆÅ°ÅØó¿¡¼ ±×µéÀ» ½ÇÇàÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, Java ÇÁ·Î±×·¥Àº Windows NT Ç÷§Æû¿¡¼ ÄÄÆÄÀÏÇÏ°í Sun Ultra Solaris¿¡¼ ¹®Á¦(Àû¾îµµ ÀÌ·ÐÀÌ´Ù.)¾øÀÌ ½ÇÇàµÈ´Ù. ÀϹÝÀûÀ¸·Î, Ç÷§ÆûÀº ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â Çϵå¿þ¾î/¼ÒÇÁÆ®¿þ¾î ȯ°æÀÌ´Ù. ±×·¯³ª, Ç÷§ÆûÀº ´ÜÁö Java¸¦ ½ÇÇàÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ȯ°æÀÌÁö¸¸, °¢°¢ÀÇ Java Ç÷§ÆûÀº Çϵå¿þ¾î Ç÷§Æû¿¡¼ ½ÇÇàÇÒ ¶§ °¡Áø´Ù. Java Ç÷§ÆûÀº µÎ ÄÄÆ÷³ÍÆ®¸¦ °¡Áö°í ÀÖ´Ù:
JVMÀº Java ÇÁ¸®ÄÄÆÄÀÏ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¼ö ÀÖ´Â Ãß»óÀûÀÎ ÄÄÇ»ÅÍÀÌ´Ù. °³³äÀº °¡´ÉÇÑ ¸ðµç Àå¼Ò¿¡ ±×°ÍÀ» ¼³Ä¡ÇÏ´Â °Í¶§¹®¿¡ °£´ÜÇÏ°í ÀÛ°Ô ¼³°èµÇ¾ú´Ù. ÀÌ ´Ü¼øÀº ¸ðµç ÇöÁ¸ÇÑ Ç÷§Æû¿¡ È®»êÀÌ °¡´ÉÇÏ°Ô ¸¸µé°í, ¸ðµç °Í¿¡ ´ëÇÑ °øÅëÀÇ ¼ÒÇÁÆ®¿þ¾îÃþ°ú ¸Å¿ì »óÀÌÇÑ À̱âÁ¾°£ ³×Æ®¿öÅ©(ÀÎÆ®³Ý°ú °°Àº °Í)À» Á¦°øÇÏ¿© °¡Àå Å« À̽´ÀÎ À̽ÄÀÇ ¿ëÀ̼ºÀ¸·Î ÇØ°áµÈ´Ù. ±×°ÍÀ¸·Î ÀÌ ±â¼úÀÇ ³¡¾ø´Â ¼ºÀå¿¡ ´ëÇÑ È®½ÇÇÑ ÀÌÀ¯·Î »ý°¢ÇÒ ¼ö ÀÖ´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í °¡»ó ¸Ó½Å´Â À̸§À» ³ªÅ¸³»Áö¸¸, ´ÜÁö ¼ÒÇÁÆ®¿þ¾î ÃþÀ¸·Î º¸ÀÌÁö ¾Ê°í, ¸®¾ó Java ¸Ó½Å, ½Å¿ëÄ«µå, TVÇص¶±âµîÀ» Áö¿øÇÑ Java Ĩ ½ÃÀåÀÌ Á¶±Ý¾¿ º¸À̱⠽ÃÀÛÇÏ´Â ÇϳªÀÇ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÌ·Á°í ³ë·ÂÇÑ´Ù. Java API´Â ±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º(Graphical User Interface; GUI)¿Í °°Àº ¸¹Àº À¯Æ¿¸®Æ¼¸¦ Á¦°øÇÑ ¼ÒÇÁÆ®¿þ¾î ÄÄÆ÷³ÍÆ®ÀÇ ¸¹Àº ¸ðÀ½ÀÌ´Ù. ±× ¶óÀ̺귯¸®(JavaÀÇ Àü¹® ¿ë¾î¸¦ ÀÌ¿ëÇÑ ÀÚ¹Ù ÆÐÅ°Áö)¿¡¼ ºÒ·¯¸ð¾Æ Áø´Ù. ÀÌ ÆÐÅ°ÁöÀÇ ´öÅÿ¡ Àß ¾Ë·ÁÁø À¥ ¾ÖÇø´µé ¿ÜÀÇ ¸¹Àº ¾îÇø®ÄÉÀ̼ÇÀ» À§ÇØ Java¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°í, ¿¹¸¦ µé¸é proxie, ¸ÞÀÏ ¼¹ö, IRC ¼¹ö ±×¸®°í ½ÇÁúÀûÀ¸·Î ÀÎÅͳݿ¡ °ü°èµÈ´Ù´Â »ó»óÀ¸·Î À¥ ¼¹ö¸¦ ¼³°è ÇÒ ¼ö ÀÖ´Ù. ´Ù¾çÇÑ ±×·ìÀ¸·Î API ÆÐÅ°ÁöµéÀ» ºÐ·ùÇÒ ¼ö ÀÖ´Ù:
ÀÌ ±âº»ÀûÀÎ API Ä¿³Î ¿Ü¿¡, ¶ÇÇÑ 3D È®Àå, À̵¿Çϱ⠽¬¿î Åë½Å, ¿¡´Ï¸ÞÀÌ¼Ç µîÀÌ ÀÖ´Ù. Java´Â »ó¼¼ÇÏ°Ô °øºÎÇÒ Æ¯¼ºÀÇ ½Ã¸®Á °¡Áö°í ÀÖ´Ù°í, ´Ü¿ø óÀ½¿¡ ¾ð±ÞÇß´Ù:
ÀÌ°Í ÈÄ¿¡ GNU/Linux ¼¼°è¿¡ ÀÖ´Â JavaÀÇ »óÅÂ(Á÷¹«»ó Java ¹®¼¸¦ ¸¹ÀÌ ¹ß°ßÇÒ ¼ö ÀÖ´Ù)¿¡ ´ëÇØ "¾ð±Þ"ÇÏ´Â °ÍÀ» ÀǾÆÇÏ°Ô ¿©±æ ¼ö ÀÖ´Ù. Linux¸¦ À§ÇÑ JDKÀÇ °¡¿ë¼ºÀ» ÀÏÂï ¾ð±ÞÇß°í, ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛ½º»ç¿¡¼ °³¹ßµÈ »ó¾÷»óÀÇ ¼³Ä¡°¡ ¾Æ´Ï´Ù.(ÀÚÀ¯·ÎÀÌ ºÐ¹èÇÒ ¼ö ÀÖ´ÙÇÏ´õ¶óµµ). ¹®Á¦Á¡ ¾øÀÌ ¾î¶°ÇÑ Java ¼Ò½º¶óµµ ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Â, GPL¶óÀ̼¾½º ¾Æ·¡¿¡ ÄÄÆÄÀÏ·¯ GUAVAC¿Í °°Àº Åø(tool)ÀÌ ÀÖ´Ù. Berkeley¶óÀ̼¾½º ¾Æ·¡¿¡ KAFFE¶ó°í ºÒ¸®´Â °¡»ó±â°èµµ ¿ª½Ã ¾ð±ÞÇÑ´Ù. ÃÖÈÄÀÇ µÎ ÇÁ·ÎÁ§Æ®µéÀº ¿©ÀüÈ÷ ¿ÏÀüÇÑ °³¹ß ½Ã½ºÅÛÀ» °¡Áö°í ÀÖ´Â ½ã»ç(¼ø°£ÀûÀÎ ¹«·á ¹èÆ÷)·ÎºÎÅÍ Java Ŭ·¡½º ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÏ°Ô µÉÁö¶óµµ ¸Å¿ì Áøº¸ÇÑ ´Ü°è¿¡ ÀÖ´Ù. ¿©ÀüÈ÷ Ãʱâ´Ü°èÀÎ ÃÖ±ÙÀÇ ¿©·¯ ÇÁ·ÎÁ§Æ®´Â ºü¸£°í ºñÁÖ¾óÀûÀÎ ¾îÇÁ¸®ÄÉÀÌ¼Ç °³¹ß ȯ°æÀ» Á¦°øÇϴ°ÍÀ» °Ü³ÉÇÑ´Ù. ¸¶Áö¸·À¸·Î, ³ª´Â ÀÚ¹Ù¿Í GNU ±â¼úÀ» °ü°èÇÏ´Â ³×Æ®¿¡ Å« À̵¿ÀÌ ÀÖ´Ù´Â °Í°ú, ½ã»ç·ÎºÎÅÍÀÇ µ¶¸³°ú ƯÈ÷ JavaÀÇ ¹«·á¹èÆ÷ÀÇ ¿ÏÀüÇÑ µµ±¸ ¹Ú½ºÀÇ °³¹ßÀ» °ü°èÇÏ´Â °ÍÀ» ±â¼úÇÏ°Ú´Ù. JAVAÀÇ Ã¹ ¹ø° ÇÁ·Î±×·¥ÀϹÝÀûÀÎ ¾ð¾îÀÇ Æ¯¼ºµéÀ» ¸î°¡Áö º» ÈÄ¿¡ ½ÇÁ¦ÀÇ ÇÁ·Î±×·¥À» º¾½Ã´Ù. µé¾î°¡´Â ¸»¿¡¼ ¾ð±ÞÇϱ⠶§¹®¿¡, ÀüÇöÀûÀÎ Àç·á¸¦ Áß¿äÇÏ°Ô ¿©±âÁö ¾Ê±â À§ÇØ hello world ¿¹Á¦¸¦ ÁÁ¾ÆÇÏ°í, ¿ì¸®°¡ ÁÁ¾ÆÇÏ´Â ¾î¶°ÇÑ Â÷¿øÀÇ Á¦°öÀ» ±×¸° ÇÁ·Î±×·¥ÀÇ ½ÃÀÛÇÏ´Â °ÍÀ» °¡´ÉÇÑ ÇÑ ´õ ÁÁ¾Æ ÇÒ °ÍÀÌ´Ù(³Ê¹« ¸¹Áö ¾ÊÀº º¹ÀâÇÑ ºñÆ®): class Cuadro { public static void main (String args[]) { int l ,a; if (args.length == 2) { l = Integer.valueOf(args[0]).intValue(); a = Integer.valueOf(args[1]).intValue(); } else { l= 20; a= 15; } for (int i=l; i>0; i--){ System.out.print("*"); } System.out.print("\n"); for (int i= a-2; i>0; i--){ System.out.print("*"); for(int j=l-2; j>0; j--) { System.out.print(" "); } System.out.print("*\n"); } for (int i=l; i>0; i--){ System.out.print("*"); } System.out.print("\n"); } } Java´Â "ÄÄÆÄÀÏ À¯´Ö(±â´É ´ÜÀ§)"¸¦ Á¤ÀÇÇϱ⠶§¹®¿¡ ¼Ò½º ÆÄÀÏ¿¡°Ô ÁÖ¾îÁø À̸§Àº ¸Å¿ì Áß¿äÇÏ´Ù. ÆÄÀÏÀº Çϳª ÀÌ»óÀÇ Å¬·¡½ºÀÇ Á¤ÀǸ¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù. ÄÄÆÄÀÏ·¯´Â ¼Ò½º ÆÄÀÏÀÌ È®ÀåÀÚ .Java(4 ¹®ÀÚ)À» °¡Áö°í ÀÖÀ¸¸®¶ó°í ¿¹»óÇÑ´Ù. °á°úÀûÀ¸·Î, ¸î¸î ½Ã½ºÅÛÀº ±×°ÍÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.(DOS or Windows 3.1) ¿¹Á¦¿¡¼ Á¤ÀÇµÈ Å¬·¡½ºÀÇ À̸§Àº ¼Ò½º ÆÄÀÏÀÇ À̸§°ú ÇÔ²² µ¿½Ã¿¡ ¹ß»ýÇÑ´Ù. ÀÌ°ÍÀº ÀÚ¹ÙÀÇ Å¬·¡½º¾È¿¡ ¹Ýµå½Ã ¸ðµç Äڵ尡 ÀÖ¾î¾ß ÇÑ´Ù. ±ÔÄ¢¿¡ ÀÇÇÏ¿© Ŭ·¡½ºÀÇ À̸§Àº Ŭ·¡½º¸¦ Æ÷ÇÔÇÑ ¼Ò½º ÆÄÀÏÀÇ À̸§°ú ÇÔ²² µ¿½Ã¿¡ ¹ß»ýÇØ¾ß ÇÑ´Ù. ¶Ç, Java´Â ´ë¼ÒºÐÀÚ¸¦ ±¸ºÐÇÑ´Ù(´ë¹®ÀÚ³ª ¼Ò¹®ÀÚÀÎ °æ¿ì). Ä¿¸Çµå ¶óÀΠŸÀÔ¿¡¼ ¿¹Á¦¸¦ ÄÄÆÄÀÏÇÏ´Â ¹æ¹ýÀº : > javac Cuadro.javaJava ÄÄÆÄÀÏ·¯(¸ðµç °ÍÀÌ OK µÇ¾ú´Ù¸é)Àº ´ç¿¬È÷ ¹ÙÀÌ·¯¸®(bytecode)Æû Æ÷ÇÔÇÏ°í, Çؼ® ÇÁ·Î±×·¥¿¡ ÀÇÇØ ½ÇÇà µÉ¼ö ÀÖ´Â Cuadro.class ÆÄÀÏÀ» »ý¼º½ÃŲ´Ù. > java CuadroJava ¼Ò½º Äڵ带 ÄÄÆÄÀÏ ÇÒ¶§, ƯÀ¯ÇÑ °¢°¢ÀÇ Å¬·¡½º´Â Ŭ·¡½º·Î¼ÀÇ °°Àº À̸§°ú °ü·ÃµÇ´Â °ÍÀ» º¸Á¸ÇÑ´Ù. ±×°ÍÀº Ŭ·¡½º°¡ ¼Ò½º ÆÄÀÏ¿¡¼ .class ÆÄÀÏ·Î º¸Á¸ÇÏ´Â °ÍÀ» Æ÷ÇÔÇϱ⠶§¹®¿¡ ¼Ò½º ÆÄÀÏ¿¡°Ô °°Àº À̸§À» ÁÖ´Â °ÍÀº ÁÁÀº ½À°üÀÌ´Ù. ¿¹Á¦ Cuadro.javaÀÇ ´Ü¼øÇÔ¿¡µµ ºÒ±¸ÇÏ°í Java¿Í ÀüÇüÀûÀÎ Java ÇÁ·Î±×·¥ÀÇ ±¸¼ºÀÇ ±âº»µéÀ» ÀÌÇØÇÏ´Â °ÍÀ» µ½´Â´Ù. ¿ì¼± ÀÌ ¿¹Á¦°¡ HTML ÆÄÀÏ¿¡ Æ÷Ç﵃ ¼ö ÀÖ´Â ¾ÖÇø´ÀÌ ¾Æ´Ï¶ó´Â °ÍÀ» °í·ÁÇÑ Ä¿¸Çµå ¶óÀο¡ ÀÖ´Â ÀÚ¹Ù Çؼ® ÇÁ·Î±×·¥¿¡ ÀÇÇØ ½ÇÇàµÇ´Â µ¶¸³ÀûÀÎ ÇÁ·Î±×·¥ÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ Ã¹¹ø° ¶óÀÎÀº : class Cuadro { ù¹ø° ´Ü¾î´Â ¾ð¾îÀÇ ¾Ö¾àµÈ Åä±ÙÀÌ´Ù. ±×°ÍÀº "Cuadro"ÀÎ °æ¿ì¿¡ »õ·Î¿î Ŭ·¡½º¸íÀÇ Á¤ÀǸ¦ ³ªÅ¸³´Ù. -- ½ºÆäÀο¡ ÀÖ´Â Á¦°ö -- ±×°ÍÀÇ µÎ Áß°ýÈ£ {} »çÀÌ¿¡ Á¤È®ÇÑ ¸ðµç Ŭ·¡½ºÀÇ Á¤ÀÇ°¡ Æ÷ÇԵȴÙ. Java¿¡¼ ¸ðµç ÇÁ·Î±×·¥ÀÇ ÀÛ¾÷Àº Ŭ·¡½ºÀÇ ¾È¿¡ ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ´ÙÀ½ ¶óÀÎÀº: public static void main (String args[]) { ±×°ÍÀº main()À̶ó´Â À̸§À» °¡Áö´Â ¸Þ¼Òµå¸¦ ¼±¾ðÇÑ´Ù. ¸ðµç Java ¾îÇø®ÄÉÀ̼ÇÀº main()(C/C++°ú ºñ½ÁÇÏ°Ô)À̶ó°í ºÒ¸®´Â ¸Þ¼Òµå·Î ½ÇÇàÀ» ½ÃÀÛÇÑ´Ù. ´ÙÀ½Àº ¿¹Á¦¸¦ ÀÌÇØÇϱâ À§ÇØ ¾à°£ÀÇ ¼¼ºÎ»çÇ×À» ÇÊ¿äÇÑ ÁÖ¼®À» ´Þ°Ú´Ù(´ÙÀ½¿¡ ¿Ã¸± ±â»ç¿¡ ´õ ±íÀÌÀÖ°Ô ¼³¸íÇÑ´Ù). Å°¿öµå publicÀº Ŭ·¡½ºÀÇ ¸â¹öÀÇ ¸Þ¼ÒµåµéÀÇ À¯È£¹üÀ§¸¦ Á¦¾îÇÑ´Ù. Ŭ·¡½º°¡ publicÀ¸·Î ¼±¾ðµÈ ÈÄ Å¬·¡½º´Â Ŭ·¡½º ¹Û¿¡¼ Á¤ÀÇµÈ Äڵ忡 ÀÇÇØ »ç¿ëµÉ ¼ö ÀÖ´Ù. Å°¿öµå staticÀº Ŭ·¡½º¸¦ ºÎÃß±æ ÇÊ¿ä°¡ ÀÖÁö ¾Ê°í È£ÃâµÇ±â À§ÇØ main()¸Þ¼Òµå¸¦ °¿äÇÑ´Ù. Void´Â ¸Þ¼Òµå°¡ ¾î¶°ÇÑ °ª(¸®ÅÏ°ª)µµ µÇµ¹·Á ÁÖÁö ¾Ê´Â´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. ¿¹Á¦¿¡¼ mainÀÇ ¸Å°³º¯¼ö·Î StringŬ·¡½º·ÎºÎÅÍ ÀνºÅϽºÀÇ Çà·Ä·Î ÀâÇôÀÖ´Â °Í°ú °°ÀÌ functionÀ̳ª ¸Þ¼Òµå¿¡°Ô ¸Å°³º¯¼ö¸¦ ³Ñ°ÜÁÖ±â À§Çؼ´Â functionÀ̸§ µÚ¿¡ ¾²¿©Áø ¼Ò°ýÈ£¸¦ ÀÌ¿ëÇÑ´Ù. ¸í¹éÇÏ°Ô ¸Þ¼ÒµåÀÇ ¸ðµç ÄÚµå´Â Áß°ýÈ£ »çÀÌ¿¡ µÑ·Á½ÎÀδÙ. ´ÙÀ½ ¶óÀÎÀº: int l, a ; µÎ°³ÀÇ Á¤¼ö º¯¼ö¸¦ ¼±¾ðÇÑ´Ù. ÀÚ¹Ù¿¡¼´Â º¯¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¸ðµç º¯¼ö°¡ ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. ÁÖÀÇ, °¢°¢ÀÇ ÄÚµå ³¡ºÎºÐ¿¡´Â ";(¼¼¹ÌÄÝ·Ð)"ÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ³ª¸ÓÁö ÄÚµåµéÀº ÀÛÀº ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÑ´Ù :
µ¶ÀÚ´Â ÀÌ ÀÛÀº Äڵ尡 ¾î¶»°Ô ÄÄÆÄÀÏµÇ°í ½ÇÇàµÇ´ÂÁö¸¦ °Ë»çÇÏ´Â °Í°ú ¶ÇÇÑ, ´Ù¾çÇÑ Ç÷§Æû ¾Æ·¡ : Linux, À©µµ¿ìÁî 95(ÇöÀç´Â ÀÌ°ÍÀ¸·Î »ç¿ëÇÏÁö ¾ÊÁö¸¸!)¿¡¼ ÄÄÆÄÀÏµÈ ¿ÀºêÁ§Æ® Cuadro.class¸¦ ½ÇÇàÇÔÀ¸·Î½á ÄÚµåÀÇ À̽ļºÀ» °Ë»çÇÏ´Â °Í°ú ±×°ÍÀÌ ¾î¶°ÇÑ Ç÷§Æû¿¡¼µµ ¶È°°ÀÌ ½ÇÇàµÇ´Â °ÍÀ» º¸´Â °ÍÀº ÁÁÀº °úÁ¦°¨ÀÌ´Ù. ¿ä¾à¿ì¸®´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼ÀÇ JavaÀÇ ÀϹÝÀûÀÎ ±â´Éµé Áß ÀϺθ¦ ¾Ë¾Æº¸¾Ò´Ù.¿ì¸®´Â ÇÁ·Î±×·¥ Çϱâ À§ÇØ Ãâ¹ßÇß°í, ±ä ±æÀ» °¡±â À§ÇØ, ´ÙÀ½ ¿¬Àç¿¡¼ ¾ð¾îÀÇ ´õ¸¹Àº ±â¼úÀ» ¾µ °ÍÀÌ´Ù. ´ÙÀ½ ¿¬Àç¿¡¼, Á¤Àǵé°ú º¯¼öÀÇ Å¸ÀÔ, ±âº»ÀûÀÎ ¸í·É¾î, Ŭ·¡½º µîÀ» °øºÎÇÏ°Ô µÉ °ÍÀÌ´Ù. ÁÖµÈ ¾ð¾îÀÇ ¸í¼¼ÀÌ´Ù. ¿¬ÀçÀÇ ±âÃʸ¦ ÁØ ´ÙÀ½ÀÇ ÃâÆǹ°°ú URL¿¡¼ °¢°¢ÀÇ ±ÛµéÀ» ÂüÁ¶ÇÏ¿´´Ù.
¹ø¿ª : À̼öȯ |
º» À¥»çÀÌÆ®´Â Miguel Angel Sepulveda¾¾¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù. © Emre Demiralp 1998 LinuxFocus 1998 |