구글 웹 툴킷
Google Web Toolkit| 원저작자 | 구글 |
|---|---|
| 초기 릴리즈 | 2006년 5월 16일, 전( 5월 16일 |
| 안정된 릴리스 | 2.10.0 / 2022년 6월 9일; 전( |
| 저장소 | |
| 기입처 | 자바 |
| 운영 체제 | Linux, Windows, OS X, FreeBSD |
| 이용가능기간: | 자바 |
| 유형 | 아약스 프레임워크 |
| 면허증. | Apache 라이센스 2.0 |
| 웹 사이트 | www |
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 앱은 태블릿과 휴대폰에 대해 별도의 뷰를 제공할 수 있습니다.
「 」를 참조해 주세요.
- Dart(프로그래밍 언어)
- 이클립스용 구글 플러그인
- 구글 코드
- JavaScript 프레임워크 비교
- 웹 프레임워크 비교
- C++를 JavaScript 또는 WebAssembly로 변환하기 위한 Emscripten
레퍼런스
- ^ "GWT Name Use Policy". Retrieved 2014-04-23.
- ^ "Google Web Toolkit License Information". February 23, 2007. Retrieved 2007-09-25.
- ^ "Google Web Toolkit Release Archive". Retrieved 2007-09-25.
- ^ a b c Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0-596-10187-9.
- ^ Ramsdale, Chris. "Google Relaunches Instantiations Developer Tools".
- ^ "Google Web Toolkit Blog: GWT and Dart". Googlewebtoolkit.blogspot.com. 2011-11-10. Retrieved 2013-06-16.
- ^ Google Web Toolkit(GWT) 개발을 지원하는 Vaadin. vaadin.com(2012-06-29)2014년 5월 15일 취득.
- ^ Google Web Toolkit 블로그: GWT 뉴스.구글 웹툴킷blogspot.com (2013-07-15)2014년 5월 15일 취득.
- ^ "Coding Basics - JavaScript Native Interface (JSNI) - Google Web Toolkit — Google Developers". Google Inc. 2012-10-25. Retrieved 2013-06-16.
- ^ GWT 미션 스테이트먼트
- ^ 개발 모드에서의 디버깅
- ^ "Development Mode will not be supported in Firefox 27+". google-web-toolkit@googlegroups.com (Mailing list).
- ^ "GWT Developer Plugin no longer works with Chrome on Linux". google-web-toolkit@googlegroups.com (Mailing list).
- ^ "Super Dev Mode".
- ^ GWT4NB
- ^ GWT용 Cypal Studio
- ^ "com.google.gwt.dev.Compiler".
The main executable entry point for the GWT Java to JavaScript compiler.
- ^ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler".
A base for classes that compile Java
JProgramrepresentations into corresponding Js source. - ^ 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.
- ^ "GWT Javadoc Canvas".
- ^ a b "Widget List". Google Inc. Retrieved 2012-05-21.
- ^ GWT 프로젝트GWT 프로젝트2014년 5월 15일 취득.
- ^ "Google I/O 2012 - The History and Future of Google Web Toolkit". GoogleDevelopers. Retrieved 2013-03-18.
- ^ Toubassi, Garrick. "Going under the hood of Inbox". Official Gmail Blog. Retrieved 22 November 2014.
- ^ Google Web Toolkit 2.0 소개(Speed Tracer 포함)
- ^ "GWT 2.0 milestone 1 announcement". Amit Manjhi. Retrieved 2009-10-05.
참고 문헌
- Dewsbury, Ryan (December 15, 2007). Google Web Toolkit Applications. Prentice Hall. p. 608. ISBN 978-0-321-50196-7.
- Chaganti, Prabhakar (February 15, 2007). Google Web Toolkit: GWT Java Ajax Programming. Packt Publishing. p. 248. ISBN 978-1-84719-100-7.
- Geary, David (November 17, 2007). Google Web Toolkit Solutions: More Cool & Useful Stuff. Prentice Hall. p. 408. ISBN 978-0-13-234481-4.
- Hanson, Robert; Adam Tacy (February 7, 2013). GWT in Action (2nd ed.). Manning. p. 643. ISBN 978-1-935182-84-9.
- Cooper, Robert; Charlie Collins (May 12, 2008). GWT in Practice. Manning. p. 376. ISBN 978-1-933988-29-0.