구글 웹 툴킷

Google Web Toolkit
구글 웹 툴킷
Gwt logo.png
원저작자구글
초기 릴리즈2006년 5월 16일, 16년 전(2006년 5월 16일)
안정된 릴리스
2.10.0 / 2022년 6월 9일; 55일 전(2022-06-09)
저장소
기입처자바
운영 체제Linux, Windows, OS X, FreeBSD
이용가능기간:자바
유형아약스 프레임워크
면허증.Apache 라이센스 2.0
웹 사이트www.gwtproject.org

Google Web Toolkit(GWT / wɪwtt/[1] )는 웹 개발자Java에서 JavaScript 프런트엔드 애플리케이션을 만들고 유지 관리할 수 있는 오픈 소스 도구 세트입니다.Apache License 2.0[2]따라 라이센스가 부여됩니다.

GWT는 비동기 원격 프로시저 호출, 이력 관리, 북마크, UI 추상화, 국제화 및 크로스 브라우저 이식성 등 일반적인 웹 개발 태스크에 재사용 가능한 접근 방식을 강조합니다.

역사

GWT 버전 1.0 RC 1은 2006년 [3]5월 16일에 출시되었습니다.구글은 2006년 [4]자바원 컨퍼런스에서 GWT를 발표했다.

릴리스 이력
풀어주다 날짜.
GWT 1.0 2006년 5월 17일
GWT 1.1 2006년 8월 11일
GWT 1.2 2006년 11월 16일
GWT 1.3 2007년 2월 5일
GWT 1.4 2007년 8월 28일
GWT 1.5 2008년 8월 27일
GWT 1.6 2009년 4월 7일
GWT 1.7 2009년 7월 13일
GWT 2.0 2009년 12월 8일
GWT 2.1.0 2010년 10월 19일
GWT 2.2.0 2011년 2월 11일
GWT 2.3.0 2011년 5월 3일
GWT 2.4.0 2011년 9월 8일
GWT 2.5.0 2012년 10월
GWT 2.5.1 2013년 3월
GWT 2.6.0 2014년 1월 30일
GWT 2.6.1 2014년 5월 10일
GWT 2.7.0 2014년 11월 20일
GWT 2.8.0 2016년 10월 20일
GWT 2.8.1 2017년 4월 24일
GWT 2.8.2 2017년 10월 19일
GWT 2.9.0 2020년 5월 2일
GWT 2.10.0 2022년 6월 9일

2010년 8월 구글은 이클립스용 구글 플러그인과 번들된 GWT Designer를 포함한 이클립스 자바 개발자 도구에 주력하는 것으로 알려진 Instantiations를 [5]인수했다.

2011년 다트 프로그래밍 언어의 도입으로 구글은 GWT 커뮤니티에 GWT가 가까운 미래에도 계속 지원될 것이라고 확신시켰지만, 또한 "구조화된 웹 프로그래밍"에 대한 두 구글 접근법 간의 화해 가능성을 시사했다.그러나 그들은 이전에 GWT에서 일했던 많은 엔지니어들이 현재 [6]Dart에서 일하고 있다는 사실도 인정했다.

2012년 연례 I/O 컨퍼런스에서 Google은 GWT가 Google 프로젝트에서 완전 오픈 소스 [7]프로젝트로 전환될 것이라고 발표했습니다.2013년 7월, Google은 GWT 블로그에 오픈 소스 프로젝트로의 전환이 [8]완료되었다고 발표했습니다.

GWT를 사용한 개발

개발자는 GWT를 사용하여 선택한 Java 개발 도구를 사용하여 Java 언어로 Ajax 애플리케이션을 개발하고 디버깅할 수 있습니다.어플리케이션이 도입되면 GWT 크로스 컴파일러는 Java 어플리케이션을 스탠드아론 JavaScript 파일로 변환합니다.이 파일은 옵션으로 난독화되어 완전히 최적화됩니다.필요에 따라 자바스크립트를 자바 [9]코드에 직접 삽입하여 자바 코멘트를 사용할 수도 있습니다.

