±¸±Û À¥ ŸŶ Overview
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 GWT¿¡ ´ëÇØ¼­
2 ¿Ö Java±â¼úÀ» ÀÌ¿ëÇϴ°¡
3 GWTÀÌ¿ëÇϱâ
4 GWTÀÀ¿ëÀÇ °³¹ß
5 GWT Architecture
6 ¾òÀ» ¼ö ÀÖ´Â °Íµé

ÀÌ ¹®¼­ÀÇ ¿ø¹®Àº http://code.google.com/webtoolkit/overview.html ¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

1 GWT¿¡ ´ëÇØ¼­

Google Web Toolkit(ÀÌÇÏ GWT)´Â ±¸±Û¿¡¼­ °³¹ßÀÚ¸¦ À§ÇØ Á¦°øÇÏ´Â Ajax°³¹ßÀ» À§ÇÑ ÇÁ·¹ÀÓ¿öÅ©´Ù. ƯÀÌÇϰԵµ ÀÚ¹Ù½ºÅ©¸³Æ®°¡ ¾Æ´Ñ, Java¸¦ ÀÌ¿ëÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¦°øÇϴµ¥, ´öºÐ¿¡ ÀÚ¹ÙÀÇ ¿©·¯°¡Áö ±â¼úµéÀ» ÀÌ¿ëÇØ¼­ Á»´õ Æí¾ÈÇÑ È¯°æ¿¡¼­ °³¹ßÀÌ °¡´ÉÇÏ´Ù. Javascript¸¦ Á÷Á¢ ÀÌ¿ëÇØ¼­ AjaxÀÀ¿ëÀ» °³¹ßÇØº» °³¹ßÀÚ¶ó¸é, µð¹ö±ë°ú °³¹ßÀÌ ¾ó¸¶³ª ¾î·Á¿îÁö Àß ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. Áï GWT¸¦ ÀÌ¿ëÇϸé eclipse¿Í °°Àº ÈǸ¢ÇÑ È¯°æ¿¡¼­ °³¹ßÀ» ÇÒ ¼ö ÀÖ´Ù. eclipse¸¦ ÅëÇØ¼­ °³¹ß°ú µð¹ö±ëÀ» ³¡³»¸é, GWTÄÄÆÄÀÏ·¯°¡ ¸¸µé¾îÁø ÀÚ¹Ù¾ÖÇø®ÄÉÀ̼ÇÀ» JavaScript¿Í HTML·Î µÈ ÄÚµå·Î º¯°æ½ÃÄÑ ÁØ´Ù.


´ÙÀ½Àº GWT¸¦ ÀÌ¿ëÇÑ °³¹ß¹æ½ÄÀÌ´Ù.
  1. eclipse¿Í °°Àº °³¹ßÅø°ú GWT¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇØ¼­ Äڵ带 »ý¼ºÇÏ°í µð¹ö±ëÇÑ´Ù.
  2. GWTÀÇ Java to JavaScript ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇØ¼­ Javascript¿Í HTML·Î µÈ ÄÚµå·Î º¯È¯ÇÑ´Ù.
  3. ÀÌÁ¦ À¥ ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇØ¼­ ¸¸µé¾îÁø À¥¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¦´ë·Î ÀÛµ¿ÇÏ´ÂÁö È®ÀÎÇÑ´Ù.

2 ¿Ö Java±â¼úÀ» ÀÌ¿ëÇϴ°¡

Java´Â °³¹ßÇ÷¿ÆûÀ» Á¦°øÇÑ´Ù. GWT°¡ Java Ç÷¿ÆûÀ» ÀÌ¿ëÇÒ °æ¿ì ´ÙÀ½°ú °°Àº À̵æÀ» ¾òÀ» ¼ö ÀÖ´Ù.
  1. Eclipse, Intellij, JProfiler, JUnit¿Í °°Àº ÀÚ¹Ù°³¹ßÅøÀ» ÀÌ¿ëÇØ¼­ AjaxÀÀ¿ëÀ» °³¹ßÇÒ ¼ö ÀÖ´Ù.
  2. Static type checkingµîÀÌ Áö¿øµÇ´Â °ß°íÇÑ ÀÚ¹Ù¾ð¾î¸¦ »ç¿ëÇÔÀ¸·Î½á, ¿¡·¯¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.
  3. ÀÚ¹Ù½ºÅ©¸³Æ®¾ð¾î¿¡¼­ ¹ß»ýÇÏ´Â ¿¡·¯µéÀ» ½ÇÇà½Ã°£ÀÌ ¾Æ´Ñ ÄÄÆÄÀϽ𣿡 È®ÀÎÇÒ ¼ö ÀÖ´Ù.
  4. ÀÌÇØÇÏ°í °øÀ¯Çϱ⠽¬¿î °´Ã¼ÁöÇâÀûÀÎ Äڵ带 ¸¸µé¾î³½´Ù. ¹®¼­È­¿¡µµ À¯¸®ÇÏ´Ù.
  5. ÀÚ¹ÙÀÇ refactoringÀ» Ȱ¿ëÇÒ ¼ö ÀÖ´Ù.

