플레이 프레임워크

Play Framework
플레이 프레임워크
Play Framework logo.svg
개발자Lightbend, Zengularity 및 커뮤니티
초기 릴리즈2007년 (2007년
안정된 릴리스
2.8.16[1] / 2022년 6월 2일; 2개월 (2022년 6월 2일)
저장소저장소 재생
기입처스칼라
이용가능기간:영어
유형웹 응용 프로그램 프레임워크
면허증.Apache 라이센스 2.0
웹 사이트playframework.com

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그리고.distOS 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 세션이 없습니다.
  • 통합 유닛 테스트: JUnitSelenium 지원이 코어에 포함되어 있습니다.
  • 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는 테스트 실행 및 보고서 생성에 사용됩니다.scoveragejacoco4sbt와 같은 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월 현재 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.

레퍼런스

  1. ^ https://github.com/playframework/playframework/releases/tag/2.8.16 를 참조해 주세요.
  2. ^ "Playing with Play Framework for Java - @codemonkeyism". Codemonkeyism.com. 22 March 2010. Archived from the original on 29 May 2010. Retrieved 31 July 2018.
  3. ^ "Play framework in practice - Devoxx09 - Devoxx". 13 October 2009. Archived from the original on 2009-10-13. Retrieved 31 July 2018.
  4. ^ "playframework/twirl". GitHub. Retrieved 31 July 2018.
  5. ^ Bort, Guillaume. "guillaume bort – software designer". guillaume.bort.fr. Retrieved 31 July 2018.
  6. ^ "Google Groups". groups.google.com. Retrieved 31 July 2018.
  7. ^ "Play!". 29 October 2007. Archived from the original on 2007-10-29. Retrieved 31 July 2018.
  8. ^ "~play-developers/play/1.0 : revision 1". Bazaar.launchpad.net. Retrieved 31 July 2018.
  9. ^ "Downloads". Playframework.org. Retrieved 31 July 2018.
  10. ^ "releasenotes-1.1 - 1.1". Playframework.org. Retrieved 31 July 2018.
  11. ^ "Modules". Playframework.org. Retrieved 31 July 2018.
  12. ^ "releasenotes-1.2 - 1.2". Playframework.org. Retrieved 31 July 2018.
  13. ^ "Philosophy - 2.0". Playframework.org. Retrieved 31 July 2018.
  14. ^ "Introducing Typesafe Stack 2.0 - @lightbend". Blog.typesafe.com. Retrieved 31 July 2018.
  15. ^ "Highlights - 2.1.0". Playframework.com. Retrieved 31 July 2018.
  16. ^ "Highlights - 2.7.x". Playframework.com. Retrieved 3 March 2019.
  17. ^ "Highlights - 2.8.x". Playframework.com. Retrieved 29 February 2020.
  18. ^ 재생! 프레임워크 사용성 2011-07-13 Wayback Machine에서 아카이브
  19. ^ "Thomas Heute's Blog: Play Framework on JBoss AS 7 -JBoss Developer". community.jboss.org. Retrieved 31 July 2018.
  20. ^ "Play framework and async I/O". engineering.linkedin.com. Retrieved 31 July 2018.
  21. ^ "Introducing the Play Framework". The-play-book.co.uk. Archived from the original on 17 May 2014. Retrieved 31 July 2018.
  22. ^ "Play Framework Cookbook - PACKT Books". Packtpub.com. Archived from the original on 13 March 2014. Retrieved 31 July 2018.
  23. ^ "Play! on Heroku". Blog.heroku.com. Retrieved 31 July 2018.
  24. ^ "Play-ing with Amazon RDS". Ibm.com. 19 July 2011. Retrieved 31 July 2018.
  25. ^ "Play 2 Web Application Deployment Tutorial". Blog.jelastic.com. 2 July 2013. Retrieved 31 July 2018.
  26. ^ "The Top 100 Scala Libraries in 2015 – Based on 64,562 GitHub Libraries>1". Retrieved 19 July 2015.
  27. ^ "GitHub: Search stars>1". Retrieved 5 October 2013.

외부 링크