GWT는 사용자 인터페이스 프로그래밍을 중심으로 하는 것이 아니라 고성능 클라이언트 측 JavaScript 기능을 구축하기 위한 일반적인 도구 세트입니다.실제로 많은 중요한 아키텍처 결정은 전적으로 개발자에게 맡겨져 있습니다.GWT의 미션[10] 스테이트먼트는 GWT의 역할과 개발자의 역할의 철학적인 구분을 명확히 하고 있습니다.히스토리가 그 예입니다.사용자가 브라우저에서 [Back]또는 [Forward]를 클릭할 때 GWT는 이력 토큰을 관리하지만 이력 토큰을 응용 프로그램 상태에 매핑하는 방법은 규정하지 않습니다.

GWT 애플리케이션은, 다음의 2개의 모드로 실행할 수 있습니다.

  • 개발 모드(이전 호스트 모드):애플리케이션은 Java Virtual Machine(JVM;[11] Java 가상 머신) 에서 Java 바이트 코드로 실행됩니다.이 모드는 일반적으로 코드 핫스왑 및 디버깅을 지원하는 개발에 사용됩니다.2014년, GWT 2.[14]7에서는 더 호환성이 높은 Super Dev 모드로 대체될 때까지 브라우저[12][13] 업데이트로 개발 모드를 사용할 수 없게 되었습니다.
  • 프로덕션 모드(이전모드):어플리케이션은 Java 소스에서 컴파일된 순수 JavaScript 및 HTML로 실행됩니다.이 모드는, 통상은 전개에 사용됩니다.

NetBeans용 GWT4NB[15], GWT용[16] Cypal Studio(Eclipse 플러그인), JDeveloper용 GWT Developer 등 다른 IDE에서 GWT 개발을 용이하게 하기 위해 여러 오픈 소스 플러그인을 사용할 수 있습니다.Google 플러그인 for Eclipse는 프로젝트 만들기, GWT 컴파일러 호출, GWT 시작 구성 만들기, 유효성 검사 및 구문 강조 표시 등 IDE에서 대부분의 GWT 관련 작업을 처리합니다.

구성 요소들

주요 GWT 컴포넌트는 다음과 같습니다.

GWT Java-to-JavaScript[17][18] 컴파일러
Java 프로그래밍 언어를 JavaScript 프로그래밍 언어로 변환합니다.
GWT 개발 모드
개발자가 개발 모드에서 GWT 애플리케이션을 실행하고 실행할 수 있도록 합니다(앱은 JavaScript로 컴파일하지 않고 JVM에서 Java로 실행됩니다).2.0 이전 버전에서는 GWT 호스트 모드에서는 GWT 코드를 디버깅하기 위한 특별한 용도의 "호스트된 브라우저"가 제공되었습니다.2.0에서는 디버깅되는 웹 페이지는 일반 브라우저 내에서 표시됩니다.개발 모드는 많은 인기 브라우저용 Google Web Toolkit Developer Plugin이라는 네이티브 코드 플러그인을 통해 지원됩니다.
JRE 에뮬레이션 라이브러리
Java 표준 클래스 라이브러리에서 일반적으로 사용되는 클래스의 JavaScript 구현(예: 대부분의 java.lang 패키지 클래스 및 java.util 패키지 클래스의 서브셋).
GWT Web UI 클래스 라이브러리
위젯을 작성하기 위한 사용자 지정 인터페이스 및 클래스 세트입니다.

