GWT는 Google Web Toolkit(구글 웹 툴킷)의 약어로, 구글(Google)이 개발한 오픈소스 웹 애플리케이션 개발 도구 모음이다. 정식 명칭은 GWT Web Toolkit이기도 하며, 아파치 라이선스 2.0(Apache License 2.0) 하에 배포된다.
GWT의 핵심 기능은 웹 개발자가 자바(Java) 프로그래밍 언어를 사용하여 프런트엔드(Front-end) 자바스크립트(JavaScript) 애플리케이션을 작성하고, 이를 배포 시점에 GWT 컴파일러가 최적화된 독립형 자바스크립트 파일로 변환해 주는 것이다. 이를 통해 개발자는 브라우저 호환성이나 자바스크립트의 세부적인 구현에 대한 깊은 지식 없이도 고성능 웹 애플리케이션을 개발할 수 있다.
GWT는 2006년 5월 16일에 첫 번째 릴리스(버전 1.0 RC 1)가 공개되었으며, 같은 해 자바원(JavaOne) 컨퍼런스에서 구글이 공식 발표하였다. 2012년 구글 I/O 콘퍼런스에서 구글은 GWT를 완전한 오픈소스 프로젝트로 전환하겠다고 발표하였고, 2013년 7월에 그 전환이 완료되었다. 이후 GWT는 gwtproject.org를 중심으로 커뮤니티 기반의 오픈소스 프로젝트로 관리되고 있다.
주요 구성 요소는 다음과 같다.
- Java-to-JavaScript 컴파일러: 자바 코드를 고도로 최적화된 자바스크립트 코드로 변환한다.
- 개발 모드(Development Mode): 자바 가상 머신(JVM) 위에서 애플리케이션을 실행하여 디버깅 및 코드 핫스와핑(Hot Swapping)을 지원한다. 초기에는 호스티드 모드(Hosted Mode)라 불렸으며, 이후 수퍼 개발 모드(Super Dev Mode)로 대체되었다.
- 운영 모드(Production Mode): 순수 자바스크립트와 HTML로 컴파일되어 배포된다.
- JRE 에뮬레이션 라이브러리: 자바 표준 라이브러리 중 일부(java.lang, java.util 패키지 등)를 자바스크립트 환경에서 사용할 수 있도록 구현한 라이브러리이다.
- GWT 웹 UI 클래스 라이브러리: 버튼, 텍스트 박스, 패널, 트리, 메뉴 등 다양한 위젯(Widget)과 패널을 제공한다.
- 비동기 원격 프로시저 호출(RPC) 메커니즘: 클라이언트와 서버 간의 통신을 지원한다.
- 브라우저 히스토리 관리 및 북마킹 지원
- 국제화(i18n) 및 지역화(l10n) 지원
- UIBinder: XML 기반 선언적 방식으로 사용자 인터페이스를 구성할 수 있는 기능이다.
- 코드 분할(Code Splitting): 애플리케이션 초기 로딩 시간을 줄이기 위해 자바스크립트 코드를 여러 개의 작은 단위로 분할할 수 있다.
- 클라이언트 번들(ClientBundle): 이미지, CSS, 텍스트 등 리소스를 하나의 번들로 묶어 전송함으로써 서버 요청 횟수를 줄인다.
GWT는 구글 내부 제품들에서도 사용되었으며, 블로거(Blogger), 구글 애드워즈(AdWords, 현재 구글 Ads), 구글 플라이트(Flights), 구글 월렛(Wallet), 구글 오퍼스(Offers), 구글 그룹스(Groups), 구글 인박스(Inbox) 등이 GWT 기반으로 개발된 것으로 알려져 있다.
GWT 버전 2.13.0이 2026년 2월 11일에 출시되었으며, 자바, 이클립스(Eclipse) IDE, 아파치 톰캣(Apache Tomcat) 등 다양한 환경에서 개발 및 운영이 가능하다. 현재 GWT 프로젝트의 공식 웹사이트는 www.gwtproject.org이며, 소스 코드는 GitHub(github.com/gwtproject/gwt)에서 관리되고 있다.