3 GWTÀÌ¿ëÇϱâ

GWT´Â Widget¶ó°í ºÎ¸£´Â UIÄÄÆ÷³ÍÆ®µéÀ» Á¦°øÇÑ´Ù. ÀÌ Widget¿¡´Â AjaxÀÀ¿ë¿¡¼­ »ç¿ëµÇ´Â ¿©·¯°¡Áö ÇüÅÂÀÇ UI¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. ¿©±â¿¡´Â ÆÇ³Ú, ·¹À̾ƿô°ú °°Àº ¾ÖÇø®ÄÉÀÌ¼Ç UI¿ä¼ÒµéÀÌ Æ÷ÇԵȴÙ. ´ÙÀ½Àº Ŭ¸¯ ÇÚµéÀÌ °¡´ÉÇÑ ¹öưÀ» °¡Áø GWTÀÀ¿ëÀÇ ¿¹ÀÌ´Ù.
public class Hello implements EntryPoint { 
  public void onModuleLoad() { 
    Button b = new Button("Click me", new ClickListener() { 
      public void onClick(Widget sender) { 
        Window.alert("Hello, AJAX"); 
      } 
    }); 
    RootPanel.get().add(b); 
  } 
} 
 
À̿ܿ¡µµ hierachical tree, ÅǹÙ, ¸Þ´º¹Ù, ´ÙÀ̾ó·Î±× »óÀÚ¿Í °°Àº Widgetµµ Á¦°øÇÑ´Ù. ¶ÇÇÑ RPC±îÁöµµ Áö¿øÇÑ´Ù.


4 GWTÀÀ¿ëÀÇ °³¹ß

GWT ÀÀ¿ëÀº ´ÙÀ½ µÎ°¡ÁöÀÇ ¸ðµå¸¦ °¡Áø´Ù.

  • È£½ºÆ®¸ðµå : È£½ºÆ® ¸ðµå¿¡¼­ ÀÀ¿ëÀº ÀÚ¹Ù°¡»ó¸Ó½Å¿¡¼­ Java bytecodeÇüÅ·Π½ÇÇàµÈ´Ù. ¾Æ¸¶µµ ´ç½ÅÀº °³¹ßÀÇ °ÅÀÇ ´ëºÎºÐÀÇ ½Ã°£À» ÀÌ ¸ðµå¿¡¼­ º¸³»°Ô µÉ °ÍÀÌ´Ù. ÀÚ¹Ù°¡»ó¸Ó½ÅÀ» »ç¿ëÇÑ´Ù´Â °ÍÀº ÀÌŬ¸³½º°°Àº Åø°ú ÀÚ¹ÙÀÇ µð¹ö±ëȯ°æÀ» »ç¿ëÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÏ´Â °ÍÀ̱⠶§¹®ÀÌ´Ù.
  • À¥¸ðµå : GWTÀÇ Java-to-JavaScript ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇØ¼­ ÇØ¼®µÈ Javascript¿Í HTML·ÎµÈ Äڵ带 ½ÇÇàÇÑ´Ù. À̰ÍÀº °³¹ßÇÑ GWTÀÀ¿ëÀ» À¥¼­¹ö¿¡ ¿Ã·Á¼­ ºê¶ó¿ìÀú¸¦ ÅëÇØ¼­ È®ÀÎÇÏ´Â ´Ü°è·Î, ¼­ºñ½º Å×½ºÆ®¸¦ ÇÒ ¼ö ÀÖ´Ù.

ÀÀ¿ë°³¹ßÀ» È£½ºÆ®¸ðµå¿¡¼­ ÇÒ °æ¿ì ¸¹Àº À̵æÀÌ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ¶ÇÇÑ JVM¿¡¼­ ÀÛµ¿Çϴ Ưº°ÇÑ À¥ºê¶ó¿ìÀú¸¦ Á¦°øÇϴµ¥, ÀÌ°É ÀÌ¿ëÇϸé, ±»ÀÌ À¥¸ðµå »óŰ¡ ¾Æ´Ï´õ¶óµµ, ´ëºÎºÐÀÇ Å×½ºÆ®°¡ °¡´ÉÇÏ´Ù.

