ÇÑ±Û Win95»ó¿¡¼ÀÇ ÀÚ¹Ù ÇÑ±Û ÀԷ±ⱸÇö
ÀÚ¹Ù ÇÑ±Û ÀԷ±â´Â ÀüÀÚ °áÀç ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °úÁ¤¿¡¼ ÀڹٷΠŬ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Ù°¡ ¸¸µé¾îÁø ºÎ»ê¹°ÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®¸¦ ÀÚ¹Ù ¾ÖÇø´À¸·Î ±¸ÇöÇϴµ¥ ÀÖ¾î¼ ÇѱÛÀÌ Ãâ·ÂÀº µÇ´Âµ¥, ÀÔ·ÂÀº µÇÁö ¾Ê¾Æ¼, ¸¹Àº °í¹ÎÀ» ÇÏ´ø ³¡¿¡ ÀÛ¼ºÀ» ÇÏ°Ô µÇ¾ú´Ù.
ƯÈ÷ Web»ó¿¡¼ÀÇ ÀüÀÚ °áÀç ½Ã½ºÅÛÀº ³×Æ®¿öÅ© »óÀÇ º¸¾ÈÀÌ ÇʼöÀûÀε¥ ±×°Í¿¡ ´ëÇÑ ´ëÃ¥ÀÇ Çϳª·Î ÀÚü Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö¸¦ ÇÁ·Î±×·¥ ÇÏ´Â ¹æ¹ýÀ» ¼±ÅÃÇß°í, ¶Ç ±×°ÍÀÌ À¥ ºê¶ó¿ìÀú¿Í µ¥ÀÌÅÍ º£À̽º¿Í ¿¬°èµÇ¾î¾ß ÇϹǷΠÀÚ¹Ù ¾ð¾î¸¦ ¼±ÅÃÇÏÁö ¾ÊÀ¸¸é ¾ÈµÇ°Ô µÇ¾ú´Ù.
±×·¡¼, ÀÏ´Ü ÀÚ¹Ù ÇÑ±Û ÀԷ±⸦ ±¸ÇöÇϱâ·Î ÇÏ¿´´Âµ¥, ÀÚ¹Ù ÇѱÛÀ» ±¸ÇöÇϱâ À§Çؼ´Â ÀÚ¹Ù »ó¿¡¼ ÇÑ±Û ¿ÀÅ丶Ÿ¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °ÍÀÌ Á¤¼®Àε¥, À̰ÍÀº ½Ã°£°ú ³ë·ÂÀ» ³Ê¹« ¸¹ÀÌ ¿ä±¸ÇϹǷΠ¹º°¡ »õ·Ó°í °£´ÜÇÑ ¹æ¹ýÀ» °í¾ÈÇØ¾ß¸¸ Çß´Ù.
ÇÑÂüÀ» °í¹ÎÇÏ´ø Áß ÀÌ»óÇÑ Àǹ®ÀÌ ³» ¸Ó¸® ¼ÓÀ» ¶°³ªÁö ¾Ê¾Ò´Ù. ºÐ¸íÈ÷ ÀÚ¹Ù´Â À¯´Ï Äڵ带 Áö¿øÇϱâ À§ÇØ 2¹ÙÀÌÆ®¸¦ charÇüÀÇ ±âº» ±¸¼ºÀ¸·Î Çϰí ÀÖÀ¸¸ç, win95»ó¿¡¼´Â ÀÚ¹ÙÀÇ ÇÑ±Û Ãâ·ÂÀÌ µÇ¸ç, ÇÑ±Û ÀԷ¿¡¼ ´Ù¸¸ ¼öÆò ½ºÅ©·ÑÀÇ ÄÁÆ®·ÑÀÌ ¾ÈµÇ´Âµ¥ À̰͸¸ Àß Ã³¸®ÇÏ¸é µÇÁö ¾ÊÀ» ±î ÇÏ´Â °ÍÀÌ´Ù.
±×·¡¼ ÀÚ¹Ù¿¡¼ ÇÑ±Û ÀԷ½à ÀÌ ºÎºÐ¸¸ Àß Ã³¸®ÇÏ¸é µÉ °ÍÀ̶ó´Â È®½ÅÀ» °¡Áö¸é¼ ¸ÕÀú ÇÑ±Û ÀԷ½ÃÀÇ ½Ã³ª¸®¿À¸¦ »ý°¢ÇÏ°Ô µÇ¾ú´Ù.
¸ÕÀú ÇÑ±Û ÀÔ·Â ¸ðµå·Î ¹Ù²î°Ô µÉ °ÍÀ̰í, Ű Çϳª°¡ ´·ÁÁö¸é ¾î¶°ÇÑ À̺¥Æ®°¡ ¹ß»ýÇÒ °ÍÀ̰í, ´ÙÀ½ ±× À̺¥Æ®¸¦ ¹Þ¾Æ 󸮸¦ ÇÏ°í ±× ÀÔ·Â °ªÀ» Ãâ·Â ÇÒ °ÍÀÌ´Ù.
ÀÌ·¸°Ô ¾î´À Á¤µµÀÇ ½Ã³ª¸®¿À¸¦ »ý°¢Çغ¸´Ï ±× ´ÙÀ½ ³»°¡ ó¸®Çؾß
ÇÒ ºÎºÐÀÌ ¸íÈ®ÇØÁ³´Ù. ¿ì¼± À̺¥Æ® ¹ß»ýÀ» °¡·Îä°í, ±× ´ÙÀ½ ÇѱÛÀ»
ó¸®Çϰí, ´Ù½Ã ÀçÃâ·ÂÀ» ½ÃŰ´Â ¹æ½ÄÀ¸·Î ÀÛ¾÷À» Çϱâ·Î ÇÏ¿´´Ù.
ÀÌ·¸°Ô ÀÏÁÖÀÏÀ» ¶Èµü °Å·Á ¸¸µç °ÍÀÌ °ø°³µÇÁö ¾ÊÀº ÃÖÃÊÀÇ ÀÚ¹Ù
ÇÑ±Û ÀԷ±Ⱑ µÈ °ÍÀÌ´Ù.
ÀÌ·± ½ÄÀ¸·Î °³¹ßÇÒ ¶§ÀÇ ÀåÁ¡Àº ÇÑ±Û À©µµ¿ìÀÇ ÀÚ¿øÀ» ±×´ë·Î ¾²°í Àֱ⠶§¹®¿¡ ±Û¾¾Ã¼, ÆùÆ®ÀÇ Å©±â µî¿¡ ±¸¾ÖµÇÁö ¾ÊÀ¸¸ç Â÷ÈÄ À©µµ¿ìÀÇ °³¹ß ¹öÀü¿¡ µû¶ó ¿Ü±¹¾î Áö¿øµµ °£´ÜÇÏ°Ô µÈ´Ù´Â °ÍÀÌ´Ù. ´ÜÁ¡ÀÌ ¾Æ´Ñ ´ÜÁ¡À¸·Î´Â À©µµ¿ì¿ëÀ̹ǷΠÀ¯´Ð½º¿¡¼´Â È¿°ú°¡ ¾øÀ¸¸ç, º¶ôÄ¡±â·Î °³¹ßµÈ °ÍÀ̹ǷΠ¼Ò½ºÀÇ ÄÚµùÀÌ ¸Å²ô·´Áö ¸øÇÏ°í ¹ö±×µµ ÀÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
¾Æ¿ï·¯ ¸í¹éÇÑ ¹ö±× ¾Æ´Ñ ¹ö±×´Â ÇÑ±Û À©µµ¿ì95°¡ ¿ÏÀüÇÑ ¿Ï¼ºÇü ÇѱÛÀ»
Áö¿øÇÏÁö ¸øÇÏ´Â °ü°è·Î ºÎºÐÀûÀ¸·Î ¿Ï¼ºÇü ÇÑ±Û ÁýÇÕü¿¡¼ ºüÁø
±ÛÀÚ´Â Äڵ忡 Æ÷ÇÔ½ÃŰÁö ¾Ê¾ÒÀ½À» ¹àÈù´Ù.
ÀÚ¹Ù ÇÑ±Û ÀԷ±⿡ ´ëÇÏ¿© ÀÚ¼¼È÷ ¼³¸íÇϱâ Àü¿¡ ¸ÕÀú ÀÚ¹ÙÀÇ Æ¯Â¡¿¡ ´ëÇÏ¿© °£´ÜÈ÷ ¾Ë¾Æº¸ÀÚ.
³Ê¹« ¸¹ÀÌ ¾Ë·ÁÁø À̾߱âÀ̱⠶§¹®¿¡ ½Ä»óÇÒ ¼öµµ ÀÖÁö¸¸, ÀÚ¹ÙÀÇ
ÀÌ·± Ư¡µéÀº ¾Æ¹«¸® °Á¶Çصµ °áÄÚ Áö³ªÄ¡Áö ¾ÊÀº °ÍµéÀÌ´Ù.
°áÄÚ ¾Æ´Ò ¼öµµ ÀÖÁö¸¸, ÀÚ¹Ù´Â ´Ù¸¥ ¾ð¾îµé¿¡ ºñÇÏ¿© ¸Å¿ì °£´ÜÇÑ ±¸Á¶¸¦ °¡Áø´Ù.
ÀÚ¹Ù´Â C++¿Í ¸Å¿ì À¯»çÇÏÁö¸¸, ²À ÇÊ¿äÇÏÁö ¾ÊÀº °í±Þ ÇÁ·Î±×·¡¹Ö
¾ð¾îÀÇ Æ¯Â¡Àº ¸ðµÎ »©°í, ²À ÇÊ¿äÇÑ ±â´ÉÀ¸·Î¸¸ ä¿î ¾ð¾îÀÌ´Ù. ±×·¡¼
´Ù¸¥ °í±Þ ¾ð¾î¿¡ ´ëÇÑ ÀÌÇØ°¡ ÀÖ´Ù¸é ÀÚ¹Ù¸¦ ÀÌÇØÇϱⰡ ÈξÀ ½±´Ù.
ÀÚ¹Ù´Â °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÌ´Ù. ÀÚ¹Ù¿¡¼ ¼ýÀÚ¿Í ºÎ¿ïÇü°ú
°°Àº ÇüÀ» Á¦¿ÜÇÑ ´ëºÎºÐÀÌ °´Ã¼·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ¶ÇÇÑ ÀÚ¹Ù´Â ´ÜÀÏ
°è½Â Ŭ·¡½º ±¸Á¶¸¦ Áö¿øÇÑ´Ù. À̰ÍÀº ÇÑ ¹ø¿¡ ÇϳªÀÇ Å¬·¡½º°¡ ÇϳªÀÇ
¼±Á¶·ÎºÎÅ͸¸ »ó¼ÓµÉ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ¾î¶² ¾ð¾îµéÀº ´Ù¼öÀÇ °è½ÂÀ»
Áö¿øÇÏÁö¸¸ À̰ÍÀÌ ¿ÀÈ÷·Á ¾ð¾î¿¡ ´ëÇÑ ÀÌÇØ¸¦ È¥¶õ½Ãų ¼öµµ ÀÖ°í,
¾ð¾î¸¦ ºÒÇÊ¿äÇÒ Á¤µµ·Î º¹ÀâÇϰԵµ ÇÒ ¼ö Àֱ⠶§¹®¿¡ ÀÚ¹Ù´Â Áö¿øÇÏÁö
¾Ê´Â´Ù.
ÀÚ¹Ù ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¶§ ÇÁ·Î±×·¥Àº ¸ÕÀú ¹ÙÀÌÆ® ÄÚµå·Î ÄÄÆÄÀÏ
µÈ´Ù. ¹ÙÀÌÆ® ÄÚµå´Â ±â°è ¸í·É¾î¿Í ¸Å¿ì À¯»çÇϹǷΠÀÚ¹Ù ÇÁ·Î±×·¥Àº
¸Å¿ì È¿À²ÀûÀÌ´Ù. ÇÏÁö¸¸ ¹ÙÀÌÆ® ÄÚµå´Â ƯÁ¤ÇÑ ±â°è¿¡ ÇÑÁ¤µÈ °ÍÀÌ
¾Æ´Ï±â ¶§¹®¿¡ ÀÚ¹Ù ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏ ½Ãų ÇÊ¿ä
¾øÀÌ ´Ù¸¥ ¸¹Àº ÄÄÇ»ÅÍ¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
ÀÚ¹Ù ÇÁ·Î±×·¥Àº ¹ÙÀÌÆ® ÄÚµå·Î ÄÄÆÄÀÏ µÇ±â ¶§¹®¿¡ ÀÚ¹Ù¸¦ Áö¿øÇÏ´Â
¾î¶°ÇÑ Ç÷§Æû¿¡¼µµ ½ÇÇà½Ãų ¼ö ÀÖ´Ù. »õ·Î¿î ±â°è »ó¿¡¼ ½ÇÇà½Ã۱â
À§Çؼ ÀÚ¹Ù ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏ ½Ãų ÇÊ¿ä´Â ¾ø´Ù. ÀÚ¹Ù ¾ð¾î´Â
¸ðµç ÄÄÇ»ÅÍ¿¡¼ °°Àº ¹æ¹ýÀ¸·Î µ¿ÀÛÇÑ´Ù.
À¯´Ð½º³ª À©µµ 95¿Í °°Àº ´ëºÎºÐÀÇ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀº ¸ÖƼ ŽºÅ·À»
Áö¿øÇÑ´Ù. ÀÚ¹Ù´Â ¾ð¾î¿¡ ³»ÀåµÈ ¸ÖƼ ŽºÅ·À» Áö¿øÇÑ´Ù. À̰ÍÀÌ
¹Ù·Î ¸ÖƼ ½º·¹µåÀÌ´Ù. ¸ÖƼ ½º·¹µå ȯ°æ¿¡¼ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â
°ÍÀº µ¿½Ã¿¡ ¿©·¯ °¡Áö ÀÏÀÌ ¹ß»ýÇϱ⠶§¹®¿¡ ¾î·Æ´Ù. ±×·¯³ª ÀÚ¹Ù´Â
ÇÁ·Î±×·¡¹ÖÀ» ½±°Ô ÇÏ´Â µ¿±âÈ Å¬·¡½º¸¦ Áö¿øÇϹǷΠ½±°Ô ÀÌ·± ¹®Á¦¿¡
´ëóÇÒ ¼ö ÀÖ´Ù.
C³ª C++·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Ùº¸¸é, »ç¿ëµÇ´Â ¸Þ¸ð¸®ÀÇ ÇÒ´ç ¹× ÇØÁ¦¿¡ ´ëÇÏ¿© ÁÖÀÇ ±í°Ô »ìÆìº¸¾Æ¾ß ÇÑ´Ù. ±×·¯³ª ÀÚ¹Ù¿¡¼´Â ¸Þ¸ð¸® °ü¸®¿¡ ´ëÇÏ¿© °ÆÁ¤ÇÒ Çʿ䰡 ¾ø´Ù. ÀÚ¹Ù´Â ¸Þ¸ð¸®¸¦ °Ë»çÇÏ¿© ´õ ÀÌ»ó »ç¿ëµÇÁö ¾Ê´Â ¸Þ¸ð¸®¸¦ ÀÚµ¿À¸·Î ÇØÁ¦½ÃŰ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. À̰ÍÀº ÀÚ¹Ù·Î ÇÁ·Î±×·¥À» ½±°Ô ¸¸µé ¼ö ÀÖ°Ô ÇØÁÖ¸ç ÇÁ·Î±×·¡¸Ó°¡ ¸Þ¸ð¸® °ü¸®¿¡ °üÇÏ¿© °áÄÚ °ÆÁ¤ÇÏÁö ¾Êµµ·Ï ÇØÁØ´Ù.
ÀüÅëÀûÀÎ ÇÁ·Î±×·¥ ¾ð¾îµéÀº ÄÄÇ»ÅÍÀÇ ¸ðµç ºÎºÐÀÇ ¸Þ¸ð¸®¸¦ ¾×¼¼½ºÇÒ
¼ö ÀÖ´Ù. µû¶ó¼ ÇÁ·Î±×·¥Àº ¸Þ¸ð¸®¿¡¼ ¹®Á¦¸¦ ¹ß»ý½Ãų ¼ö ÀÖ´Â
¿©Áö°¡ ÀÖ´Â ºÎºÐµéÀÇ °ªÀ» º¯°æ½Ãų ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÚ¹Ù ÇÁ·Î±×·¥Àº
´ÜÁö Çã¶ô ¹ÞÀº ºÎºÐÀÇ ¸Þ¸ð¸®¸¸À» ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. ÀÚ¹Ù ÇÁ·Î±×·¥Àº
ÀǵµÇÏÁö ¾ÊÀº º¯°æÀÌ ÀϾÁö ¾Êµµ·Ï ÇÑ´Ù.
ÀÚ¹Ù´Â °³¹ß ´ç½ÃºÎÅÍ ¸Þ¸ð¸®ÀÇ ¿ë·®ÀÌ ÀÛÀº ÄÄÇ»ÅÍ¿¡¼ ÀÛµ¿Çϵµ·Ï ¼³°èµÇ¾ú±â ¶§¹®¿¡ »ó´ëÀûÀ¸·Î ´Ù¸¥ ÄÄÇ»ÅÍ ¾ð¾î¿¡ ºñÇÏ¿© µ¢Ä¡°¡ ÀÛ´Ù. ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ´Â ´ÜÁö ¸î ¹é ų·Î¹ÙÀÌÆ® »ó¿¡¼µµ µ¿ÀÛÇÑ´Ù.
ÀÚ¹Ù´Â Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¸ç ½ÇÇàÇϱâ Àü¿¡ ÀÚ¹Ù ÇÁ·Î±×·¥À»
°ËÁõÇϱâ À§Çؼ °·ÂÇÑ Å¸ÀÔ Ã¼Å© ±â´ÉÀ» Áö¿øÇÑ´Ù. µû¶ó¼ °ËÁõµÈ
ÀÚ¹Ù ÇÁ·Î±×·¥Àº ÀÚ¹Ù°¡ ¼³Á¤ÇÑ ¾î¶°ÇÑ Á¦Çѵµ ³ÑÁö ¾ÊÀ½À» º¸ÀåÇϸç
¾ÈÀüÇÏ°Ô ½ÇÇàµÉ ¼ö ÀÖ´Ù. ÀÚ¹ÙÀÇ ¹ÙÀÌÆ® ÄÚµå °ËÁõÀº À¥ ºê¶ó¿ìÀú°¡
¾ÖÇø´ÀÌ ¹ÙÀÌ·¯½º¸¦ Æ÷ÇÔÇÏÁö ¸øÇϵµ·Ï È®ÀÎÇϴµ¥ »ç¿ëµÈ´Ù.
±×·³ ÀÌÁ¦ ÀÚ¹Ù ÇÑ±Û ÀԷ±⠱¸Çö ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÀÚ.
¿ì¼± Âü°í»çÇ×À¸·Î ¸ÕÀú ÀÚ¹ÙÀÇ ¹®ÀÚü°è¿¡ ´ëÇØ¼´Â ÀÚ¹ÙÀÇ ±âº»ÀûÀÎ Âü°í ¼ÀûÀ» Çʵ¶Çϸé
°£´ÜÈ÷ ÀÌÇØÇÒ ¼ö ÀÖÀ¸¸ç, ƯÈ÷ Çѱ۰úÀÇ °ü°è¿¡ ´ëÇØ¼´Â Internet 9¿ùÈ£ÀÇ Àå ±Ô¿À¾¾ÀÇ ±â°í¶õÀ» Âü°í ÇÏ¸é µÉ °ÍÀ̸ç, ÀÚ¹ÙÀÇ ÇÑ±Û ±¸Çö¿¡ ³¡±îÁö ÃÖ¼±À» ´ÙÇÏ´Â ¿¤¸²³×Æ®¿¡ °Ý·ÁÀÇ ¸»¾¸À» ¿Ã¸®¸ç Áö±Ý ¿©±â ¹àÈù ±¸Çö ¹æ¹ý°ú ¼Ò½º´Â ÇÑ±Û À©µµ¿ì»ó¿¡¼¸¸ À¯È¿ÇÏ¸ç °¡ÀåÀûÀº ³ë·ÂÀ¸·Î ÇÑ±Û ÀԷ±⸦ ±¸ÇöÇÏ´Â ¹æ¹ýÀÏ °ÍÀÌ´Ù.
´Ù½Ã º»·ÐÀ¸·Î µé¾î°¡¼ ÀÚ¹Ù¿¡´Â ÀÔ·ÂÀ» ¹Þ´Â °¡»ó À©µµ¿ì ŸŶ ÆÐŰÁö ÁßÀÇ ÇϳªÀÎ TextField¶ó´Â Ŭ·¡½º°¡ Àִµ¥ À̰ÍÀÌ ¿ì¸®°¡ ÀÌ¿ëÇØ¾ß ÇÒ ¹®Á¦ÀÇ Å¬·¡½ºÀÌ´Ù.
¼Ò½º¸¦ º¸¸é ¾Ë ¼ö ÀÖµíÀÌ ±×·¸°Ô ¾î·Á¿î ºÎºÐÀº ¾øÀ» °ÍÀÌ´Ù.
±âÁ¸ÀÇ CÇÁ·Î±×·¥¿¡¼ÀÇ Include ¿Í °°Àº ±â´ÉÀ» ÇÏ´Â °ÍÀÌ ÀÚ¹Ù¿¡¼´Â
Import¶ó´Â °ÍÀº ¾Æ½Ç °ÍÀ̰í, »ó¼Ó¹ÞÀ» Ŭ·¡½ºÀÎ TextField ¿Í TextArea¸¦
import Çϰí, key ÀÔ·ÂÀÇ event¸¦ ó¸®ÇØ¾ß ÇϹǷΠ¹Ýµå½Ã °¡»ó À©µµ¿ì
ŸŶ ÆÐŰÁö ÁßÀÇ ÇϳªÀÎ Event Ŭ·¡½º¸¦ importÇØ¾ßÇÑ´Ù.
±× ´ÙÀ½ ÀÓÀÇÀÇ »õ·Î¿î Ŭ·¡½º¸¦ TextField ¿¡¼ ÆÄ»ý½Ã۴µ¥ À̰ÍÀº
TextFieldÀÇ ¿©·¯ ÀÚ¿øÀ» ÃÖ´ëÇÑ »ç¿ëÇϱâ À§ÇؼÀÌ´Ù.
ÀÚ¹Ù ÇѱÛÀԷ±âÀÇ ÁÖµÈ ¿£Áø ¿ªÇÒÀ» ÇÏ´Â °ÍÀº ´Ù¸§ ¾Æ´Ñ keyDown ºÎºÐÀε¥ À̰ÍÀº key°¡ ´·¯Á³À» ¶§ ÀÌ ÇÔ¼ö¸¦ ½ÇÇà½ÃÄÑÁØ´Ù.
ÀÌ ºÎºÐÀÌ Á¦ÀÏ Áß¿äÇϹǷΠÀÚ¼¼È÷ ´Ù·ç¾î º¸ÀÚ.
¿ì¼± À©µµ¿ì»ó¿¡¼ keyÀÔ·ÂÀÌ ÀÖÀ» ¶§ ¹ß»ýµÇ´Â À̺¥Æ®·Î´Â keyUp °ú keyDownÀÌ ÀÖ´Â µ¥, ÇϳªÀÇ Å° ÀÔ·ÂÀÌ ÀÖÀ» ¶§¸¶´Ù À©µµ¿ì´Â ±× Ű¿¡ ÇØ´çÇÏ´Â ASCIIÄÚµå °ªÀ» ÀÚ¹ÙÀÇ keyUp À̺¥Æ®¿¡ ´ã¾Æ ÁÖ¸é ÀÚ¹ÙÀÇ °¡»ó À©µµ¿ì ŸŶÀº ÇöÀç Æ÷Ä¿½º µÇ¾î ÀÖ´Â ComponentÀÇ keyUp ÇÔ¼ö¸¦ ½ÇÇà½ÃÄÑÁØ´Ù.
À̰ÍÀº Component ÀÇ »óÀ§ Ŭ·¡½º¿¡ Á¤ÀÇ µÇ¾îÀִµ¥ ÀÚ¼¼ÇÑ ºÎºÐÀº JDKÀÇ sourceºÎºÐ¿¡ ÀÖ´Â
awtÀÇ package ¼Ò½º¸¦ ÂüÁ¶ÇÏ±æ ¹Ù¶õ´Ù.
´Ù½Ã ÁÖÁ¦·Î µ¹¾Æ¿Í¼ ÀÌ keyUpÀ̺¥Æ®·Î´Â ¸¸Á·ÇÒ¸¸ÇÑ °á°ú¸¦ ¸¸µé
¼ö ¾ø´Â µ¥, ±×°ÍÀº Çϳª ÇϳªÀÇ keyÀ̺¥Æ®¸¦ À¯¹ßÇϰí, ÀÌ °Í ÀüºÎ¸¦
Control ÇØ¾ßÇϹǷΠ±âÁ¸ÀÇ ÇÑ±Û ¿ÀÅ丶Ÿ ó¸®¿Í Å©°Ô ´Ù¸¥ ¹æ¹ýÀÌ
¾Æ´Ñ °ÍÀ̱⠶§¹®ÀÌ´Ù.
±×·³ ÀÌÁ¦ keyDown À̺¥Æ®¿¡ ´ëÇØ¼ »ìÆìº¸ÀÚ.
¿©±â¼´Â keyÀ̺¥Æ®°¡ keyUp°ú´Â ´Ù¸£°Ô ¹ß»ýµÇ´Âµ¥ ±×°ÍÀº À©µµ¿ì95»ó¿¡¼ ÇÑ±Û ÀÔ·Â ½Ã¿¡ ¸ðµç keyÀ̺¥Æ®¸¦ ÇѱÛÀ©µµ¿ì95ÀÇ standard input ÇÑ±Û Ã³¸®±â°¡ Àâ¾Æ¼ ÇÑ±Û ÇÑ ÀÚ°¡ ¿Ï¼ºµÇ¾úÀ» ¶§ keyDownÀ̺¥Æ®¸¦ ¿¬¼ÓÀ¸·Î µÎ ¹ø ¹ß»ý½ÃÄÑÁÖ´Â °Í °°´Ù.
À̰ÍÀº ÇѱÛÀ©µµ¿ì95°¡ ¿Ï¼ºÇü ÇѱÛÀ» Áö¿øÇÑ´Ù°í ÇÒ ¶§ keyÇϳª ÇϳªÀÇ
󸮴 À©µµ¿ì ÀÚü°¡ ó¸®Çϵµ·Ï Çϰí ÇϳªÀÇ ÇѱÛÀÇ ±ÛÀÚ°¡ ¿Ï¼ºµÇ¾úÀ»
¶§ ±× ±ÛÀÚÀÇ ¿Ï¼ºÇüÄÚµå °ªÀ» keyDownÀÇ À̺¥Æ®¿¡ µÎ ¹ø ³ª´©¾î Çϳª´Â
µÎ ¹ÙÀÌÆ® Áß »óÀ§ ÇÑ ¹ÙÀÌÆ®¸¦ ¿¬´Þ¾Æ ÇÏÀ§ ÇÑ ¹ÙÀÌÆ®¸¦ ¾òÀ» ¼ö
ÀÖ´Ù´Â °ÍÀ̰í, À̰ÍÀ¸·Î ±× ±ÛÀÚÀÇ °ªÀ» ¾Ë ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
±×·¡¼ ¿¬¼ÓÀ¸·Î ¹ß»ýÇÏ´Â ÀÌ keyDownÀ̺¥Æ®¸¦ °¡·Îä¾î Àß Ã³¸®ÇØÁÖ¸é
ÇѱÛÀÇ ¿Ï¼ºµÈ ±ÛÀÚ¸¦ ¾òÀ» ¼ö ÀÖ°í, ÀÌ °ÍÀ» ¹öÆÛ¸µ ÇØÁÖ¸é ÀÚ¹Ù¿¡¼
ÇÑ±Û ÀÔ·ÂÀÌ °¡´É ÇØÁø´Ù´Â °ÍÀÌ´Ù.
±×·³ ¼Ò½ºÀÇ Æ¯Â¡ÀûÀÎ ºÎºÐÀ» »ìÆìº¸ÀÚ.
Public synchronized boolean keyDown(Event evt,int key)
ÀÇ ºÎºÐ¿¡¼´Â »óÀ§Å¬·¡½ºÀÇ keyDownÇÔ¼ö¸¦ ¿À¹ö¶óÀ̵åÇÑ ºÎºÐÀε¥ °³³äÀûÀÎ °ÍÀº À§ ºÎºÐ¿¡ ¾ð±ÞÇÑ ´ë·ÎÀ̸ç Âü°í·Î ÁÖÁöÇØ¾ß ÇÒ ºÎºÐÀº synchronized Àε¥ À̰ÍÀº ÀÚ¹ÙÀÇ ¸ÖƼ ½º·¹µåÀÇ ½ºÄÉÁ층¿¡ ´ëÇÑ °Í¿¡ ´ëÇØ Á¶±Ý ±âÃÊÁö½ÄÀÌ ÇÊ¿äÇÏ´Ù.
±Ý¹ø ÇÁ·ÎÁ§Æ®¿¡¼´Â MFC ÀÇ ½º·¹µå ±â¹ýÀ» ÀÌ¿ëÇÑ È»óȸÀǽýºÅÛµµ °³¹ßÇߴµ¥ ÀÌ¿Í °°Àº ½º·¹µåÀÇ °³³äÀ» ¾Ë¾ÆµÎ¸é ÇÁ·Î±×·¥ÀÇ ´Ù¾çÇÑ ±â´ÉÀ» ±¸»çÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¼±Á¡Çü ½Ã½ºÅÛ¿¡¼ÀÇ ÇÁ·Î¼¼½º(½º·¹µå)´Â ½Ã°£ ¶Ç´Â ÀÎÅÍ·´Æ®¿¡¼ ½ºÄÉÁ층ÀÌ ÀϾ´Âµ¥ ±×°ÍÀº ÇÏ´ø ÀÛ¾÷À» Áß´ÜÇÏ°í ´Ù½Ã ÀÚ±â Â÷·Ê°¡ ¿Ã ¶§±îÁö SleepÀ» ÇÑ´Ù´Â °ÍÀÌ´Ù.
À̰ÍÀº ±²ÀåÈ÷ Áß¿äÇÑ µ¥ ´Ù¸§ ¾Æ´Ñ ¾çÂÊÀÇ ÇÁ·Î¼¼½º(½º·¹µå)°¡ ÇϳªÀÇ º¯¼ö¸¦ °øÀ¯ÇÑ´Ù´ø°¡ ¶Ç´Â ¼ø¼ÀûÀÎ ÀýÂ÷¿¡ ±Ù°ÅÇØ¼ Æ®·£Á§¼ÇÀÌ ÀϾ±â¸¦ ¿øÇÒ ¶§´Â ÁÖÀÇÇØ¾ß ÇÏ´Â ºÎºÐÀÌ´Ù.
ÀÌ·¯ÇÑ Á¡À» °¨¾ÈÇØ¼ ÀÚ¹Ù¿¡¼´Â synchronized¶ó´Â Ű¿öµå¸¦ ÁÖ¾î
¼±Á¡´çÇÏÁö ¾Ê°Ô ¹è·ÁÇϰí ÀÖ´Â °Í °°´Ù.
ÆÄ¶ó¹ÌÅÍ ¾ÈÀÇ °ªÀº ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¸é¼ Ã¤¿öÁö°Ô µÇ´Âµ¥ ÀÌ ¶§ ¿ì¸®°¡ üũÇÏ´Â °ÍÀº key°ªÀÌ´Ù.
±×·¡¼, ¼Ò½ºÀÇ ¼ýÀÚµéÀº key °ªÀε¥ ÇѱÛÀԷ¸ðµå¿Í ¾Æ´Ñ °ÍÀ» ±¸º°ÇØ¾ß ÇϹǷΠ¾à°£ÀÇ ¾î·Á¿òÀÌ ÀÖ¾ú°í °¢ ÀԷ»óÅ¿¡¼ÀÇ ¼öÆò ½ºÅ©·ÑÀ» ControlÇØ¾ß ÇϹǷΠ±×°ÍÀÌ Èûµé¾ú´Ù.
±×·³, ¾Æ·¡ Äڵ带 º¸¸é¼ ºÐ¼®Çغ¸ÀÚ.
static boolean dotStatus = false;
static boolean korWait = false;
static int Arrow = 0;
String korString;
boolean korbyte = false;
static char korChar[] = new char[2];
À§ Äڵ忡¼ ¿©·¯ º¯¼ö°¡ Àִµ¥ ±âº»ÀûÀ¸·Î Áß¿äÇÑ º¯¼ö´Â korWait ¿Í korString °ú korChar[]
Àε¥ ¿©±â¿¡ ´ëÇØ Àá±ñ »ý°¢ÇØ º¸ÀÚ.
korWaitº¯¼ö´Â ÇÑ±Û ÀÔ·Â ¸ðµå¿¡¼ ÇÑ±Û ÇÑ ÀÚ°¡ ¿Ï¼ºµÉ ¶§ ¹ß»ýµÇ´Â ¿¬¼ÓÀûÀÎ µÎ ¹øÀÇ keyDown Event¸¦ üũÇϱâ À§ÇÑ °ÍÀε¥ ù ¹øÂ° keyDown EventÁß ¿Ï¼ºÇü ÇѱÛkey °ªÀÇ ¹üÀ§³»ÀÇ »óÀ§ ¹ÙÀÌÆ®¸¦ °Ë»çÇÏ¿© ÇѱÛkey°ªÀÏ ¶§´Â korWait¸¦ True·Î ¼¼ÆÃ½Ã۰í, korChar[0]¿¡ ±× °ªÀ» ¾ò´Â´Ù.
À̰ÍÀº Á¤È®ÇÑ ¿Ï¼ºµÈ ÇÑ±Û ÇÑ ÀÚ¸¦ ¹Þ¾ÆµéÀ̱â À§ÇؼÀ̸ç, ¿¬¼ÓµÈ µÎ ¹øÂ° keyDown Event¿¡¼ korChar[1]¿¡ key°ªÀ» ¾ò°í, ±× °ÍÀÇ ¹öÆÛ¸µÀ» À§Çؼ ÇöÀçÀÇ ¹®ÀÚ¿ °ªÀ» getTextÀÇ ÇÔ¼ö¸¦ »ç¿ëÇØ¼ korString¿¡ ¾òÀº µÚ ¿©±â¿¡ ¼¼ÆÃµÈ ÇöÀçÀÇ Æ÷Áö¼Ç¿¡ ¹æ±Ý ÀÔ·ÂµÈ ¿Ï¼ºµÈ ±ÛÀÚ¸¦ »ðÀÔ, ¶Ç´Â ÷°¡½ÃŰ°í ´Ù½Ã setTextÇÔ¼ö¸¦ »ç¿ëÇØ¼ ¼¼ÆÃ ½ÃŲ´Ù.
ÀÌ ½Ã³ª¸®¿À°¡ ÀÚ¹Ù ÇѱÛÀԷ±âÀÇ ±âº»Àû °ñ°ÝÀε¥, ÇÁ·Î±×·¡¹ÖÀ» ¾î´À Á¤µµ ÇϽŠºÐ²²¼´Â ÀÌ Á¤µµ¿¡¼ ÀÚ½ÅÀÇ ÀÚ¹Ù ÇÑ±Û ÀԷ±⸦ ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀÚ¹Ù ÇÑ±Û ÀÔ·Â ÇÁ·Î±×·¥À» ÇÏ¸é¼ ¾î·Á¿ü´ø °ÍÀº ÇÑ±Û ÀÔ·Â ¸ðµå¿¡¼ÀÇ Enter Key¶óµçÁö, Á¿ì È»ìÇ¥ Ű, Á¡µîÀÇ ÀÔ·ÂÀÌ ÀÖÀ» ¶§´Â ÇÑ±Û ÀԷ±⠽󪸮¿À ÀÚü¿¡ ¹ö±×°¡ »ý°Ü¹ö·Á¼ ÀÌ·¯ÇÑ °ÍÀ» ó¸®Çϱâ À§Çؼ ¶æÇÏÁö ¾ÊÀº Äڵ带 »ý¼º½ÃÄѾ߸¸ Çß´ø °ÍÀÌ´Ù.
¿¹¸¦ µé¸é, Á¡ÀÇ ÀÔ·ÂÀ̶óµç°¡, ÀÚÀ½ÀÇ ¿¬¼ÓÀûÀÎ ÀÔ·ÂÀÌ ÀÖÀ» ¶§´Â
ÇÑ±Û ÀÔ·Â ¼ø¼°¡ ´Ù½Ã ¾û¸ÁÀÌ µÇ¹ö·Á¼ ÀÌ·¯ÇÑ °ÍÀ» ¼öÁ¤ÇÏ´Â µ¥
Á¶±Ý ¾Ö¸¦ ¸Ô¾ú´Ù.
±×¸®°í, TextArea ´Â TextField¿Í °°ÀÌ keyDownºÎºÐ¸¸ CopyÇÏ¸é µÈ´Ù.
4. ÀÚ¹Ù ÇÑ±Û ÀԷ±⠻ç¿ëÇϱâ
´ÙÀ½À¸·Î´Â ÀÌ ÀÚ¹Ù ÇÑ±Û ÀԷ±âÀÇ »ç¿ë¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú´Ù.
ÀÌ·¸°Ô ¸¸µé¾îÁø TextFieldKor Ŭ·¡½º¿Í TextAreaKor Ŭ·¡½º¸¦ TextField
¿Í TextArea ´ë½Å »ç¿ëÇÏ¸é µÇ°í ±× »ç¿ë ½Ç·Ê¸¦ ¾Æ·¡ ±×¸²¿¡¼ º¸¿´´Ù.

