JHipster란?

  1. 1. JHipster란?
  2. 2. Yeoman이란?
  3. 3. JHipster Sample Project
    1. 3.1. 준비
    2. 3.2. 생성

JHipster란?

제이힙스터
간단히 정의 하면 자바 기반 생성(generate) 개발 플랫폼 이라고 말씀 드릴 수 있습니다.

기존 뛰어난 생산성으로 흥한 개발 플랫폼인 Ruby의 Ruby on Ralse나 Node.js의 Meteor.js등 애플리케이션 개발을 생성 도구 활용으로 인기를 었습니다.

그동안 Spring 진영에서도 생성 도구를 활용한 개발이 없어 생산성에서 뒤쳐졌지만, JHipster에서 만들게 되어 Spring에서도 빠른 생산성을 확보하게 되었습니다.

생성 도구는 Yeoman이라는 기존 웹 보일러플레이트 프로젝트 생성 도구인데 JHipster에서 Yeoman기반으로 만들어 활용 하였습니다.

Yeoman이란?

요맨

웹 개발을 프레임워크 및 라이브러리들을 통합하여 쉽게 프로젝트를 생성 할 수 있는 Tool 입니다.

1
2
$ npm i -g yo
$ npm i -g generator-원하는도구

기본적으로 Node.js가 설치 되어 있어야 하며, yo를 설치 후 원하는 도구를 설치 하면 됩니다.

Yeoman에서 제공하는 API를 활용하면 쉽게 CLI기반 Generate가 가능 하므로 관심 있으신 분들은
http://yeoman.io/authoring/index.html
이 URL을 참조 하셔서 개발 하시면 됩니다.

JHipster Sample Project

준비

JHipster를 사용하기 전 필수로 설치할 프로그램을 소개 합니다.

  • Java
  • Git
  • Node.js
  • Yarn
  • Yeoman

Java와 Git, Node.js는 OS에 맞추어 설치 하시고 Yarn과 Yeoman은 Node.js와 함께 설치된 npm으로 설치 하시면 됩니다.

1
2
$ npm i -g yarn
$ yarn global add generator-jhipster

https://www.jhipster.tech 에 접속 하여 Quick Start를 보고
샘플 프로젝트 생성을 진행 하겠습니다.

JHipster 문서 보실때 헷갈릴까봐 한가지 짚고 넘어 가겠습니다.
명령어 사용 시 옛날 방식과 최근 방식에 차이점이 있는데 yo를 쓰고 안쓰고 차이 입니다. 입맛에 맞게 골라서 사용하시면 될거 같습니다.

  • 프로젝트 생성 시

    1
    2
    3
    4
    5
    //옛날 방식
    $ yo jhipster

    //최근 방식
    $ jhipster
  • 추가 기능 사용 시

    1
    2
    3
    4
    5
    //옛날 방식
    $ yo jhipster:추가기능

    //최근 방식
    $ jhipster 추가기능

생성

샘플프로젝트 생성 시 선택 가능한 내역 입니다.
굵게 표시한건 이번 프로젝트 생성 시 선택한 것 입니다.

  • 어떤 타입의 프로젝트를 생성하는가?
    • 모놀로식 애플리케이션
    • 마이크로서비스 애플리케이션
    • 마이크로서비스 게이트웨이
    • JHipster UAA Server
  • 어떤 인증을 사용 할 것인가?
    • JWT
    • Oauth2 / OIDC
    • HTTP Sesstion Authentication
  • 어떤 DB를 사용 할 것인가?
    • SQL(H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL)
    • MongoDB
    • Couchbase
    • Cassandra
  • (SQL 선택시 나옴) dvelopment와 production에 사용할거 선택
  • Spring Cache를 사용할 것인가?
    • Ehcach
    • Hazelcast
    • Memcached
    • 사용안함
  • 어떤 빌드 도구를 쓸 것인가?
    • Maven
    • Gradle
  • 다른 기술을 사용할 것인가?(모두 선택 가능)
    • 엘라스틱서치 기반 검색
    • 웹소켓
    • OpenAPI-generator
    • Kafka
  • 어떤 Front를 사용 할 것인가?
    • Angular 6
    • React
  • 추가 테스트 프레임워크를 사용할 것인가?(모두 선택 가능)
    • Gatling
    • Cucumber
    • Protractor
  • 어떤 기본 언어를 선택 할 것인가?
    • 한국어
    • 영어
    • 기타 등등
  • 추가로 지원할 언어는?(모두 선택 가능)
    • 영어
    • 나머지 선택지는 위와 동일

본격적으로 생성을 해보겠습니다.

1
2
PS C:\Users\a\jhipsterProjects> mkdir myApp; cd myApp
PS C:\Users\a\jhipsterProjects\myApp>

jg01
jg02
jg03
jg04
jg05
jg06
jg07
jg08
jg09

Spring Boot + React앱이 만들어 졌고 다음시간엔 JDL과 CLI을 통한 Entity+Controller+Service생성을 알아 보겠습니다.