5 GWT Architecture

gwt-architecture.png

GWT´Â Java-to-JavaScript compiler, hosted web browser ±×¸®°í µÎ°³ÀÇ Àڹ٠Ŭ·¡½º ¶óÀ̺귯¸®¸¦ °¡Áø 4°³ÀÇ ÄÄÆ÷³ÍÆ®·Î ÀÌ·ç¾îÁø´Ù.

  • Java-to-JavaScript ÄÄÆÄÀÏ·¯
    GWT Java-to-JavaScript ÄÄÆÄÀÏ·¯´Â ÀÚ¹Ù¾ð¾î·ÎµÈ ÇÁ·Î±×·¥ Äڵ带 JavaScript ÇÁ·Î±×·¥ ¾ð¾î·Î º¯È¯ÇÑ´Ù. ÀÌ·¸°Ô ÄÄÆÄÀÏµÈ ÄÚµå´Â À¥¸ðµå¿¡¼­ Å×½ºÆ®ÇÒ ¼ö ÀÖ´Ù.
  • Hosted Web Broswer
    Hosted Web ºê¶ó¿ìÀú´Â ¸¸µé¾îÁø GWTÀÀ¿ëÀ» È£½ºÆ®¸ðµå¿¡¼­ Å×½ºÆ®ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ °úÁ¤Àº JVM¿¡¼­ ÀϾ°Ô µÇ¹Ç·Î JavaScript·ÎÀÇ ÄÄÆÄÀÏ ¾øÀÌ Å×½ºÆ®ÇÒ ¼ö ÀÖ´Ù. À̸¦ À§Çؼ­ JVM¿¡¼­ ÀÛµ¿ÇÏ´Â º°µµÀÇ À¥ºê¶ó¿ìÀú¸¦ Á¦°øÇÑ´Ù.
  • JRE emulation ¶óÀ̺귯¸®
    ÀÚÁÖ »ç¿ëµÇ´Â JavaScript ±¸ÇöÀ» Æ÷ÇÔÇÑ Àڹ٠Ŭ·¡½º ¶óÀ̺귯¸®·Î, java.lang ÆÐŰÁö¿Í java.utilÆÐŰÁö¸¦ Æ÷ÇÔÇÑ´Ù.
  • GWT Web UI class ¶óÀ̺귯¸®
    À¥ºê¶ó¿ìÀú¸¦ ÅëÇØ¼­ À¯Àú¿¡°Ô º¸¿©ÁÙ UI¸¦ À§ÇÑ wigetsÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ¿©±â¿¡´Â button, text box, images, text µî°ú °ü·ÃµÈ À§Á¬ÀÌ Æ÷ÇԵȴÙ.

6 ¾òÀ» ¼ö ÀÖ´Â °Íµé

  • ¼º´É : GWTÀÀ¿ëÀº ¼ÕÀ¸·Î Á÷Á¢ ÀÛ¼ºÇÑ HTML, JavaScript ÄÚµå¿Í °ÅÀÇ µ¿µîÇÑ ¼öÁØÀÇ ¼Óµµ¸¦ º¸¿©ÁØ´Ù.
  • °³¹ß ½Ã°£ : ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â À¥ºê·¯¿ìÀú¸¦ ÀÌ¿ëÇØ¼­ °³¹ß°ú µð¹ö±ëÀ» Çϴµ¥¿¡´Â ¸¹Àº ½Ã°£ÀÌ ¼Ò¸ðµÈ´Ù. GWT¸¦ ÀÌ¿ëÇÏ¸é °³¹ß°ú µð¹ö±ë ½Ã°£À» ±ØÀûÀ¸·Î ´ÜÃà½Ãų ¼ö ÀÖ´Ù.
  • JavaScript Å©±â : ¿ÏÀüÇÑ ±â´ÉÀ» °¡Áø GWTÀÀ¿ëÀ» ¸¸µé¸é ´ë·« 100k Á¤µµÀÇ Ä³½¬°¡´ÉÇÑ Javascript¸¦ ´Ù¿î·Îµå ¹Þ´Â´Ù. ¼ÕÀ¸·Î AjaxÀÀ¿ëÀ» Á÷Á¢ ¸¸µé¾îµµ ºñ½ÁÇÑ Å©±âÀÇ Javascript°¡ »ý¼ºµÉ °ÍÀÌ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.