Greeting Java Hipster

2015. 10. 16. 17:04JS&FRONT/AngularJS

회사에서 간단한 웹 사이트를 만들일이 있을 듯 싶다.
새로운 기능으로 만들어 보고 싶은 맘에 JHipster 라는 것을 발견했다.

(YEOMAN + MAVEN + SPRING + ANGULARJS IN ONE HANDY GENERATOR)





Goal
완벽하고 모던 웹앱을 만드는 것이 목표랍니다. 

Sample & Source
한번 해보고 나서, 스타를 줄지 말지 고민해보도록 하겠습니다. ㅎ 
간단하게 생성한 어플리케이션을 체크 아웃 해보시길 바랍니다. 링크는 위에.

Release note 
 Release는 2.22.0 까지 되었네요... 계속 정신없이 작업을 하시는 듯 싶어요.

이제부터 JHipster 가 가지고 있는 엄청난 기능들을 나열해 보겠습니다.
위 사이트 가시면 보다 깔끔하게 정리가 되어 있으니 보시면 되겠습니다.


Technology stack

 1) Technology stack on the client side.

     Single web page application
     - Reponsive Web Design
     - HTML5 Boilerplate (https://html5boilerplate.com/)
     - Twitter Bootstrap(http://getbootstrap.com/ )  .. BootStrap 4가 곧 나온다네요
     (Great css/javascript framework for responsive web apps)
     - AngularJS (https://angularjs.org/) --> The most popular javascript framework.
     - Compatible with IE9+ and modern browsers
     - Full internationalzation support with Angular Translate (https://github.com/angular-translate/angular-translate
     - Optional Sass(https://www.npmjs.com/package/node-sass) support for CSS desing
     - Optional WebSocket support with Spring Websocket.

    With the great Yeoman(http://yeoman.io/) development workflow:
     (Yeoman provides application generators)
     - Easy installation of new JavaScript libraries with Bower(http://bower.io/)
     (Bower is a package manager for your javascript asset)
     - Build, optimization and live reload with Grunt(http://gruntjs.com/) or Gulp.js(http://gulpjs.com/)
     (Grunt is a Javascript task runner)
     - Testing with Karma(http://karma-runner.github.io/0.13/index.html) and PhantomJS(http://phantomjs.org/)
     (Karma runs unit tests on your javascript code)

     And what if a single Web page application isn't enough for your needs?
     - Support for the Thymeleaf template engine, to generate Web pages on the server side.
     프론트 앤드단에서 이름있는 것들은 모두 지원을 하고 있네요...대박이네요.
     
     
  2) Technology stack on the server side

     A complete Spring application(http://spring.io/)
     - Spring Boot(http://projects.spring.io/spring-boot/) for easy application configuration
       (Spring is the De-Facto standard for java app, De-facto : "사실상")
     - Maven(http://maven.apache.org/) or Gradle(http://gradle.org/) configuration for building , testing and running the application.
       (Maven is the most popular java build tool)
     - "development"  and "production" profiles(both for Maven and Gradle) -> https://jhipster.github.io/profiles.html
     - Optional WebSocket support with Spring Websocket
     - Spring Data JPA(http://projects.spring.io/spring-data-jpa/) + Bean Validation
       (JPA is the standard orm solution for java, Spring Data JPA is "Adds extra syntaxic sugar on top of JPA)
     - Database updates with Liquibase(http://www.liquibase.org/) * 데이터베이스 변경 관리를 체계적으로 해주는 것.(Database updates made easy)
     - Elasticsearch(https://github.com/elastic/elasticsearch) support if you want to have search capabilities on top of your database.
     - MongoDB(https://www.mongodb.org/ , nosql for scalability) support if you'd rather use a document-oriented NoSQL database instead of JPA
     - Cassandra(http://cassandra.apache.org/) support if you'd rather use a column-oriented NoSQL database instread of JPA

     Ready to go into production
     - Monitoring with Metrics(https://github.com/dropwizard/metrics)
      (ready for production with metrics, Formerly Yammer Metrics, Monitors the JVM, app server,Spring beans,cache and more, JMX or Graphite reporting)
     - Caching with ehcache(local cache, http://www.ehcache.org/) or hazelcast(distributed cache,https://hazelcast.com/)
       (Caching is king for performance , Enchache is the most widely used solution)
     - Optinal HTTP session clustering with hazelcast
     - Optimized static resources (gzip filter, HTTP cache headers)
     - Log management with Logback(http://logback.qos.ch/), configurable at runtime
     - Connection pooling with HikariCP(https://github.com/brettwooldridge/HikariCP) for optimum performance
     - Builds a standard WAR file or an executable JAR file.
     * HikariCP는 바로 적용을 해봐도 되겠다... 
        퍼포먼스 측면이 월등하게 개선된다고 하니... 우헹우헹.

암튼 서버 쪽도 다양한 기술들을 많이 들어 갔네요... 좋아요!

Official JHipster slides
     슬라이드 쇼!!!! 뭐 이것만 보면 끝장 납니다.


JHipster in 5 screenshots
 - 다섯가지의 스크린 샷을 띄워 놨습니다. (Metrics 등등... 나중에 관리자 페이지를 이런식으로 구성하면 되겠다라는 생각이 나는군요... 초 간단하게 빠르게)
  The welcome screen , The monitoring screen, One of the generated forms, The log management screen, The generated "Book" entity.

Video tutorial(20 minutes)
 - 위에서 진행했던 튜토리얼을 20분 정도의 비디오 강좌도 있습니다. 


다른건 필요없어요.. 직접 설치해보고 구동해보시고..
전 별다른 문제 없이 잘 돌아가는 것까지 확인 했으니... 만족...ㅎㅎ

처음에 이야기 한대로, 간단한 웹 사이트 만들때 사용 하려고 점 찍어 두고 있습니다. 
냐하하하 :D