특징들

  • 동적 및 재사용 가능한 UI 구성 요소: 프로그래머는 미리 설계된 클래스를 사용하여 드래그 앤 드롭이나 정교한 시각적 트리 [19]구조 등 시간이 많이 걸리는 동적 동작을 구현할 수 있습니다.
  • 단순한 RPC 메커니즘
  • 브라우저 이력 관리
  • 풀기능 Java[4] 디버깅 지원
  • GWT는 [4]개발자의 크로스 브라우저 문제를 처리합니다.
  • 유닛 테스트 통합
  • 국제화현지화 지원
  • HTML Canvas 지원(API [20]변경에 따라 다름)
  • 개발자는 JavaScript Native Interface(JSNI)를 사용하여 손으로 쓴 JavaScript를 Java 소스 코드에 혼합할 수 있습니다.
  • GWT 응용 프로그램에서 Google API 사용 지원(초기 Google Gears 지원)
  • 오픈 소스
  • 개발자는 (JavaScript [19]대신) Java를 사용하기 때문에 순수한 객체 지향 방식으로 애플리케이션을 설계하고 개발할 수 있습니다.오타나 타입 미스매치등의 일반적인 JavaScript 에러는 컴파일시에 검출됩니다.
  • GWT 컴파일러가 생성하는 JavaScript는 해독되지 않고(Source-Mapped 또는 Source-Code), 이해하기 쉽거나 난독화 및 [19]압축되도록 맞춤화할 수 있습니다.
  • GWT, Google 및 서드파티에 의해 많은 라이브러리를 이용할 수 있습니다.툴킷의 [19]기능을 확장합니다.

사용 가능한 위젯

버전 2.4(2011년 9월)부터 Google Web Toolkit은 여러 위젯[21][21]패널을 제공합니다.

위젯 및 패널
위젯 패널
단추 팝업 패널
푸시 버튼 스택 패널
라디오 버튼 Stack Layout 패널
체크 박스 수평 패널
날짜 선택기 세로 패널
토글 버튼 플로우 패널
텍스트 박스 수직 분할 패널
패스워드 텍스트 박스 수평 분할 패널
텍스트 영역 Split Layout 패널
하이퍼링크 독패널
리스트 박스 Dock Layout 패널
셀 리스트 탭 패널
메뉴바 TabLayout 패널
트리 공개 패널
셀 트리
제안 상자
리치 텍스트 영역
FlexTable
격자무늬
셀 테이블
셀브라우저
탭바
대화상자

GWT에서 찾을 수 없는 많은 공통 위젯이 서드파티 라이브러리에 구현되어 있습니다.

엔터프라이즈 사용

GWT는 Java, Apache Tomcat(또는 유사한 웹 컨테이너), Eclipse IDE, Internet Explorer [22]국제화현지화를 사용하거나 지원합니다.Java 기반의 GWT 리치애플리케이션JUnit 테스트 프레임워크 및 코드 커버리지 툴을 사용하여 테스트할 수 있습니다.GWT를 사용하면 이미지, CSS 및 비즈니스 로직 컴파일 시간 검증이 가능하기 때문에 RIA에서 일반적으로 필요로 하는 수동 테스트 없이 많은 일반적인 개발 결함이 자동으로 검출됩니다.

구글은 자사 제품 중 일부가 GWT [23]기반이라는 점에 주목했다.블로거, AdWords, Flights, Wallet, Offers, Groups, Inbox.[24]

GWT 2.0

2009년 12월 8일 구글은 스피드 트레이서를 [25]탑재한 Google Web Toolkit 2.0을 출시했다.

GWT 버전 2.0에서는 다음과 같은 많은 [26]신기능이 제공됩니다.

  • 브라우저 내 개발 모드(이전 명칭: Out Of Process Hosted Mode, OOPM): 2.0 이전 버전에서는 개발 중에 애플리케이션의 바이트 코드 버전을 실행할 수 있도록 변경된 브라우저를 내장하기 위해 사용되었던 호스트 모드입니다.버전 2.0에서는 호스트 모드로 이름이 "개발 모드"로 변경되어 브라우저 플러그인을 사용하여 디버깅되는 페이지를 볼 수 있습니다.플러그인은 TCP/IP를 사용하여 개발 모드셸과 통신합니다.이를 통해 플랫폼 간 디버깅이 가능합니다(예를 들어 Linux 머신에서 실행되는 개발 모드셸에서 Windows의 Internet Explorer 디버깅).
  • 코드 분할: 개발자가 소스 코드에 "분할 포인트"를 제공함으로써 GWT 컴파일러는 자바스크립트 코드를 하나의 큰 다운로드가 아닌 여러 개의 작은 청크로 분할할 수 있습니다.이것에 의해, 초기 다운로드의 사이즈가 작아지기 때문에, 애플리케이션의 기동 시간이 단축됩니다.
  • 선언형 사용자 인터페이스: XML 형식을 사용하여 UiBinder로 알려진 새로운 기능을 통해 코드가 아닌 선언을 통해 사용자 인터페이스를 생성할 수 있습니다.이를 통해 UI 구축과 동작 구현을 명확하게 분리할 수 있습니다.
  • 자원 번들: ClientBundle 인터페이스에서는 모든 종류의 자원(이미지, CSS, 텍스트, 바이너리)을 함께 번들하여 한 번의 다운로드로 전송할 수 있습니다.이로 인해 서버로의 라운드 트립이 감소하여 애플리케이션 레이텐시가 단축됩니다.

