JHipster 시리즈 2화 - JHipster 설치와 프로젝트 생성 – 모놀리식 앱 실습
JHipster 설치부터 모놀리식 애플리케이션 프로젝트를 직접 생성하고 실행하기까지의 과정을 상세히 설명합니다. 실전 개발 환경을 고려해 설치 조건, 코드 구조, 커스터마이징 요소까지 정리했습니다.
왜 JHipster 설치부터 실습이 중요한가?
JHipster는 **풀스택 애플리케이션의 자동 생성기(generator)**로, 백엔드(Spring Boot)와 프론트엔드(React/Angular/Vue), 인증 시스템, DB 설정, 배포 환경까지 포함한 완성도 높은 프로젝트를 자동으로 구성합니다.
하지만 이 모든 기능을 체험하고 실제 실무에 적용하려면, 단순한 CLI 실행만으로는 부족합니다. 각 설정이 어떻게 작동하는지, 어떤 구조로 파일이 구성되고 유지보수 가능한 설계인지 확인해야 합니다.
이번 글에서는 모놀리식(monolith) 아키텍처를 기준으로 기본 앱을 생성하고, 이를 기반으로 실무에서 고려해야 할 포인트를 함께 살펴봅니다.
JHipster 설치 준비 – 환경 요구 사항부터 체크
먼저 JHipster를 사용하려면 몇 가지 필수 개발 환경이 선행되어야 합니다.
기본 설치 환경
구성 요소버전 / 설명
| Node.js | 18.x 이상 권장 (CLI 실행을 위한 기반) |
| npm | Node 패키지 매니저 (또는 yarn) |
| Java JDK | 17 이상 권장 (Spring Boot 3.x 기반) |
| Git | 필수 (CLI 내부에서 Git 연동 사용) |
| Docker | 선택사항 (데이터베이스/서비스 컨테이너화 시 유용) |
설치 확인 예시:
node -v
java -version
git --version
docker -v
설치된 환경이 준비되었으면, 아래 명령어로 JHipster를 전역(global) 설치합니다.
npm install -g generator-jhipster
설치 완료 후 아래 명령으로 정상 작동 여부를 확인합니다.
jhipster --version
이제 CLI를 활용할 준비가 되었습니다.
CLI로 첫 프로젝트 생성 – Monolith 방식 실습
JHipster는 CLI 실행 후 다수의 질문을 통해 프로젝트 구성을 자동화합니다. 이번 실습에서는 Monolith 구조를 선택합니다. 이는 백엔드와 프론트가 통합된 전통적인 웹 애플리케이션 구조로, 초기 개발 속도가 빠르고 유지관리가 용이합니다.
mkdir demo-monolith-app && cd demo-monolith-app
jhipster
CLI를 실행하면 다음과 같은 질문이 나옵니다.
주요 설정 항목 예시
항목선택 예시설명
| 애플리케이션 유형 | Monolithic | 단일 프로젝트 구조 |
| Base name | demoApp | 프로젝트 이름 |
| 패키지 이름 | com.example.demo | Java 기본 패키지 |
| 인증 방식 | JWT | 토큰 기반 인증 |
| 데이터베이스 | PostgreSQL | 개발/운영 DB 동일 설정 |
| 프론트엔드 프레임워크 | React | 최신 UI 프레임워크 선택 |
| 빌드 도구 | Gradle or Maven | 팀 내 선호에 따라 결정 |
| 추가 기능 | i18n, Swagger, Pagination | 실무에 유용한 기본 기능 제공 |
설정 완료 후 약 2~5분 이내로 프로젝트가 생성됩니다.
프로젝트 구조 분석 – 실무 관점의 구성 이해
JHipster는 다음과 같은 디렉토리 구조를 생성합니다.
├── src/
│ ├── main/
│ │ ├── java/ # Spring Boot 백엔드
│ │ ├── resources/ # 설정파일 및 메시지 번역
│ │ └── webapp/ # React 프론트엔드
│ └── test/ # 테스트 코드
├── package.json # JS 의존성 정의
├── build.gradle / pom.xml # 빌드 관리 (Gradle or Maven)
├── .yo-rc.json # JHipster 설정 원본 파일
실전 포인트: 디렉토리별 주의할 점
- src/main/java: Application.java → Spring Boot 진입점
- SecurityConfiguration.java: Spring Security + JWT 설정 핵심
- webapp/app/: 프론트엔드 소스코드 (React, Redux 포함)
- .yo-rc.json: JHipster 재생성시 참조되는 설정 저장소
- application-dev.yml: 개발/운영 환경 구분 설정 가능
실행 및 결과 확인
./gradlew
기본 포트인 localhost:8080에서 앱을 확인할 수 있습니다.
기본 관리자 계정:
- ID: admin
- PW: admin
화면 구성
- 로그인 화면 → 기본 인증 구현
- 관리자 메뉴: 사용자/로그 관리/애플리케이션 정보
- Swagger API UI 포함
실무 팁: JHipster 프로젝트에서 반드시 검토할 요소
항목실무 고려사항
| 환경 설정 | application-*.yml 환경별 분리 필수 |
| 커스터마이징 | Entity 및 Service 로직 수정 시 코드 재생성 전략 필요 |
| Git 연동 | 생성 직후 초기 커밋, 이후 diff 기반 추적 추천 |
| React 구조 | Redux-Saga 기반 구조 이해 필요 |
| 빌드 전략 | 로컬/테스트/운영 환경에 따라 빌드 전략 정의 |
실제 도입한 팀의 구성 팁
한 스타트업 사례에서는 다음과 같은 방식으로 도입 초기화를 진행했습니다.
- JHipster로 기본 프로젝트 생성 (Monolith)
- 엔티티 정의는 JDL 사용 → 자동 생성
- 프론트엔드는 React만 추출하여 별도 저장소 분리
- Spring Security는 OAuth2로 확장
- Dev 환경은 Docker Compose로 구성
이렇게 하면 초기 MVP를 2주 이내로 제품화하고, 내부 관리 UI까지 빠르게 적용할 수 있었습니다.
마치며 – “자동 생성” 그 이상의 설계 도구
JHipster는 단순히 코드를 찍어내는 생성기가 아니라,
현업 개발자가 바로 사용할 수 있는 설계 구조를 제공하는 프레임워크에 가깝습니다.
이번 실습을 통해 JHipster가 제공하는 구조의 강점,
그리고 실전 도입 시 확인해야 할 디테일들을 함께 살펴보았습니다.
다음 화 예고
JHipster 시리즈 3화 - JDL을 이용한 Entity 모델링과 CRUD 생성기 실습
복잡한 비즈니스 도메인을 코드로 빠르게 설계하고 문서화하는 방법으로 JDL(JHipster Domain Language)을 활용합니다. 복수 엔티티, 관계설정, 자동 UI 구성까지 실무에 가까운 예제로 이어갑니다.