¸ð½ÀÀÌ Á¦´ë·Î ÀÛµ¿ÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
À̰ÍÀº °£´ÜÇÑ ¾Ë°í¸®ÁòÀÌÁö¸¸ Áö±ÝÀÇ Interner ¿Ç³ÀÇ È¯°æ¿¡ ¸ÂÃß¾î
Àú¸¶´Ù ±¸ÃàÇÏ·Á´Â Interanet Business¿¡ °³¹ßÀÇ È®À强¿¡ ºñÃß¾î
º¼ ¶§´Â FontÀÇ ±âÁ¸ÀÇ È°¿ë ¹× °³¹ß°ú ±âŸ Window¿¡¼ Áö¿øÇÏ´Â
¿Ü±¹¾î¸¦ ÀÚ¹Ù·Î ±¸ÇöÇÒ ¼ö ÀÖ´Â ±¸Çö±â¹ýÀ¸·Î »ý°¢µÇ¹Ç·Î ¿©·¯ °÷¿¡¼
Ȱ¿ëµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
class TextFieldKor extends TextField {
//ÇÑ±Û ÀÔ·Â ¸ðµå¿¡¼ÀÇ ÀÌÀüÀÇ Å° ÀÔ·ÂÀÌ dot¿´À» ¶§
static boolean dotStatus = false;
static boolean korWait = false;
static int Arrow = 0;
String korString;
static char korChar[] = new char[2];
// »ý¼ºÀÚ
TextFieldKor()
{
super("");
}
TextFieldKor(int cols)
{
super(cols);
}
// ¾î¶² ¹®ÀÚ¿À» °¡Áö°í »ý¼ºÀÚÈ£Ãâ
public TextFieldKor(String text)
{
super(text);
}
public synchronized boolean keyDown(Event evt,int key)
{
//Enter Key
if(key == 10){
// ÇÑ±Û ÀԷ¸ðµåÀÇ »óŸ¦ üũ
if(Arrow == 3) {
Arrow = 1;
// ÇöÀçÀÇ PositionÀ» ±¸ÇÑ´Ù.
int selStart = getSelectionStart();
//¹ö±×·Î ÀÎÇÑ °ÅÁö¸¸ ¹Ýº¹µÈ ±ÛÀÚ¸¦ Áö¿ì°í Á¤»óÀûÀÎ ¹®ÀÚ¿·Î
BufferingÀ» ÇÑ´Ù.
korString = getText().substring(0,getSelectionStart()-2)
+ getText().substring(getSelectionStart());
setText(korString);
select(selStart,selStart);
}
return false;
}
//¿ÞÂÊ È»ìÇ¥ key
if(key == 1006 ){
if(Arrow == 3) {
Arrow = 1;
int selStart = getSelectionStart();
korString = getText().substring(0,getSelectionStart()-2)
+ getText().substring(getSelectionStart());
setText(korString);
select(selStart,selStart);
}
return false;
}
if(key == 1007) {
if(Arrow == 3) {
Arrow = 1;
int selStart = getSelectionStart();
korString = getText().substring(0,getSelectionStart() -2) +
getText().substring(getSelectionStart());
setText(korString);
select(selStart,selStart);
}
return false;
}
if(key == 164 && (korWait == false)) {
return true;
}
// ù ¹øÂ° ÇѱÛŰ À̺¥Æ®¿¡ ´ëÇØ¼
if((korWait == false) && (key >= 176) && (key <= 200))
{
korChar[0] = (char)key;
korWait = true;
Arrow = 1;
return true;
}
//µÎ ¹øÂ° ÇѱÛŰ À̺¥Æ®¿¡ ´ëÇØ¼
else if((korWait == true) && (key >= 161) && (key <=254))
{
korChar[1] = (char)key;
korWait = false;
Arrow = 3;
int selStart = getSelectionStart();
korString = getText();
//Á¡ÀÇ ÀÔ·ÂÀÌ Àü¿¡ ÀÖ¾ú´Â °¡¸¦ üũ
if((getText().charAt((selStart < 1 ) ? 0 : selStart-1) == '.') && (selStart == getText().length()))
{
selStart = selStart - 1;
dotStatus = true;
}
// ¿Ï¼ºµÈ ÇÑ±Û ¹®ÀÚ¿¡ ´ëÇÑ Buffering
korString = korString.substring(0,selStart) + new String(korChar) + korString.substring(selStart,korString.length());
setText(korString);
if(dotStatus == true) {
dotStatus = false;
Arrow = 0;
korWait = false;
korbyte = false;
select(selStart + 4,selStart + 4);
select(getSelectionStart() +1,getSelectionStart()+1);
}
else {
if(selStart < getText().length() - 4) {
select(selStart+2,selStart+4);
}
else {
select(selStart +2,selStart+4);
}
}
return true;
}
Arrow = 0;
return false;
}
protected String paramString() {
String str = super.paramString() + ",text=" + getText();
return str + ",selection=" + getSelectionStart() + "-" + getSelectionEnd();
}
}
ÀÌÁ¦±îÁö ÀÚ¹Ù¸¦ ÀÌ¿ëÇÑ ÇÑ±Û ÀԷ±⸦ ±¸ÇöÇØ º¸¾Ò´Ù. ¾ÆÁ÷Àº ÄÚµå ÀÚü°¡ »ó´çÈ÷ ¹Ì¼÷ÇÑ ºÎºÐÀÌ Àִµ¥, ³¡±îÁö º¸¾ÆÁֽŠÁ¡¿¡ ´ëÇÏ¿© °¨»çµå¸°´Ù. ¹ÌÈíÇϳª¸¶ ÀÌ Äڵ带 ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» °³¹ßÇϴµ¥ ¸¹Àº µµ¿òÀÌ µÇ¾úÀ¸¸é ÇÑ´Ù.