새로운 개발 모드에서는 대부분의 플랫폼 고유의 코드가 삭제되었기 때문에 새로운 버전은 이전 버전과 같이 지원되는 플랫폼별로 1개가 아닌 고유한 아카이브로 배포됩니다.

모바일.

웹 앱을 만드는 일반적인 프레임워크로서 Google Web Toolkit은 필요한 위젯과 애니메이션을 처음부터 만들거나 GWT용 모바일 프레임워크 중 하나를 사용하여 모바일 및 태블릿 앱을 만드는 프레임워크로도 사용할 수 있습니다. GWT로 작성된 HTML5 앱은 태블릿과 휴대폰에 대해 별도의 뷰를 제공할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "GWT Name Use Policy". Retrieved 2014-04-23.
  2. ^ "Google Web Toolkit License Information". February 23, 2007. Retrieved 2007-09-25.
  3. ^ "Google Web Toolkit Release Archive". Retrieved 2007-09-25.
  4. ^ a b c Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0-596-10187-9.
  5. ^ Ramsdale, Chris. "Google Relaunches Instantiations Developer Tools".
  6. ^ "Google Web Toolkit Blog: GWT and Dart". Googlewebtoolkit.blogspot.com. 2011-11-10. Retrieved 2013-06-16.
  7. ^ Google Web Toolkit(GWT) 개발을 지원하는 Vaadin. vaadin.com(2012-06-29)2014년 5월 15일 취득.
  8. ^ Google Web Toolkit 블로그: GWT 뉴스.구글 웹툴킷blogspot.com (2013-07-15)2014년 5월 15일 취득.
  9. ^ "Coding Basics - JavaScript Native Interface (JSNI) - Google Web Toolkit — Google Developers". Google Inc. 2012-10-25. Retrieved 2013-06-16.
  10. ^ GWT 미션 스테이트먼트
  11. ^ 개발 모드에서의 디버깅
  12. ^ "Development Mode will not be supported in Firefox 27+". google-web-toolkit@googlegroups.com (Mailing list).
  13. ^ "GWT Developer Plugin no longer works with Chrome on Linux". google-web-toolkit@googlegroups.com (Mailing list).
  14. ^ "Super Dev Mode".
  15. ^ GWT4NB
  16. ^ GWT용 Cypal Studio
  17. ^ "com.google.gwt.dev.Compiler". The main executable entry point for the GWT Java to JavaScript compiler.
  18. ^ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler". A base for classes that compile Java JProgram representations into corresponding Js source.
  19. ^ a b c d Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly Short Cuts. O'Reilly. pp. 1–5. ISBN 978-0-596-51022-0.
  20. ^ "GWT Javadoc Canvas".
  21. ^ a b "Widget List". Google Inc. Retrieved 2012-05-21.
  22. ^ GWT 프로젝트GWT 프로젝트2014년 5월 15일 취득.
  23. ^ "Google I/O 2012 - The History and Future of Google Web Toolkit". GoogleDevelopers. Retrieved 2013-03-18.
  24. ^ Toubassi, Garrick. "Going under the hood of Inbox". Official Gmail Blog. Retrieved 22 November 2014.
  25. ^ Google Web Toolkit 2.0 소개(Speed Tracer 포함)
  26. ^ "GWT 2.0 milestone 1 announcement". Amit Manjhi. Retrieved 2009-10-05.

참고 문헌