플레이 프레임워크
Play Framework![]() | |
개발자 | Lightbend, Zengularity 및 커뮤니티 |
---|---|
초기 릴리즈 | 2007년 |
안정된 릴리스 | 2.8.16[1] / 2022년 6월 ; 전 ) |
저장소 | 저장소 재생 |
기입처 | 스칼라 |
이용가능기간: | 영어 |
유형 | 웹 응용 프로그램 프레임워크 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | playframework |
Play Framework는 모델 뷰 컨트롤러(MVC) 아키텍처 패턴을 따르는 오픈 소스 웹 애플리케이션 프레임워크입니다.이것은 Scala로 작성되며 Java와 같은 JVM 바이트 코드로 컴파일된 다른 프로그래밍 언어에서 사용할 수 있습니다.구성, 핫 코드 새로고침 및 브라우저 [2]오류 표시를 통해 개발자의 생산성을 최적화하는 것을 목표로 하고 있습니다.
Scala 프로그래밍 언어는 프레임워크 [3]버전 1.1부터 지원되고 있습니다.버전 2.0에서는 프레임워크 코어가 Scala로 다시 작성되었습니다.빌드 및 배포가 SBT로 마이그레이션되었으며 템플릿은 Apache Groovy 대신 Scala를 사용합니다[4].
역사
Play는 소프트웨어 개발자인 Guilla Bort가 Zengularity SA(구 Zenexity)[5]에서 일할 때 만들었습니다.초기 릴리즈는 온라인으로 입수할 수 없게 되었지만 Play는 2007년 [6]5월부터 존재했다는 증거가 있습니다.2007년에는 프로젝트의 프리 릴리즈 버전을 Zenexity의 [7]웹사이트에서 다운로드할 수 있었습니다.
버전 | 날짜. | 메모들 |
---|---|---|
버전 더 이상 보수되지 않음 | 2008년 5월 | 1.0의 첫 공개 코드가 Launchpad에 [8]표시되었습니다.그 후 2009년 [9]10월에 1.0이 풀 릴리즈 되었습니다. |
버전, 보수 1.1 | 2010년 11월 | Launchpad에서 GitHub으로 이행 후 출시.Apache MINA에서 JBoss Netty로의 이행, Scala 지원, 네이티브 GlassFish 컨테이너, 비동기 웹 서비스 라이브러리, OAuth 지원, HTTPS 지원 및 기타 [10]기능이 포함되어 있습니다. |
버전, 보수 1.2 | 2011년 4월 | Apache Ivy를 사용한 의존관계 관리, WebSocket 지원, 통합 데이터베이스 마이그레이션(리버전 미실장[11]), 기본 개발 데이터베이스로 H2 데이터베이스로의 전환 및 기타 [12]기능이 포함되어 있습니다. |
버전, 보수 1.3 | 2015년 1월 15일 | 업그레이드된 라이브러리(netty, hibernate 등), 여러 데이터베이스 지원 추가, 맞춤형 템플릿 이름 해결 포함. |
버전 더 이상 보수되지 않음 | 2015년 10월 30일 | Java 7과 호환되며 Java 6에 대한 지원이 삭제되었습니다.활성화된 ssl 프로토콜을 정의하는 기능이 추가되었습니다. |
버전 더 이상 보수되지 않음 | 2017년 9월 29일 | Hibernate 5.x로 업그레이드. 1.8 이전 버전의 Java 지원이 중단되었습니다. |
버전 더 이상 보수되지 않음 | 2021년 3월 15일 | Java 14와 호환되며 라이브러리가 업그레이드됨 |
1.7 | 2022년 4월 3일 | Java 17과 호환되며 라이브러리가 업그레이드되고 11 이전 버전의 Java 지원이 중단되며 Python 3으로 업그레이드되는 Play scripts |
버전, 보수 2.0 | 2012년 3월 13일 | Sadek Drobi는 2011년 말에 Guillaume Bort에 입사하여 Typesafe Stack 2.0과 [14]함께 Play 2.0을 만들었습니다[13]. |
버전, 보수 2.1 | 2013년 2월 6일 | Scala 2.10으로 업그레이드하여 모듈화, 새로운 JSON API, 필터 및 Require 등의 신기능이 도입되었습니다.JS [15]지원 |
버전, 보수 2.2 | 2013년 9월 20일 | SBT 지원 0.13으로 업그레이드, 버퍼링 지원 향상, gzip 및 new 지원 내장stage 그리고.dist OS X(DMG), Linux(RPM, DEB, Windows(MSI) 등 여러 플랫폼에서 네이티브 패키징을 지원하는 작업과 zip 파일을 지원합니다. |
버전, 보수 2.3 | 2014년 5월 30일 | Activator 명령어, 정적 자산용 툴링 향상, Java 8 및 Scala 2.11 지원, 성능 향상, Web 서비스 향상 및 Actors와 Web 소켓 통합 지원 소개. |
버전, 보수 2.4 | 2015년 5월 26일 | Dependency Injection(의존성 주입)을 통해 다른 응용 프로그램에 Play를 내장할 수 있고 Java 8 지원이 향상되었으며 HikariCP가 기본 연결 풀로서 기능하며 API 테스트도 개선되었습니다. |
버전, 보수 2.5 | 2016년 3월 29일 | 모든 비동기 IO 및 스트리밍에 대해 반복에서 Akka 스트림으로 전환, 사용자 지정 기능 유형을 Java 8 유형으로 대체(예:CompletionStage 그리고.Optional )에서는 필터나 커스텀 바디 파서의 실장 등 이전에는 Scala API에만 존재했던 기능을 위해 퍼포먼스가 20% 향상되는 동등한 Java API를 도입했습니다. |
버전 더 이상 보수되지 않음: | 2017년 6월 23일 | 기본 서버 백엔드로 Akka HTTP를 사용하여 시험적인 HTTP/2 지원, Scala 2.12 지원, 글로벌 상태 없음, 쿠키용 JSON Web Token 형식, 보안 및 구성 개선. |
버전이지만 2.7 | 2019년 2월 1일 | Scala 2.13 지원, 기본 캐시 구현으로서의 카페인 지원, HikariCP 및 Guice 버전 업데이트, 폼 검증 및 파일 업로드 [16]기능 향상. |
2.8 | 2019년 12월 13일 | Java 11 지원, 업데이트된 Akka, Jackson, 범위 결과에[17] 대한 사전 검색 소스 지원 |
구버전 이전 버전, 아직 유지 관리됨 최신 버전 최신 프리뷰 버전 |
동기
Play는 ASP에서 많은 영감을 받았습니다.NET MVC, Ruby on Rails 및 Django는 이 프레임워크 패밀리와 유사합니다.플레이 웹 애플리케이션은 Java Enterprise Edition이 덜 중심적인 환경에서 Scala 또는 Java로 작성할 수 있습니다.재생은 Java EE 구속조건을 사용하지 않습니다.이를 통해 다른 Java [18]중심 플랫폼에 비해 Play를 쉽게 개발할 수 있습니다.
Play 1.x는 표준 Java EE 응용 프로그램서버에 [19]배포하기 위한 WAR 파일로 패키징할 수도 있지만 Play 2.x 응용 프로그램은 내장된 Akka HTTP 또는 Netty 웹 서버를 사용하여 단독으로 실행되도록 설계되었습니다.
Java 프레임워크와의 주요 차이점
- 스테이트리스:Play 2는 완전히 RESTful입니다. 연결마다 Java EE 세션이 없습니다.
- 통합 유닛 테스트: JUnit 및 Selenium 지원이 코어에 포함되어 있습니다.
- API에는 대부분의 필수 요소가 포함되어 있습니다.
- 비동기 I/O:Akka HTTP를 웹 서버로 사용하기 때문에 Play는 Servlet 3.0이 [20]제공하는 비동기 지원을 사용하지 않는 Java EE 프레임워크와 같은 비즈니스 로직을 수행하는 HTTP 스레드를 묶는 대신 긴 요청을 비동기적으로 처리할 수 있습니다.
- 모듈러 아키텍처: Ruby on Rails 및 Django와 마찬가지로 Play는 모듈의 개념을 가지고 있습니다.
- 네이티브 Scala 지원: Play 2는 내부적으로 Scala를 사용하지만 Scala API와 Java 규약에 맞게 의도적으로 약간 다른 Java API를 모두 제공합니다.Play는 Java와 완전히 상호 운용할 수 있습니다.
테스트 프레임워크
Play는 Scala 및 Java 애플리케이션 모두에서 유닛 테스트 및 기능 테스트를 위한 테스트 프레임워크와의 통합을 제공합니다.Scala의 경우 Scalatest 및 Speces2와의 통합이 즉시 제공되며 Java의 경우 JUnit 4와의 통합이 있습니다.두 언어 모두 Selenium(소프트웨어)과의 통합도 있습니다.SBT는 테스트 실행 및 보고서 생성에 사용됩니다.scoverage나 jacoco4sbt와 같은 sbt 플러그인을 사용하여 코드 커버리지 툴을 사용할 수도 있습니다.
사용.
2010년 12월 Play 프레임워크용 첫 번째 전자책이 [21]출시되었습니다.이것은 그 후에 하드 카피로도 출판되었다.
2011년 8월, 보다 복잡하고 현대적인 [22]기능을 다루는 두 번째 책이 출시되었습니다.2011년 8월 Heroku는 클라우드 컴퓨팅 플랫폼에서 [23]Play 애플리케이션을 기본적으로 지원한다고 발표했습니다.이는 Google App Engine에서 Play 1.0(Play 2.x가 아님)을 모듈 기반으로 지원하고 Amazon [24]Web Services에서 문서화된 지원에 이은 것입니다.
2013년 7월 Jelastic은 클라우드 컴퓨팅 플랫폼에서 [25]Play 2를 지원하는 튜토리얼을 발표했습니다.
2015년 7월 Play는 64,562 Libraries를 기반으로 GitHub에서 세 번째로 인기 있는 Scala 라이브러리였습니다. 상위 Scala 프로젝트의 21.3%가 [26]Play를 선택 프레임워크로 사용했습니다.
2013년 10월[update] 현재 Play Framework는 GitHub에서 [27]가장 인기 있는 Scala 프로젝트입니다.
「 」를 참조해 주세요.
문학.
- Peter Hilton; Erik Bakker & Francisco Canedo (2013). Play for Scala. Manning. ISBN 9781617290794.
- Andy Petrella (2013). Learning Play! Framework 2. Packt Publishing. ISBN 978-1-78216-012-0.
- Nicolas Leroux; Sietse de Kaper (2014). Play for Java. Manning. ISBN 978-1617290909.
- Julien Richard-Foy (2014). Play Framework Essentials. Packt Publishing. ISBN 978-1783982400.
- Shiti Saxena (2015). Mastering Play Framework for Scala. Packt Publishing. ISBN 978-1783983803.
- Alexander Reelsen; Giancarlo Inductivo (2015). Play Framework Cookbook (2nd ed.). Packt Publishing. ISBN 978-1783982400.
- PremKumar Karunakaran (2020). Introducing Play Framework (2nd ed.). Apress. ISBN 978-1-4842-5644-2.
레퍼런스
- ^ https://github.com/playframework/playframework/releases/tag/2.8.16 를 참조해 주세요.
- ^ "Playing with Play Framework for Java - @codemonkeyism". Codemonkeyism.com. 22 March 2010. Archived from the original on 29 May 2010. Retrieved 31 July 2018.
- ^ "Play framework in practice - Devoxx09 - Devoxx". 13 October 2009. Archived from the original on 2009-10-13. Retrieved 31 July 2018.
- ^ "playframework/twirl". GitHub. Retrieved 31 July 2018.
- ^ Bort, Guillaume. "guillaume bort – software designer". guillaume.bort.fr. Retrieved 31 July 2018.
- ^ "Google Groups". groups.google.com. Retrieved 31 July 2018.
- ^ "Play!". 29 October 2007. Archived from the original on 2007-10-29. Retrieved 31 July 2018.
- ^ "~play-developers/play/1.0 : revision 1". Bazaar.launchpad.net. Retrieved 31 July 2018.
- ^ "Downloads". Playframework.org. Retrieved 31 July 2018.
- ^ "releasenotes-1.1 - 1.1". Playframework.org. Retrieved 31 July 2018.
- ^ "Modules". Playframework.org. Retrieved 31 July 2018.
- ^ "releasenotes-1.2 - 1.2". Playframework.org. Retrieved 31 July 2018.
- ^ "Philosophy - 2.0". Playframework.org. Retrieved 31 July 2018.
- ^ "Introducing Typesafe Stack 2.0 - @lightbend". Blog.typesafe.com. Retrieved 31 July 2018.
- ^ "Highlights - 2.1.0". Playframework.com. Retrieved 31 July 2018.
- ^ "Highlights - 2.7.x". Playframework.com. Retrieved 3 March 2019.
- ^ "Highlights - 2.8.x". Playframework.com. Retrieved 29 February 2020.
- ^ 재생! 프레임워크 사용성 2011-07-13 Wayback Machine에서 아카이브
- ^ "Thomas Heute's Blog: Play Framework on JBoss AS 7 -JBoss Developer". community.jboss.org. Retrieved 31 July 2018.
- ^ "Play framework and async I/O". engineering.linkedin.com. Retrieved 31 July 2018.
- ^ "Introducing the Play Framework". The-play-book.co.uk. Archived from the original on 17 May 2014. Retrieved 31 July 2018.
- ^ "Play Framework Cookbook - PACKT Books". Packtpub.com. Archived from the original on 13 March 2014. Retrieved 31 July 2018.
- ^ "Play! on Heroku". Blog.heroku.com. Retrieved 31 July 2018.
- ^ "Play-ing with Amazon RDS". Ibm.com. 19 July 2011. Retrieved 31 July 2018.
- ^ "Play 2 Web Application Deployment Tutorial". Blog.jelastic.com. 2 July 2013. Retrieved 31 July 2018.
- ^ "The Top 100 Scala Libraries in 2015 – Based on 64,562 GitHub Libraries>1". Retrieved 19 July 2015.
- ^ "GitHub: Search stars>1". Retrieved 5 October 2013.