Àڹ٠Ŭ·¡½º Æ©¾î±âÁ¸ÀÇ C/C++À» ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´ø »ç¶÷µé¿¡°Ô´Â ¶óÀ̺귯¸® ¶ó´Â °³³äÀº ¾ÆÁÖ Ä£¼÷ÇÑ °ÍÀÌ´Ù. ½ÇÁ¦ ÀÌ·¯ÇÑ ¶óÀ̺귯¸® ¾øÀÌ ÇÁ·Î±×·¥À» °³¹ßÇÑ´Ù´Â °ÍÀº ¾î¼¸é °¡´ÉÄ¡ ¾ÊÀº ÀÏÀ̱⵵ ÇÏ´Ù. ¿¹¸¦ µé¾î¼ ȸ鿡 ¹«¾ð°¡¸¦ ³ªÅ¸³»±â À§Çؼ printf()¶ó´Â ÇÔ¼öºÎÅÍ ¸ÕÀú ÀÛ¼ºÇØ¾ß ÇÑ´Ù¸é ÀÌ´Â ¹®Á¦°¡ ¾Æ´Ò ¼ö ¾ø´Ù. µû¶ó¼ ÄÄÆÄÀÏ·¯¸¦ Á¦°øÇϴ ȸ»ç¿¡¼´Â ÀÌ·¯ÇÑ ÇÔ¼öµé¿¡ ´ëÇØ¼´Â Çѵ¥ ¸ð¾Æ¼ À̸¦ ¶óÀ̺귯¸®ÀÇ ÇüÅ·ΠÁ¦°øÀ» ÇÑ´Ù. µû¶ó¼ ÇÁ·Î±×·¡¸Ó´Â ½ÇÁ¦ ÇÊ¿äÇÑ ¸ðµç ÇÔ¼öµéÀ» Á÷Á¢ ¸¸µé Çʿ䰡 ¾øÀÌ ¶óÀ̺귯¸®¿¡ ÀÖ´Ù¸é ´Ü¼øÇÏ°Ô ºÒ·¯´Ù°¡ »ç¿ëÇÏ¸é µÈ´Ù. ÀÚ¹ÙÀÇ °æ¿ì¿¡´Â ÇÁ·Î±×·¥¿¡¼ ¸¹ÀÌ »ç¿ëµÇ´Â Ŭ·¡½ºµéÀ» Çѵ¥ ¹¾î¼ ÆÐŰÁö¶ó´Â ÇüÅ·ΠÁ¦°øÀ» ÇÑ´Ù. ÀÚ¹ÙÀÇ Å¬·¡½º ÆÐŰÁö¸¦ ºñ·Ï ±â´É»ó¿¡ ¸¹Àº Â÷ÀÌ´Â ÀÖÁö¸¸ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ VC++ÀÇ MFC³ª º¼¶õµå»çÀÇ OWL°ú °°Àº °³³äÀ¸·Î ÀÌÇØ¸¦ Çϸé Å« ¹«¸®´Â ¾øÀ» °ÍÀÌ´Ù.
ÀÚ¹Ù¿¡¼´Â ¼·Î °ü·ÃµÇ´Â Ŭ·¡½ºµéÀ» ¸ð¾Æ¼ ÆÐŰÁö¶ó´Â °ÍÀ¸·Î Á¦°øÇÑ´Ù°í Çߴµ¥, ½ÇÁ¦ JDK 1.0¿¡ µé¾î°¡ Àִ Ŭ·¡½º ÆÐŰÁö¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
À̿ܿ¡µµ ´ÙÀ½°ú °°Àº Ŭ·¡½º ÆÐŰÁöµéÀÌ ÀÖ´Ù.
´ÙÀ½Àº À§¿¡¼ ³ª¿ÇÑ °¢°¢ÀÇ Å¬·¡½º ÆÐŰÁö Áß¿¡¼ ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â Ŭ·¡½ºµé¿¡ ´ëÇØ¼ ±× »ç¿ë¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.
ÀÚ¹Ù ¾ÖÇ÷¿ ÆÐŰÁö¿¡´Â ¾ÖÇ÷¿À» ¸¸µå´Âµ¥ ±âº»ÀÌ µÇ´Â Applet Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. Applet Ŭ·¡½º¿¡¼´Â À̹ÌÁö µ¥ÀÌÅͳª ¿Àµð¿À µ¥ÀÌÅ͸¦ ´Ù·ê ¼ö ÀÖ´Â ÇÔ¼öµéÀ» º°µµ·Î Á¦°øÇÑ´Ù.
½ÇÁ¦ ¾ÖÇ÷¿ ÆÐŰÁö¿¡´Â AppletÀ̶ó´Â Ŭ·¡½ºÀ̿ܿ¡´Â ¾ø´Ù. µû¶ó¼ ¿©±â¿¡¼ AppletÀÇ ¸Þ½îµåµéÀÇ ¾²ÀÓ¼¼¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.
¸ÕÀú ¾ÖÇ÷¿ÀÇ ¶óÀÌÇÁ »çÀÌŬ(»ý¼º, ½ÇÇà, ÆÄ±«)¿¡ °ü°èµÈ ¸Þ½îµåµé¿¡ ´ëÇØ¼ ´ÙÀ½ÀÇ Äڵ带 ÅëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù.
import java.awt.Graphics;
public class Simple extends java.applet.Applet {
public void init() {
System.out.println("Initilize!");
}
public void start() {
System.out.println("Start!");
}
public void stop() {
System.out.println("Stop!");
}
public void destroy() {
System.out.println("Destroy!");
}
public void paint(Graphics g) {
g.drawRect(0, 0, size().width - 1, size().height - 1);
}
ÀÚ¹Ù ¾ÖÇ÷¿ ½ÇÇà °¡´ÉÇÑ ºê¶ó¿ìÁ®°¡ ¾ÖÇ÷¿ÀÌ ´ã°ÜÁ® ÀÖ´Â HTML ¹®¼¸¦ Àоî¿À°Ô µÇ¸é ÇØ´ç ¾ÖÇ÷¿ÀÌ ³×Æ®¿öÅ©³ª ÆÄÀÏ ½Ã½ºÅÛÀ» ÅëÇØ¼ óÀ½À¸·Î ºê¶ó¿ìÁ®¿¡ ·ÎµåµÉ ¶§ ½ÇÇàµÇ´Â ÇÔ¼ö°¡ init()À̶ó´Â ÇÔ¼öÀÌ´Ù. µû¶ó¼ ¿©±â¿¡¼´Â ¾ÖÇ÷¿¿¡¼ ÇÊ¿äÇÑ ÃʱâÈ ÀÛ¾÷µéÀ» Çϱ⿡ ¾Ë¸ÂÀº Àå¼ÒÀÌ´Ù. ÀÌ·¸°Ô init() ÇÔ¼ö°¡ ºÒ·ÁÁö°í ³ ´ÙÀ½¿¡´Â start()¶ó´Â ÇÔ¼ö°¡ ºÒ·ÁÁ®¼ ½ÇÁ¦ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ°Ô²û ÇØÁØ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ÇöÀç ¾ÖÇ÷¿ÀÌ ¼öÇàµÇ°í ÀÖ´Â ÆäÀÌÁö¿¡¼ ´Ù¸¥ ÆäÀÌÁö·Î À̵¿ÇÏ´Â °æ¿ì´Â ¾ÖÇ÷¿ÀÇ ¼öÇàÀ» ¸ØÃß´Â °ÍÀ» ¾Ë·ÁÁÖ±â À§Çؼ stop()À̶ó´Â ÇÔ¼ö°¡ ºÒ·ÁÁø´Ù. µû¶ó¼ stop()¿¡¼´Â ½ÇÁ¦ ¾ÖÇ÷¿ÀÇ µ¿ÀÛÀ¸·Î ¸ØÃß±â À§Çؼ ÇÊ¿äÇÑ ÀÛ¾÷À» ÇØÁØ´Ù. ¸¶Áö¸·À¸·Î ´õ ÀÌ»ó ¾ÖÇ÷¿ÀÌ ÇÊ¿ä ¾ø¾îÁö´Â °æ¿ì¿¡´Â destroy()°¡ ºÒ·ÁÁø´Ù. Âü°í·Î destroy()°¡ ºÒ·ÁÁö±â Àü¿¡ ¹Ýµå½Ã stop()ÀÌ ºÒ·ÁÁö¹Ç·Î, ¾ÖÇ÷¿ ½ÇÇà Áß´Ü¿¡ µû¸¥ ¿©·¯ °¡Áö Ŭ¸°¾÷ ÀÛ¾÷µéÀº ÀϹÝÀûÀ¸·Î stop()¿¡¼ ÇØÁØ´Ù.
´ÙÀ½Àº ½ÇÁ¦ À§ ¸Þ½îµåµéÀÌ ½ÇÁ¦ Äڵ忡¼ ¾î¶»°Ô »ç¿ëµÇ¾îÁö´Â°¡¸¦ TumbleItem.javaÄڵ带 ÅëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù. TumbleItem.javaÄÚµåÀÇ Ã¹ ºÎºÐÀ» º¸¸é ´ÙÀ½°ú °°Àº init()¹®ÀåÀÌ ÀÖ´Ù.
/**
* Initialize the applet. Get attributes.
*/
public void init() {
String at = getParameter("img");
dir = (at != null) ? at : "images/tumble";
at = getParameter("pause");
pause = (at != null) ? Integer.valueOf(at).intValue() : 3900;
at = getParameter("offset");
offset = (at != null) ? Integer.valueOf(at).intValue() : 0;
at = getParameter("speed");
speed = (at != null) ? (1000 / Integer.valueOf(at).intValue()) : 100;
at = getParameter("nimgs");
nimgs = (at != null) ? Integer.valueOf(at).intValue() : 16;
at = getParameter("maxwidth");
maxWidth = (at != null) ? Integer.valueOf(at).intValue() : 0;
}
À§ÀÇ Äڵ忡¼ ÇÏ´Â ÀϵéÀ» °¡¸¸È÷ »ìÆìº¸¸é ³ªÁß¿¡ ¾ÖÇ÷¿¿¡¼ »ç¿ëµÉ º¯¼öµéÀ» getParameter()¶ó´Â ¸Þ½îµå¸¦ ÅëÇØ¼ Àоî¿Í¼ ¼¼ÆÃÇÏ´Â °ÍÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î init()¿¡¼´Â À§¿Í °°ÀÌ ÁÖ·Î ¾ÖÇ÷¿¿¡¼ »ç¿ëÇÒ º¯¼öµéÀ» Ãʱâ¿Í Çϰųª, À̹ÌÁö¿Í ¿Àµð¿À µîÀÇ ¸®¼Ò½ºµéÀ» ¹Ì¸® Àоî¿À´Â ÀÏÀ̳ª, ¾ÖÇ÷¿ÀÇ Å©±â¸¦ ÀçÁ¶Á¤ÇÏ´Â ÀÛ¾÷µéÀ» ¼öÇàÇÑ´Ù. ±× ´ÙÀ½¿¡ start()¹®¿¡ ´ëÇØ¼ TumbleItem.java¿¡¼ »ìÆìº¸±â·Î ÇÑ´Ù.
/**
* Start the applet by forking an animation thread.
*/
public void start() {
if (kicker == null) {
kicker = new Thread(this);
kicker.start();
}
}
ÀϹÝÀûÀ¸·Î start()¹®¿¡¼´Â ¾ÖÇ÷¿ÀÇ µ¿ÀÛ ¼öÇà¿¡ °ü°èµÈ ÀÏÀ» ¼öÇàÇÑ´Ù°í ÇßÀ¸¹Ç·Î, ÀÛ¾÷ ¾²·¹µå¸¦ Çϳª ¸¸µé¾î¼ À̸¦ ¼öÇà½ÃŰ´Â ÄÚµåµéÀÌ ¸¹ÀÌ µé¾î°£´Ù. À§ÀÇ Äڵ忡¼µµ Thread Ŭ·¡½º·Î Á¤ÀÇµÈ kicker°¡ ÇöÀç ¼öÇàÁßÀÌ ¾Æ´Ñ°¡¸¦ °Ë»çÇØ¼(kicker == null), ¼öÇàÁßÀÌ ¾Æ´Ï¸é »õ·Î¿î ¾²·¹µå¸¦ ¸¸µé¾î¼ À̸¦ ½ÇÇà½ÃŰ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¾²·¹µå¿¡ ´ëÇØ¼´Â ³ªÁß¿¡ ÀÚ¼¼È÷ ¼³¸íÇϵµ·Ï ÇÑ´Ù. ±× ´ÙÀ½À¸·Î stop()¿¡ ´ëÇØ¼ TumbleItem.javaÄڵ带 ÅëÇØ¼ »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.
/**
* Stop the applet. The thread will exit because kicker is set to null.
*/
public void stop() {
if (kicker != null) {
kicker.stop();
kicker = null;
}
}
À§ÀÇ stop()¿¡¼´Â ¾ÖÇ÷¿ÀÇ ¼öÇàÀ» ¸ØÃß¾î¾ß ÇϹǷÎ, ½ÇÁ¦ ¼öÇàµÇ°í ÀÖ´Â ¾²·¹µå°¡ ÀÖ´Â °¡¸¦ °Ë»çÇØ¼(kicker != null), ÀÖ´Ù¸é ¾²·¹µåÀÇ ¼öÇàÀ» ÁßÁö½ÃŰ´Â ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
¸¶Áö¸·À¸·Î destroy()¿¡ ´ëÇØ¼´Â ½ÇÁ¦ ¾Æ¹«·± Àϵµ ÇÒ Çʿ䰡 ¾øÀ¸¹Ç·Î Äڵ带 ³ÖÁö ¾Ê¾Ò´Ù. Âü°íÀûÀ¸·Î ½ÇÁ¦ init()À̳ª start(), stop()µî¿¡¼ ¾Æ¹«·± ÀÛ¾÷µµ ÇÒ Çʿ䰡 ¾ø´Â °æ¿ì¿¡´Â ½ÇÁ¦ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏÁö ¾Ê¾Æµµ ¹«¹æÇÏ´Ù.
¾ÖÇ÷¿¿¡¼ À̹ÌÁö¿Í ¿Àµð¿À µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù. ¸ÕÀú À̹ÌÁö µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ¼ »ìÆìº¸¸é ´ÙÀ½°ú °°Àº µÎ °¡Áö ¸Þ½îµå°¡ Á¸ÀçÇÑ´Ù.
Image getImage(URL) Image getImage(URL, String)
ù ¹øÂ° ¹æ¹ýÀº À̹ÌÁöÆÄÀÏ¿¡ ´ëÇÑ ¿ÏÀüÇÑ URLÀ» ±â¼úÇØÁÖ´Â ¹æ¹ýÀÌ°í µÎ ¹øÂ°´Â ¹æ¹ýÀº À̹ÌÁö¿¡ ´ëÇÑ URL°ú ÀÌ¿¡ »ó´ëÀûÀÎ ÆÐ½ºÁ¤º¸¸¦ StringÀ¸·Î ³Ö¾îÁÖ´Â ¹æ¹ýÀÌ´Ù. Âü°íÀûÀ¸·Î ¾ÖÇ÷¿¿¡¼ ¹Ù·Î ´Ù·ê ¼ö ÀÖ´Â À̹ÌÁö Æ÷¸ËÀº gif¿Í jpegÆ÷¸ËÀÇ À̹ÌÁöÀÌ´Ù. ´ÙÀ½Àº ÀÌ¿Í °°Àº ¹æ¹ýÀ» ÅëÇØ¼ À̹ÌÁö¸¦ ³ªÅ¸³»´Â ÄÚµåÀÌ´Ù.
Image img;
public void init()
{
img=getImage(getDocumentBase(), "face.gif") ;
}
public void paint(Graphics g)
{
g.drawImage(img, 20, 10,this);
}
À§ÀÇ Äڵ忡¼ ½ÇÁ¦ À̹ÌÁö¸¦ ȸ鿡 ³ªÅ¸³»´Â ¸Þ½îµå´Â Graphics Ŭ·¡½ºÀÇ drawImage()ÀÌ´Ù.
¾ÖÇ÷¿¿¡¼ ¿Àµð¿À¸¦ ´Ù·ç´Â ¹æ¹ýÀº µÎ°¡Áö ¹æ¹ýÀÌ ÀÖÀ¸¸ç auÆ÷¸ËÀÇ ¿Àµð¿À¸¸À» Ç÷¹ÀÌ ÇÒ ¼ö ÀÖ´Ù. ¸ÕÀú ¼Ò¸®¸¦ ³»°í ½ÍÀº Àå¼Ò¿¡¼ ´ÙÀ½°ú °°Àº Äڵ带 ³Ö¾îÁÖ¸é URL·Î ÁöÁ¤µÈ ¿Àµð¿À µ¥ÀÌÅͰ¡ Ç÷¹ÀÌ µÈ´Ù.
play(URL) play(URL, String)
´ÙÀ½ÀÇ ¹æ¹ýÀº AudioClipÀ̶ó´Â ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ¸·Î ¿Àµð¿À µ¥ÀÌÅ͸¦ Àоî¿Í¼ ÇØ´ç ¸Þ½îµå¸¦ »ç¿ëÇØ¼ Ç÷¹ÀÌÇϰųª ¸ØÃß´Â ¹æ¹ýÀÌ ÀÖ´Ù.
AudioClip snd=getAudioClip(URL) AudioClip snd=getAudioClip(URL, String) snd.play() snd.stop() snd.loop()
java.awt.BorderLayout (implements java.awt.LayoutManager)
java.awt.CardLayout (implements java.awt.LayoutManager)
java.awt.CheckboxGroup
java.awt.Color
java.awt.Component (implements java.awt.image.ImageObserver)
java.awt.Button
java.awt.Canvas
java.awt.Checkbox
java.awt.Choice
java.awt.Container
java.awt.Panel
java.applet.Applet (java.Applet ÆÐŰÁö)
java.awt.Window
java.awt.Dialog
java.awt.FileDialog
java.awt.Frame (implements java.awt.MenuContainer)
java.awt.Label
java.awt.List
java.awt.Scrollbar
java.awt.TextComponent
java.awt.TextArea
java.awt.TextField
java.awt.Dimension
java.awt.Event
java.awt.FlowLayout (implements java.awt.LayoutManager)
java.awt.Font
java.awt.FontMetrics
java.awt.Graphics
java.awt.GridBagConstraints (implements java.lang.Cloneable)
java.awt.GridBagLayout (implements java.awt.LayoutManager)
java.awt.GridLayout (implements java.awt.LayoutManager)
java.awt.Image
java.awt.Insets (implements java.lang.Cloneable)
java.awt.MediaTracker
java.awt.MenuComponent
java.awt.MenuBar (implements java.awt.MenuContainer)
java.awt.MenuItem
java.awt.CheckboxMenuItem
java.awt.Menu (implements java.awt.MenuContainer)
java.awt.Point
java.awt.Polygon
java.awt.Rectangle
java.awt.Toolkit
AWT ÆÐŰÁö¿¡´Â GUI¿¡ °ü·ÃµÈ Ŭ·¡½ºµéÀÌ µé¾î°¡ ÀÖ´Ù. AWT´Â ±âº»ÀûÀ¸·Î °³º°ÀûÀÎ UI ¿ä¼ÒµéÀ» Ç¥ÇöÇÏ´Â Component Ŭ·¡½ºµé°ú À̵éÀ» Çѵ¥ ¹À» ¼ö ÀÖ´Â Container¶ó´Â Ŭ·¡½ºµéÀÌ Á¦°øÀÌ µÈ´Ù. ÀÌ·¯ÇÑ °ü°è¿¡¼ Container´Â ´Ù½Ã ÇϳªÀÇ Component·Î Ãë±ÞµÇ¾îÁú ¼ö ÀÖ´Ù. À̴ Ŭ·¡½º°£ÀÇ »ó°ü °ü°è¿¡¼µµ Ç¥ÇöÀÌ µÇ´Â °ÍÀ¸·Î Container Ŭ·¡½º°¡ Component Ŭ·¡½ºÀÇ ÀÚ½Ä Å¬·¡½ºÀÓÀ» À§ÀÇ Ç¥¸¦ ÅëÇØ¼ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¶ÇÇÑ Container¿¡ ComponentµéÀ» ¹èÄ¡Çϱâ À§Çؼ LayoutManager Ŭ·¡½ºµéÀÌ Á¦°øµÇ¾îÁ®¼ ¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î ComponentµéÀ» À§Ä¡½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù.
´ÙÀ½Àº AWT¿¡¼ Á¦°øÇÏ´Â ÄÁÅ×À̳ÊÀÇ Á¾·ùµéÀÌ´Ù.
| Window | »óÀ§ ·¹º§ÀÇ À©µµ·Î °æ°è¼±À» °¡ÁöÁö ¾Ê´Â´Ù. |
| Frame | °æ°è¼±°ú Á¦¸ñ, MenuBar¸¦ °¡Áú ¼ö ÀÖ´Â »óÀ§ ·¹º§ À©µµ·Î ÀϹÝÀûÀÎ ÀÚ¹Ù ¾îÇø®ÄÉÀ̼ÇÀÇ º£À̽º Ŭ·¡½º·Î »ç¿ëµÈ´Ù. |
| Dialog | ´ëÈ»óÀÚ¸¦ ¸¸µå´Âµ¥ »ç¿ëµÇ¾îÁö´Â À©µµÀÌ´Ù. |
| FileDialog | ÆÄÀÏ ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ÆÄÀÏÀ» ¼±ÅÃÇϴµ¥ »ç¿ëµÇ¾îÁö´Â À©µµÀÌ´Ù. |
| Panel | ´Ù¸¥ ÄÁÅ×À̳ÊÀÇ ³»ºÎ¿¡¼ »ç¿ëµÇÁú ¼ö ÀÖ´Â ÄÁÅÍÀÌ³Ê (AppletÀÇ »óÀ§ Ŭ·¡½ºÀÌ´Ù). |
´ÙÀ½Àº AWT¿¡¼ Á¦°øÇÏ´Â ÄÄÆ÷³ÍÆ®ÀÇ Á¾·ùµéÀÌ´Ù.
| Button | ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â ´©¸§(push) ¹öư |
| Canvas | ÆäÀÎÆ®¸¦ Çϰųª »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» °¡·Îä´Âµ¥ »ç¿ëµÇ¸ç, »ç¿ëÀÚ Á¤ÀÇ ÄÄÆ÷³ÍÆ®¸¦ ¸¸µå´Âµ¥ º£À̽º Ŭ·¡½º·Î »ç¿ëµÇ´Â ÀϹÝÀûÀÎ ¸ñÀûÀÇ ÄÄÆ÷³ÍÆ® |
| CheckBox | on/off »óŸ¦ °¡Áö´Â ÄÄÆ÷³ÍÆ® |
| Label | ÀÓÀÇÀÇ À§Ä¡¿¡ ¹®ÀÚ¿À» ³ªÅ¸³»´Â ÄÄÆ÷³ÍÆ® |
| List | ½ºÅ©·Ñ °¡´ÉÇÑ ½ºÆ®¸µµéÀÇ ¸®½ºÆ® |
| Scrollbar | ½ºÅ©·Ñ °¡´ÉÇÑ Äµ¹ö½º¸¦ ¸¸µå´Âµ¥ »ç¿ëµÇ¾îÁö´Â ÄÄÆ÷³ÍÆ® |
| TextArea | °£´ÜÇÑ ÅØ½ºÆ®-ÆíÁý ÄÄÆ÷³ÍÆ® |
| TextField | ¾ç½ÄÀ» ¸¸µå´Âµ¥ »ç¿ëµÇ¾îÁö´Â ÇÑÁÙÂ¥¸® ÅØ½ºÆ® ÄÄÆ÷³ÍÆ® |
¿©±â¿¡¼ Component¿Í ContainerÀÇ ÁÖ¿ä ¸Þ½îµå µîÀ» »ìÆìº¸±â·Î ÇÑ´Ù. ¸ÕÀú ContainerÀÇ °æ¿ì¿¡ ´ÙÀ½°ú °°Àº ¸Þ½îµåµéÀÌ Á¸ÀçÇÑ´Ù.
| add(Component cmp) | ÁöÁ¤µÈ ÄÄÆ÷³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡½ÃŲ´Ù. |
| add(String str, Component cmp) | ÁöÁ¤µÈ ÄÄÆ÷³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡½Ã۸é¼, ÁÖ¾îÁø ½ºÆ®¸µÀ¸·Î À̸§À» ºÙÀδÙ. |
| remove(Component cmp) | ÁöÁ¤µÈ ÄÄÆ÷³ÍÆ®¸¦ ÄÁÅÍÀ̳ʿ¡¼ »èÁ¦½ÃŲ´Ù. |
| removeAll() | ÄÁÅÍÀ̳ʳ»ÀÇ ¸ðµç ÄÄÆ÷³ÍÆ®µéÀ» »èÁ¦½ÃŲ´Ù. |
| getComponents() | ÄÁÅ×À̳ʳ»ÀÇ ¸ðµç ÄÄÆ÷³ÍÆ®µéÀ» °¡Á®¿Â´Ù. |
| setLayout(LayoutManager lm) | ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ ¹èÄ¡ °ü¸®ÀÚ¸¦ ¼¼ÆÃÇÑ´Ù. |
| getLayout() | ÇöÀç ÄÁÅ×À̳ʿ¡¼ ä¿ëÇϰí ÀÖ´Â ¹èÄ¡ °ü¸®ÀÚ Á¤º¸¸¦ °¡Á®¿Â´Ù. |
À§¿Í °°Àº ¸Þ½îµå À̿ܿ¡µµ ÄÄÆ÷³ÍÆ®¿¡¼ Á¤ÀÇµÈ ¸ðµç ¸Þ½îµå¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. ´ÙÀ½Àº ÄÄÆ÷³ÍÆ®¿¡¼ Á¤ÀÇµÈ ¸Þ½îµåµéÀ» »ìÆìº¸±â·Î ÇÑ´Ù.
| action(Event, Object) | ÄÄÆ÷³ÍÆ® ³»¿¡¼ ¾×¼ÇÀÌ ÀϾ´Â °æ¿ì¿¡ ºÒ·ÁÁø´Ù. |
| disable() | ÄÄÆ÷³ÍÆ®¸¦ ºñȰ¼ºÈ½ÃŲ´Ù. |
| enable() | ÄÄÆ÷³ÍÆ®¸¦ Ȱ¼ºÈ½ÃŲ´Ù. |
| handleEvent(Event) | ÄÄÆ÷³ÍÆ® ³»¿¡¼ ¹ß»ýÇÑ À̺¥Æ®¸¦ ó¸®ÇÑ´Ù. |
| hide() | ÄÄÆ÷³ÍÆ®¸¦ ¼û±ä´Ù. |
| keyDown(Event, int) | ۰¡ ´¸®¾îÁ³À» ¶§ ºÒ·ÁÁø´Ù. |
| keyUp(Event, int) | ۰¡ ´¸®¾îÁ³´Ù°¡ ¶ç¾îÁú ¶§ ºÒ·ÁÁø´Ù. |
| mouseDown(Event, int, int) | ¸¶¿ì½º¹öưÀÌ ´¸®¾îÁ³À» ¶§ ºÒ·ÁÁø´Ù. |
| mouseDrag(Event, int, int) | ¸¶¿ì½º¹öưÀÌ ´¸®¾îÁø ä·Î À̵¿µÉ ¶§ ºÒ·ÁÁø´Ù. |
| mouseEnter(Event, int, int) | ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ®ÀÇ ¿µ¿ª¿¡ µé¾î¿ÔÀ» °æ¿ì¿¡ ºÒ·ÁÁø´Ù. |
| mouseExit(Event, int, int) | ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ®ÀÇ ¿µ¿ª¿¡¼ ºüÁ®³ª°¥ ¶§ ºÒ·ÁÁø´Ù. |
| mouseMove(Event, int, int) | ¸¶¿ì½º ¹öưÀÌ ´¸®¾îÁöÁö ¾ÊÀº »óÅ¿¡¼ ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¿òÁ÷ÀÏ ¶§ ºÒ·ÁÁø´Ù. |
| mouseUp(Event, int, int) | ¸¶¿ì½º ¹öưÀÌ ´¸®¿öÁ³´Ù´Ù°¡ ¿ø»óÅ·ΠµÉ ¶§ ºÒ·ÁÁø´Ù. |
| move(int, int) | ÄÄÆ÷³ÍÆ®¸¦ »õ·Î¿î À§Ä¡·Î À̵¿½ÃŲ´Ù. |
| show() | ÄÄÆ÷³ÍÆ®¸¦ ³ªÅ¸³´Ù. |
| paint(Graphics) | ÄÄÆ÷³ÍÆ®°¡ »õ·Î ±×·ÁÁ®¾ß ÇÏ´Â °æ¿ì¿¡ ºÒ·ÁÁø´Ù. |
| repaint() | ÄÄÆ÷³ÍÆ®¸¦ »õ·Î ±×¸®µµ·Ï ¿äûÇÑ´Ù. |
| update(Graphics) | repaint ¿äûÀÌ µé¾î¿À´Â °æ¿ì¿¡ ºÒ·ÁÁö´Â °ÍÀ¸·Î ¿©±â¿¡¼´Â ±âº»ÀûÀ¸·Î paint()¸¦ ºÎ¸¥´Ù. |
import java.awt.*;
public class MyApp extends Frame
{
// "final" variables are constants
static final int H_SIZE = 300;
static final int V_SIZE = 200;
public MyApp()
{
super("My First Application");
Panel p = new Panel();
p.add(new Button("Ok"));
p.add(new Button("Cancel"));
add("South", p);
pack();
resize(H_SIZE, V_SIZE);
show();
}
public static void main(String args[])
{
new MyApp();
}
}
Button button;
button = new Button("OK");
add(button);
Choice SelectOne = new Choice();
SelectOne.addItem("Seoul");
SelectOne.addItem("Pusan");
SelectOne.addItem("daejeon");
add(SelectOne);
CheckBoxGroup cbgrp = new CheckBoxGroup();
CheckBox chk1= new CheckBox("company", cbgrp, ture);
CheckBox chk2= new CheckBox("school", cbgrp, false);
CheckBox chk3= new CheckBox("org", cbgrp, false);
add (chk1);
add (chk2);
add (chk3);
Label l1 = new Label("Welcome to the Workshop!");
add (l1);
List lst = new List(3, false);
lst.addItem("Company");
lst.addItem("School");
lst.addItem("Org");
add(lst);
TextField tf = new TextField(15); TextArea ta = new TextArea(3, 4); add(tf); add(ta);
Scrollbar sb = new Scrollbar(Scrollbar.VERTICAL, 0, 32, 0, 128); // orientation, initial value, visible size, min, max add(ab);
button1 = new Button("1");
button2 = new Button("2");
button3 = new Button("3");
add(button1);
add(button2);
add(button3);
setLayout(new BorderLayout());
button1 = new Button("1");
button2 = new Button("2");
button3 = new Button("3");
button4 = new Button("4");
button5 = new Button("5");
add("North", button1);
add("East", button2);
add("South", button3);
add("West", button4);
add("Center", button5);
setLayout(new GridLayout(2,3));
button1 = new Button("1");
button2 = new Button("2");
button3 = new Button("3");
button4 = new Button("4");
button5 = new Button("5");
button6 = new Button("6");
add(button1);
add(button2);
add(button3);
add(button4);
add(button5);
add(button6);
À̹ø¿¡´Â À̺¥Æ®ÀÇ Ã³¸®¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇÑ´Ù. ÀϹÝÀûÀ¸·Î À̺¥Æ®(Event)¸¦ ó¸®ÇÏ´Â °æ¿ì°¡ Űº¸µå¿Í ¸¶¿ì½º ±×¸®°í GUI°¡ °ü·ÃµÇ¾îÁ® ÀÖ´Ù. ¸ðµç À̺¥Æ®µéÀº handleEvent(Event evt)¿¡¼ 󸮵ǾîÁ® Áö´Âµ¥, ¸î¸î À̺¥Æ®ÀÇ °æ¿ì¿¡´Â ¹Ì¸® Á¤ÀÇµÈ Çڵ鷯 ·çƾµéÀÌ Á¸ÀçÇÑ´Ù.
Űº¸µå °ü·Ã À̺¥Æ®ÀÇ Ã³¸®´Â KeyDown()°ú KeyUp()¿¡¼ ó¸®Çϸç, ¸¶¿ì½º °ü·Ã À̺¥Æ®´Â mouseXYZ()¿Í °°Àº ÇüÅÂÀÇ À̺¥Æ® ·çƾ¿¡¼ ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç, GUI À̺¥Æ®´Â action()¿¡¼ 󸮵ǾîÁú ¼ö ÀÖ´Ù.
´ÙÀ½ÀÇ ÄÚµå´Â ŰÀÔ·ÂÀ» ó¸®ÇÏ´Â µÎ °¡Áö ¹æ¹ý¿¡ ´ëÇØ¼ º¸¿©ÁØ´Ù.
public boolean keyDown(Event evt, int key)
{
Sytem.out.println(key);
return false;
}
public boolean handleEvent(Event evt)
{
switch(evt.id)
{
case Event.KEY_PRESS:
{
System.out.println(evt.key);
return true;
}
default:
return false;
}
}
´ÙÀ½ÀÇ ÄÚµå´Â ¹öưÀ̳ª ¸Þ´º¾ÆÀÌÅÒ¿¡ ´ëÇÑ À̺¥Æ® ó¸® ·çƾÀ» º¸¿©ÁØ´Ù.
public boolean action(Event evt, Object arg)
{
if(evt.target instanceof Button)
{
if("OK".equals(arg))
...
return true;
}
else if(evt.target instanceof MenuItem)
{
if("File".equals(arg))
...
return true;
}
return false;
}
java.util.BitSet (implements java.lang.Cloneable)
java.util.Date
java.util.Dictionary
java.util.Hashtable (implements java.lang.Cloneable)
java.util.Properties
java.util.Observable
java.util.Random
java.util.StringTokenizer (implements java.util.Enumeration)
java.util.Vector (implements java.lang.Cloneable)
java.util.Stack
ÀÚ¹Ù À¯Æ¿¸®Æ¼ ÆÐŰÁö¿¡´Â ÀÚ¹Ù ÇÁ·Î±×·¥ ½Ã¿¡ »ç¿ëµÇ¾îÁö´Â ¿©·¯ °¡Áö À¯Æ¿¸®Æ¼µéÀÌ µé¾î°¡ ÀÖ´Ù. ÁÖ¿äÇÑ Å¬·¡½ºµé·Î´Â ½Ã°£À» ´Ù·ê ¼ö ÀÖ´Â Date Ŭ·¡½º¿Í ۸¦ °¡Áö°í °ªÀ» °¡Á®¿À´Â Dictionary, HashtableÀÌ ÀÖ°í, ÀÓÀÇÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ´Â VectorŬ·¡½º¿Í ½ºÅÿ¡ °üÇÑ Stack, ·£´ý °ªÀÌ °ü°èµÈ Random°ª°ú ½ºÆ®¸µ¿¡ ÀÖ´Â ÅäÅ«µéÀ» ºÐ¸®Çس»´Â StringTokenizer Ŭ·¡½º µîÀÌ µé¾î°¡ ÀÖ´Ù. ´ÙÀ½Àº ÁÖ¿ä À¯Æ¿¸®Æ¼ Ŭ·¡½ºµéÀÇ »ç¿ë¹ý¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù.
import java.util.Date;
class printDate {
public static void main(String args[])
{
Date today = new Date();
System.out.println(today);
System.out.println("Year "+today.getYear());
System.out.println("Month "+today.getMonth()); // 0 - 11
System.out.println("Date "+today.getDate()); // 1 - 31
System.out.println("Day "+today.getDay()); // 0 -6
}
}
import java.util.StringTokenizer;
class STokTest {
public static void main(String args[])
{
String s = "this is a sample text";
StringTokenizer st = new StringTokenizer(s);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
| boolean empty() | ½ºÅÃÀÌ ºñ¾îÀִ°¡¸¦ üũÇÑ´Ù. |
| Object peek() | ½ºÅÃÀÇ ¸Ç À§¿¡ ÀÖ´Â ³»¿ëÀ» »ìÆìº»´Ù. |
| Object pop() | ½ºÅÿ¡¼ ¿ÀºêÁ§Æ®¸¦ Çϳª °¡Á®¿Â´Ù. |
| Object push(Object) | ½ºÅÿ¡ ¿ÀºêÁ§Æ² Çϳª Ãß°¡ÇÑ´Ù. |
| int search(Object) | ½ºÅÿ¡ ƯÁ¤ ¿ÀºêÁ§Æ®°¡ ÀÖ´Â °¡¸¦ °Ë»çÇØ¼ ±× À§Ä¡¸¦ ¾Ë·ÁÁØ´Ù. |
java.lang.Boolean
java.lang.Character
java.lang.Class
java.lang.ClassLoader
java.lang.Compiler
java.lang.Math
java.lang.Number
java.lang.Double
java.lang.Float
java.lang.Integer
java.lang.Long
java.lang.Process
java.lang.Runtime
java.lang.SecurityManager
java.lang.String
java.lang.StringBuffer
java.lang.System
java.lang.Thread (implements java.lang.Runnable)
java.lang.ThreadGroup
java.lang.Throwable
ÀÚ¹Ù ¾ð¾î ÆÐŰÁö ³»¿¡´Â ÀÚ¹ÙÀÇ ¸ðµç Ŭ·¡½ºµéÀÇ ±âº»ÀÌ µÇ´Â ObjectŬ·¡½º¸¦ ºñ·ÔÇÏ¿©, ±âº» µ¥ÀÌÅÍ Å¸ÀÔ¿¡ °ü·ÃµÈ Ŭ·¡½ºµé, Integer, Long, Float, DoubleµîÀÌ Å¬·¡½ºµéÀÌ Á¸ÀçÇÑ´Ù. ¶ÇÇÑ »ó¼ö ½ºÆ®¸µÀ» ´Ù·ç±â À§ÇÑ String Ŭ·¡½º¿Í °ª°ú Å©±â°¡ º¯ÇÏ´Â ½ºÆ®¸µÀ» ´Ù·ç±â À§ÇÑ StringBufferŬ·¡½º°¡ µé¾î°¡ ÀÖÀ¸¸ç, SystemÀ̶ó´Â Ŭ·¡½º°¡ µé¾î°¡ ÀÖ¾î¼ ÀϹÝÀûÀÎ ÀÔÃâ·Â¿¡ °ü·ÃµÈ ¸Þ½îµåµéÀÌ ¸ð¾ÆÁ® ÀÖ´Ù. ±×¸®°í ¼öÇÐÀûÀÎ ÇÔ¼öµéÀ» Çѵ¥ ¸ð¾Æ³õÀº Math¶ó´Â Ŭ·¡½º°¡ ÀÖ¾î¼ ¿©·¯ °¡Áö ¼öÇÐÇÔ¼öµéÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. ¶ÇÇÑ ¾²·¹µå 󸮸¦ À§ÇÑ Thread Ŭ·¡½º°¡ µé¾î°¡ ÀÖ´Ù. ½Ã½ºÅÛ ¸í·É¾îµéÀ» ½ÇÇà½Ã۱â À§ÇÑ RumtimeŬ·¡½º µîÀÌ Á¦°øµÇ¾î¼ ÀÚ¹Ù ¾îÇø®ÄÉÀ̼dz»¿¡¼ ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» È£ÃâÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ´ÙÀ½Àº ÁÖ¿äÇÑ Å¬·¡½ºµé¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù.
String Ŭ·¡½º´Â ÇÁ·Î±×·¥ ³»¿¡¼ ±× ³»¿ëÀÌ º¯ÇÏÁö ¾Ê´Â ¹®ÀÚ¿À» ´Ù·ê ¶§ »ç¿ëÇϸç, StringBuffer´Â ¹®ÀÚ¿ÀÇ ³»¿ëÀÌ º¯°æµÇ´Â °æ¿ì¿¡ »ç¿ëµÇ¾îÁø´Ù. ´ÙÀ½Àº String/StringBuffer Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ¸¸µå´Â ¹æ¹ýÀÌ´Ù.
String s1 = new String("WWW-KR");
String s2 = new String(" 3rd Workdshop");
StringBuffer sb = new StringBuffer("Welcome!");
class Reverse{
public static String reverse(String src) {
int i, len = src.length();
StringBuffer dest=new StringBuffer(len);
for (i=(len-1); i >=0; i--)
dest.append(src.charAt(i));
}
return dest.toString();
}
}
Math Ŭ·¡½º´Â ´Ù¸¥ Ŭ·¡½ºµé°ú´Â ´Þ¸® ¸ðµç ¸Þ½îµå¿Í º¯¼öµéÀÌ staticÀ¸·Î ¼±¾ðµÇ¾îÁ® ÀÖ´Ù. µû¶ó¼ new ¿¬»êÀÚ¸¦ ÅëÇØ¼ ÀνºÅϽº¸¦ »õ·ÎÀÌ ¸¸µé ¼ö°¡ ¾ø´Ù. Math Ŭ·¡½º¿¡¼ Áö¿øÇÏ´Â ¼öÇнÄÀ¸·Î´Â abs, sin, cos, tan, asin, acos, atan, atan2, exp, log, sqrt, ceil, floor, rint, pow, round, random, max, minÀÌ ÀÖÀ¸¸ç, Math.E¿Í Math.PI°¡ Á¦°øµÈ´Ù.
import java.lang.*;
import java.io.*;
class MathTest{
public static void main(String args[])
{
int i;
i = Math.max((int)25, (int)12);
double rnd;
rnd =Math.random();
i = Math.pow((doubel)3, (double)4);
}
}
import java.lang.Runtime;
import java.io.*;
class RunNote{
public static void main(String args[])
{
try
{
Runtime rt=Runtime.getRuntime();
rt.exec("notepad");
} catch (IOException e)
{
System.out.println("Error!");
}
}
}
java.io.File
java.io.FileDescriptor
java.io.InputStream
java.io.ByteArrayInputStream
java.io.FileInputStream
java.io.FilterInputStream
java.io.BufferedInputStream
java.io.DataInputStream (implements java.io.DataInput)
java.io.LineNumberInputStream
java.io.PushbackInputStream
java.io.PipedInputStream
java.io.SequenceInputStream
java.io.StringBufferInputStream
java.io.OutputStream
java.io.ByteArrayOutputStream
java.io.FileOutputStream
java.io.FilterOutputStream
java.io.BufferedOutputStream
java.io.DataOutputStream (implements java.io.DataOutput)
java.io.PrintStream
java.io.PipedOutputStream
java.io.RandomAccessFile (implements java.io.DataOutput, java.io.DataInput)
java.io.StreamTokenizer
ÀÚ¹Ù ÀÔÃâ·Â ÆÐŰÁö´Â C++ÀÇ iostreams°ú À¯»çÇÑ ±¸Á¶·Î ¼³°èµÇ¾îÁ® ÀÖ´Ù. ÀÌ ¾È¿¡´Â ÆÄÀÏÀ» ´Ù·ç±â À§ÇÑ File °ü·Ã Ŭ·¡½ºµéÀÌ µé¾î°¡ ÀÖ°í, ÀÔ·Â ½ºÆ®¸²À» ´Ù·ç´Â InputStream°ü·Ã Ŭ·¡½ºµé, Ãâ·Â ½ºÆ®¸²À» ´Ù·ç´Â OutputStreamµîÀÌ µé¾î°¡ ÀÖ´Ù. ¶ÇÇÑ ·£´ý ÆÄÀÏ ¾ï¼¼½º¸¦ À§ÇÑ RamdonAccessFileÀ̶ó´Â Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. ¶ÇÇÑ ½ºÆ®¸²¿¡¼ ÅäÅ«À» »Ì¾Æ³»´Â StreamTokenizer Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù.
ÀÚ¹Ù¿¡¼ »ç¿ëµÇ´Â Ç¥ÁØ ÀÔÃâ·Â¹æ¹ý¿¡ ´ëÇØ¼ »ìÆìº¸¸é ÀÌ´Â java.lang.System Ŭ·¡½º¸¦ ÅëÇØ¼ ÀÌ·ç¾îÁø´Ù. Ç¥ÁØ ÀÔ·Â(stdin)ÀÇ °æ¿ì¿¡ À̴ Űº¸µå¸¦ ´ë»óÀ¸·Î ÇÏ´Â °ÍÀ¸·Î System.inÀÌ »ç¿ëµÇ¾îÁö¸ç ÀÌ´Â InputStreamÀÇ ÇÑ ÀνºÅϽº·Î¼ µ¥ÀÌÅ͸¦ Àд read() ¸Þ½îµå¿Í ÀԷ½ºÆ®¸²¿¡¼ ¸î ¹ÙÀÌÆ®¸¦ ¶Ù¾î³Ñ´Â skip() ¸Þ½îµå¸¦ Á¦°øÇÑ´Ù. Ç¥ÁØ Ãâ·Â(stdout)°ú ¿¡·¯(stderr)¿¡ ´ëÇØ¼´Â °¢°¢ system.out°ú System.errÀÌ »ç¿ëµÇ´Âµ¥ ÀÌ´Â PrintSreamÀ» °¡Áö°í ±¸ÇöµÇ¾îÁø °ÍÀ¸·Î Å͹̳Π½ºÅ©¸° »óÀ¸·Î Ãâ·ÂÇϰԲû µÇ¾îÁ® ÀÖ´Ù. ¿©±â¿¡¼´Â print()¿Í println()°ú °°Àº ¸Þ½îµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â Ç¥ÁØ ÀÔÃâ·ÂÀ» ´Ù·ç´Â »ùÇà ÄÚµåÀÌ´Ù.
import java.io.*;
public class SIO
{
public static void main(String args[])
{
int ch;
while ((ch=System.in.read()) != -1)
{
System.out.print((char)ch);
}
System.out.println();
}
}
±× ´ÙÀ½À¸·Î File Ŭ·¡½º¿¡ ´ëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù. io ÆÐŰÁö¿¡ ÀÖ´Â File Ŭ·¡½º´Â ÆÄÀÏ¿¡ °üÇÑ ±âº»ÀûÀÎ Á¤º¸¸¦ Á¦°øÇØÁִ Ŭ·¡½ºÀÌ´Ù. °¡·É Å©±â³ª ¸¸µé¾îÁø ³¯Â¥ µî ÆÄÀÏ ÀÚü¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â °ÍÀ¸·Î, ÀÌ´Â ½ÇÁ¦ ÆÄÀÏ ÀÔÃâ·ÂÇϰí´Â Á÷Á¢ÀûÀÎ °ü°è°¡ ¾ø´Ù. ½ÇÁ¦ File Ŭ·¡½º¸¦ ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
File docfile = new File("c:\doc\report.doc");
File docfile = new File("report.doc");
File dir = new File("c:\doc");
| String getName() | ÆÄÀÏÀÇ À̸§À» °¡Á®¿Â´Ù |
| String getPath() | ÆÄÀÏÀÇ °æ·Î¸¦ °¡Á®¿Â´Ù |
| String getAbsolutePath() | ÆÄÀÏÀÇ Àý´ë °æ·Î¸¦ °¡Á®¿Â´Ù |
| String getParent() | ºÎ¸ð µð·ºÅ丮¸¦ °¡Á®¿Â´Ù |
| boolean canRead() | ÆÄÀÏÀ» ÀÐÀ» ¼ö°¡ Àִ±⠰˻çÇÑ´Ù |
| boolean canWrite() | ÆÄÀÏ¿¡ ¾µ¼ö°¡ Àִ°¡¸¦ °Ë»çÇÑ´Ù |
| boolean exists() | ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °¡¸¦ °Ë»çÇÑ´Ù |
| boolean isFile() | ÆÄÀÏÀΰ¡¸¦ °Ë»çÇÑ´Ù |
| boolean isDirectory() | µð·ºÅ丮Àΰ¡¸¦ °Ë»çÇÑ´Ù |
| boolean isAbsolute() | Àý´ë °æ·Î Àΰ¡¸¦ °Ë»çÇÑ´Ù |
| boolean renameTo(File dest) | ÆÄÀÏ À̸§À» ´Ù¸¥ À̸§À¸·Î º¯°æÇÑ´Ù |
| boolean delete() | ÆÄÀÏÀ» »èÁ¦ÇÑ´Ù |
| long lastModified() | ÃÖ±Ù º¯°æÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³½´Ù |
| long length() | ÆÄÀÏÀÇ ±æÀÌ¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³½´Ù |
| String toString() | ÆÄÀÏÀ̸§À» String ŸÀÔÀ¸·Î º¯È¯ÇÑ´Ù |
| String[] list() | µð·ºÅ丮ÀÇ ³»¿ëÀ» ¸®½ºÆÃÇÑ´Ù |
| boolean mkdir() | »õ·Î¿î µð·ºÅ丮¸¦ ¸¸µç´Ù |
´ÙÀ½Àº ÀÔ·Â ½ºÆ®¸²¿¡ ´ëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù. ÀÔ·Â ½ºÆ®¸²Àº ÀÔ·Â ¼Ò½º·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿À´Âµ¥, ÀԷ¼ҽº·Î´Â ÆÄÀÏÀ̳ª ½ºÆ®¸µ ¶Ç´Â ¸Þ¸ð¸® µîÀÌ ¿Ã ¼ö ÀÖ´Ù. ¸ðµç ÀÔ·Â ½ºÆ®¸²Àº InputStream Ŭ·¡½º¿¡¼ ÆÄ»ýµÇ¾îÁø´Ù. ´ÙÀ½Àº InputSteam¿¡¼ Á¤ÀÇµÈ ¸Þ½îµéÀÌ´Ù.
| available() | ºí·ÏÅ·ÀÌ µÇÁö ¾Ê°í ÀÐÀ» ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ °³¼ö¸¦ ³Ñ°ÜÁØ´Ù |
| close() | ÀÔ·Â ½ºÆ®¸²À» ´Ý´Â´Ù |
| mark(int) | ÀÔ·Â ½ºÆ®¸²³»ÀÇ ÇöÀç À§Ä¡¿¡ Ç¥½Ã¸¦ ÇØµÐ´Ù |
| markSupported() | ÀÔ·Â ½ºÆ®¸²ÀÌ ¸¶Å©/¸®¼ÂÀ» Áö¿øÇÏ´Â °¡¸¦ ÆÇº°ÇÑ´Ù |
| read() | ÇÑ ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¦ Àоî¿Â´Ù |
| read(byte[]) | ¹ÙÀÌÆ® ¹è¿·Î µ¥ÀÌÅ͸¦ Àоî¿Â´Ù |
| read(byte[], int offset, int length) | ÁöÁ¤µÈ À§Ä¡¿¡¼ ÁöÁ¤ÇÑ ¼ö ¸¸Å µ¥ÀÌÅ͸¦ Àоî¿Â´Ù |
| reset() | ÃÖ±Ù¿¡ ¸¶Å©µÈ À§Ä¡·Î ½ºÆ®¸²À» ÀçÀ§Ä¡½ÃŲ´Ù |
| skip(long) | ÁöÁ¤ÇÑ ¹ÙÀÌÆ® ¼ö¸¸Å ½ºÅµÇÑ´Ù |
ÁÖ¿äÇÑ InputStreamÀÇ ÆÄ»ý Ŭ·¡½ºµé¿¡ ´ëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù. ¸ÕÀú ÆÄÀÏ ÀÔÃâ·ÂÀ» ´Ù·ç´Â °æ¿ì¿¡´Â FileInputStreamÀ» »ç¿ëÇÑ´Ù. ÀÌ´Â ¼øÂ÷ÀûÀÎ ¹æ¹ýÀ¸·Î ÇÑ ¹ÙÀÌÆ®¾¿ ÆÄÀÏ¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¼ö°¡ ÀÖ´Ù. ÆÄÀÏ¿¡ ´ëÇØ¼ FileInputStreamÀ» ¿©´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
File doc=new File("report.txt");
FileInputStream docFile = new FileInputStream(doc);
FileInputStream docfile = new FileInputStream("report.txt");
À§¿Í °°Àº ¹æ¹ýÀ¸·Î »ý¼ºÇÑ ½ºÆ®¸²¿¡ ´ëÇÑ Àбâ´Â À§ÀÇ InputStream¿¡¼ Á¤ÀÇÇÑ ¸Þ½îµåµéÀ» ÅëÇØ¼ ÇÒ ¼ö°¡ ÀÖ´Ù. ÀÔ·ÂÀÌ ³¡³ ½ºÆ®¸²¿¡ ´ëÇØ¼´Â close() ¸Þ½îµå¸¦ ÅëÇØ¼ ¸í½ÃÀûÀ¸·Î ½ºÆ®¸²À» ´ÝÀ» ¼öµµ ÀÖ°í ¶Ç´Â ½Ã½ºÅÛÀÇ °¡ºñÁö ÄÝ·¢ÅÍ¿¡ ÀÇÇØ¼ ÀÚµ¿ÀûÀ¸·Î ´ÝÈ÷´Â ¹æ¹ýÀÌ ÀÖ´Ù.
±× ´ÙÀ½À¸·Î DataInputStreamÀÌ Àִµ¥, ÀÌ´Â FileInputStream°ú ¸Å¿ì À¯»çÇϸç, ±âº» µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ¹Ù·Î ÀоîµéÀÏ ¼ö°¡ ÀÖÀ¸¸ç ¶óÀδÜÀ§ÀÇ ÀÔ·ÂÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼ À̵éÀº FileInputStream°ú ¿¬µ¿Çؼ »ç¿ëµÇ¾îÁø´Ù. ´ÙÀ½Àº DataInputStreamÀÇ ´ëÇ¥ÀûÀÎ ¸Þ½îµåµéÀÇ ÇüÅÂÀÌ´Ù.
readByte() readChar() readShort() readInt() readLong() readLine()
´ÙÀ½Àº FileInputStream°ú DataInputStreamÀ» ¿¬µ¿Çؼ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
import java.io.*;
public class List
{
public static void main(String args[])
{
FileInputStream in = null;
String line;
int linenum=0;
try
{
in = new FileInputStream(args[0]);
}
catch (Throwable e)
{
System.out.println("Usage: java List file");
System.exit(1);
}
DataInputStream dis = new DataInputStream(in);
// End-of-File is -1, but in this case as long as the
// string returned is not null, continue
try
{
while ((line = dis.readLine()) != null)
System.out.println(++linenum+": "+line);
in.close();
}
catch(IOException e)
{
System.out.println("I/O Error");
System.exit(1);
}
}
}
´ÙÀ½Àº ±âŸ ÀÔ·Â ½ºÆ®¸²¿¡ ´ëÇÑ °£·«ÇÑ »ç¿ë¿ëµµ¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù.
| SequenceInputStream | ¿©·¯°³ÀÇ ÀÔ·Â ½ºÆ®¸²µéÀ» ÇϳªÀÇ ½ºÆ®¸²À¸·Î ó¸®ÇÏ´Â °æ¿ì |
| PipedInputStream | ÆÄÀÌÇÁ¸¦ ÅëÇØ¼ µ¥ÀÌÅ͸¦ Àоî¿À´Â °æ¿ì (ÀϹÝÀûÀ¸·Î PipedOutputStream°ú ¿¬µ¿µÇ¾î¼ »ç¿ëµÇ¾îÁø´Ù) |
| ByteArrayStreamBuffer | ¹ÙÀÌÆ® ¹è¿(¹öÆÛ)·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿À´Â °æ¿ì |
| StringBufferInputStream | StringBuffer·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿À´Â °æ¿ì |
Ãâ·Â ½ºÆ®¸²¿¡ ´ëÇØ¼ »ìÆìº¸±â·Î ÇÑ´Ù. Ãâ·Â ½ºÆ®¸²ÀÇ °æ¿ì¿¡´Â ÀÔ·Â ½ºÆ®¸²°ú ±× ±¸¼ºÀÌ À¯»çÇÏ´Ù. ¸ðµç Ãâ·Â ½ºÆ®¸²µéÀº OutputStreamÀ¸·Î ºÎÅÍ ÆÄ»ýµÇ¾îÁø´Ù.
´ÙÀ½Àº OutputStreamÀÇ ±âº»ÀûÀÎ ¸Þ½îµåµéÀÌ´Ù.
| close() | ½ºÆ®¸²À» ´Ý´Â´Ù |
| flush() | ½ºÆ®¸²ÀÇ ³»¿ëÀ» Áö¿î´Ù |
| write(int) | ÇÑ ¹ÙÀÌÆ®¸¦ Ãâ·ÂÇÑ´Ù. |
| write(byte[]) | ¿©·¯ ¹ÙÀÌÆ®¸¦ ½ºÆ®¸²¿¡ Ãâ·ÂÇÑ´Ù. |
| write(byte[], int offset, int len) | ¹ÙÀÌÆ® ¹è¿³»¿¡ ÁöÁ¤µÈ À§Ä¡¿¡ ÁöÁ¤ÇÑ Å©±â¸¸ÅÀ» ½ºÆ®¸²¿¡ Ãâ·Â ÇÑ´Ù. |
ÆÄÀÏ Ãâ·Â½Ã¿¡´Â FileOutputStreamÀ» »ç¿ëÇϴµ¥, ÀÌ´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î Á¤ÀÇÇÑ´Ù.
FileOutputStream fout = new FileOutputStream("result.rpt");
DataInputStream¿¡ ´ëÀÀµÇ´Â °ÍÀ¸·Î DataOutputSteamÀÌ ÀÖ´Ù. DataOutputSteamÀÇ ÁÖ¿ä ¸Þ½îµéµéÀ» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.
writeBoolean(boolean) writeByte(int) writeBytes(String) writeChar(int) writeChars(String) writeDouble(double) writeFloat(float) writeInt(int) writeLong(long) writeShort(int)
¸¶Áö¸·À¸·Î RandomAccessFile Ŭ·¡½º¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î ÇÑ´Ù. ¸ÕÀú RandomAccessFileÀÇ ÀνºÅϽº¸¦ ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
RandomAccessFile rdnfile = new RandomAccessFile("\doc\score.db","rw");
À§ÀÇ ÆÄÀÏ »ý¼ºÀÚÀÇ µÎ ¹øÂ° ÀÎÀÚ´Â ¸ðµå¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î "r"¸¸ »ç¿ëÇϸé Àбâ Àü¿ë ¸ðµåÀÓÀ» ³ªÅ¸³»°í, "rw"´Â Àбâ¿Í ¾²±â°¡ µ¿½Ã¿¡ °¡´ÉÇÏ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´ÙÀ½Àº RandomAccessFileÀÇ ÁÖ¿ä ¸Þ½îµåµéÀÌ´Ù.
| long getFilePointer() | ÇöÀçÀÇ ÆÄÀÏ Æ÷ÀÎÅÍÀÇ À§Ä¡¸¦ ¸®ÅÏÇÑ´Ù |
| void seek(long pos) | ÁÖ¾îÁø À§Ä¡·Î ÆÄÀÏ Æ÷ÀÎÅ͸¦ À̵¿½ÃŲ´Ù |
| long length() | ÆÄÀÏÀÇ Å©±â¸¦ ¸®ÅÏÇÏ¸é¼ ÆÄÀÏ Æ÷ÀÎÅ͸¦ ÆÄÀÏÀÇ ¸¶Áö¸·À¸·Î ¿Å±ä´Ù |
java.net.ContentHandler
java.net.DatagramPacket
java.net.DatagramSocket
java.net.InetAddress
java.net.ServerSocket
java.net.Socket
java.net.SocketImpl
java.net.URL
java.net.URLConnection
java.net.URLEncoder
java.net.URLStreamHandler
ÀÚ¹Ù ³×Æ®¿÷Å© ÆÐŰÁö¿¡´Â ÀϹÝÀûÀÎ TCP/IP ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ À§ÇÑ Socket Ŭ·¡½º¿Í Datagram Ŭ·¡½ºµéÀÌ Á¸ÀçÇØ¼ UDP ¼ÒÄϰú ÆÐŶÀ» ´Ù·ê ¼ö Àִ Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. ¶ÇÇÑ À¥ »óÀÇ ¸®¼Ò½ºµéÀ» ´Ù·ç±â À§ÇÑ URLÀ̶ó´Â Ŭ·¡½º°¡ ÀÖ¾î¼ URL·Î Ç¥±âµÇ´Â À¥ °´Ã¼µéÀ» ¼Õ½±°Ô ´Ù·ê ¼ö°¡ ÀÖ´Ù.
¸ÕÀú URL Ŭ·¡½º¿¡ ´ëÇØ¼ »ìÆìº¸¸é ÀÌ´Â À¥ »óÀÇ ¸®¼Ò½º¸¦ °¡¸®Å°´Â °´Ã¼·Î »ç¿ëµÇ´Â °ÍÀ¸·Î, À̹ÌÁö³ª ¿Àµð¿À¸¦ ´Ù·ç´Âµ¥ ÀÖ¾î¼ »ç¿ëµÇ¾îÁø´Ù. ´ÙÀ½Àº URLÀ» »ç¿ëÇØ¼ À̹ÌÁö¸¦ °¡Á®¿À´Â ¹æ¹ýÀ» ¿¹·Î ³ªÅ¸³½ °ÍÀÌ´Ù.
URL imgsrc = new URL("http://www.server.com/image");
Image img = getImage(imgsrc, "landscape.gif");
ÀÎÅÍ³Ý ÁÖ¼Ò¸¦ ´Ù·ç±â À§ÇÑ Å¬·¡½º·Î ÀÚ¹Ù¿¡¼´Â InetAddress¶ó´Â Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. InetAddress´Â ´ÙÀ½°ú °°Àº ¸Þ½îµéÀ» Á¦°øÇÑ´Ù.
InetAddress getByName(String host) ÁÖ¾îÁø ½ºÆ®¸µÀ¸·Î Ç¥ÇöµÈ È£½ºÆ®¿¡ ´ëÇÑ ÀÎÅÍ³Ý ¾îµå·¹½º¸¦ ¸®ÅÏÇÑ´Ù. È£½ºÆ® À̸§ÀÌ ³ÎÀÎ °æ¿ì¿¡´Â µðÆúÆ®·Î ·ÎÄà ȣ½ºÆ®ÀÇ ÁÖ¼Ò¸¦ ¸®ÅÏÇÑ´Ù.
| InetAddress getLocalHost() | ·ÎÄà ȣ½ºÆ®ÀÇ ÀÎÅÍ³Ý ¾îµå·¹½º¸¦ ¸®ÅÏÇÑ´Ù. |
| String toString() | ÀÎÅÍ³Ý ¾îµå·¹½º¸¦ ½ºÆ®¸µÀÇ ÇüÅ·Πº¯È¯½ÃÄÑÁØ´Ù. |
| String getHostName() | ÁÖ¼Ò¿¡ ÇØ´çÇϴ ȣ½ºÆ® À̸§À» Àоî¿Â´Ù. |
´ÙÀ½Àº InetAddress Ŭ·¡½ºÀÇ »ç¿ë¿¡ ´ëÇÑ »ùÇà ÄÚµåÀÌ´Ù.
import java.net.*;
public class inet{
public static void main(String args[])
{
int i;
InetAddress localhost=null;
try {
localhost = InetAddress.getLocalHost();
} catch (UnknownHostException e)
{
System.out.println("can not determin host");
System.exit(0);
}
System.out.println("hostname : " + localhost.getHostName());
System.out.println("address : " + localhost.toString());
}
ÀÚ¹Ù¿¡ ÀÖ¾î¼ °¡Àå °£´ÜÇÑ TCP/IP ¼ÒÄÏ ¿¬°áÀÇ °æ¿ì¿¡ ´ÙÀ½°ú °°Àº ¸ðµ¨¿¡ µû¸¥´Ù. ¼¹ö¿¡¼´Â ¼ÒÄÏÀ» Çϳª ¸¸µé¾î ³õ°í ŸÀӾƿô ±â°£À» ¼³Á¤ÇØ ³õ°í Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¿¬°áÀ» ±â´Ù¸°´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼´Â È£½ºÆ®¿Í Æ÷Æ®¹øÈ£¸¦ ÀÌ¿ëÇØ¼ ¿¬°áÀ» ¸ÎÀº ´ÙÀ½¿¡, Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö°£¿¡´Â InputStream°ú OutputStreamÀ» ÀÌ¿ëÇØ¼ ¼·Î µ¥ÀÌÅ͸¦ ÁÖ°í¹Þ´Â´Ù.
°£´ÜÇÏ°Ô TCP/IP ¼¹ö/Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±âº»ÀûÀÎ ±¸Á¶¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î ÇÑ´Ù. ¸ÕÀú ¼¹öÀÇ °æ¿ì´Â °¡Àå ±âº»ÀûÀΠƲÀ» ´ÙÀ½°ú °°´Ù.
import java.net.*;
import java.io.*;
class TypicalServer {
public static void main(String args[])
{
ServerSocket servsc;
Socket sc;
OutputStream out;
int portnum=5555;
int timeout=500;
try
{
servsc = new ServerSocket(portnum,timeout);
} catch (IOException e)
{
System.out.println("Socket Error!");
System.exit(0);
}
while (true)
{
try
{
sc=servsc.accept();
out=sc.getOutputStream();
// prepare sending data into the char_data
while (no_data_to_be_sent)
out.write(char_data);
sc.close();
} catch (IOException e)
{
System.out.println("Error!");
System.exit(0);
}
}
}
}
´ÙÀ½Àº À§ÀÇ ÀüÇüÀûÀÎ ¼¹ö¿¡ ´ëÀÀÇϴ Ŭ¶óÀ̾ðÆ®ÀÇ ±¸Á¶ÀÌ´Ù.
import java.net.*;
import java.io.*;
class TypicalClient {
public static void main(String args[])
{
Socket clientsc;
InputStream inSc;
int data;
try
{
clientsc = new Socket("jupiter.kr", 5555 );
inSc = clientsc.getInputStream();
while ((data=inSc.read()) != -1)
{
System.out.print((char)data);
}
System.out.println();
clientsc.close();
} catch (IOException e)
{
System.out.println("Socket Error!");
System.exit(0);
}
}
}
Áö±Ý±îÁö ÀÚ¹Ù °³¹ß ȯ°æ¿¡¼ Á¦°øÇØÁִ Ŭ·¡½º ÆÐŰÁöµé¿¡ ´ëÇØ¼ »ìÆìº¸¾Ò´Ù. ½ÇÁ¦ Ŭ·¡½º Çϳª Çϳª¿¡ ´ëÇØ¼ ´Ù·ç±âº¸´Ù´Â °¢ ÆÐŰÁöµéÀÇ Æ¯¼º°ú ÁÖ¿äÇÑ Å¬·¡½ºµéÀ» À§ÁÖ·Î »ìÆìº¸¾Ò´Ù. ½ÇÁ¦ ÀÚ¹Ù¿¡ ÀÖ¾î¼ Å¬·¡½º ÆÐŰÁöÀÇ ÀÌÇØ´Â ½ÇÁ¦ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ·Á´Â »ç¶÷µé¿¡°Ô´Â ÇʼöÀûÀÎ °ÍÀ¸·Î, ÀÚ¹Ù ÇÁ·Î±×·¥ °³¹ß Áß¿¡µµ °è¼ÓÇØ¼ ÂüÁ¶ÇÏ¿©¾ß ÇÒ ºÎºÐÀÌ´Ù. ÇöÀç Á¦°øµÇ´Â Àڹ٠Ŭ·¡½º ÆÐŰÁö´Â ¾ÆÁÖ ±âº»ÀûÀÎ °Íµé¸¸ÀÌ µé¾î°¡ ÀÖ¾î¼ ¸ÖƼ¹Ìµð¾î ÀÀ¿ëÇÁ·Î±×·¥À̳ª 3D ±×·¡ÇÈ, µ¥ÀÌÅͺ£À̽º ¿¢¼¼½º µî¿¡ ´ëÇÑ ³»¿ëµéÀº Æ÷ÇԵǾîÁ® ÀÖÁú ¾Ê´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ºÎºÐµéµµ Á¶¸¸ °£¿¡ ±âº»ÀûÀΠŬ·¡½º ÆÐŰÁö·Î µé¾î°¡°Ô µÉ °ÍÀÌ´Ù.