본문 바로가기
MSA

마이크로서비스 아키텍처(MSA) 개발환경 구축-JHipster 설치, 실행(윈도우즈10): Docker, openJDK11, Node.js

by 해피비(Happy plan B) 2022. 8. 16.
반응형

안녕하세요. 누군가에게 기댈 수 있는 곳이 되길 바라며, 함께 할 수 있는 일상 공유로 SNS에 컨텐츠를 만드는 행복랜드 행부장(HappyLandHB)입니다.
마이크로서비스 아키텍처(MICROSERVICES ARCHITECTURE, MSA) 개발을 위한 개발환경구축 방법입니다. JHipster[제이힙스터] 설치, 실행(윈도우즈 10 pro, 1대에서 가능)을 위해 Docker, openJDK11, Node.js LTS 버전 포함한 설치합니다. 2022.08.15 설치 기준입니다.(아직 초안으로 계속 수정 예정임)


글을 보시기 전에 공감하트 클릭 부탁드립니다. (위 혹은 아래에 위치)

1. 윈도우즈 내 기본설치
1) 자바11 설치
https://adoptium.net/temurin/releases/?version=11

출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처


2) Node.js 16 LTS 64-bit 버전 설치 (LTS 버전으로 설치)
https://nodejs.org

출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처


3)Git 설치 (옵션, 여기선 미설치)
https://git-scm.com

2.Docker 설치 (Docker Desktop 4.11.1 버전)
https://www.docker.com/products/docker-desktop/

출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처

실행 시, 5. Docker Desktop - Restart 선택이 나오고 계속 되면
1) 파워쉘을 관리자 권한으로 실행
(파워쉘에 마우스 오른쪽 > 관리자 권한으로 실행)
2) 리눅스 서브시스템 활성 명령어 입력
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

3) 가상 머신 플랫폼 기능 활성화 명령어 입력
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

4) x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지 다운로드, 설치
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

출처: 본인 캡처
출처: 본인 캡처
출처: 설치 시 본인 캡처
출처: 설치 시 본인 캡처


5) Docker Desktop - Restart 선택
6) Docker 설정-Use Docker Compose v2 체크

3. JHipster 설치 준비 (Powershell, 파워쉘에서)
1) RemoteSigned 권한 부여
> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned


4 JHipster 설치(파워쉘)
C:\Users\[사용자이름]\AppData\Roaming\npm 아래 설치됨
여기서 “PS D:\>”와 “>”는 같은 의미로 앞으로 >로 PowerShell(파워쉘)을 사용합니다.

> npm install -g generator-jhipster@6.9.1
(삭제는 npm remove -g generator-jhipster@6.9.1)

> npm i -g generator-jhipster-vuejs

개발환경(Windows 10 PowerShell)에서 RootDir설정. 여기서는 경로 정의로만 사용합니다.
SET RootDir=D:\MSADev
> cd %RootDir%


11. gateway 생성, 실행 (파워쉘에서 진행)
1) 생성
> cd %RootDir%
> mkdir gateway
> cd gateway
> pwd
D:\MSADev\gateway

> jhipster --blueprints vuejs --skip-checks
여기서 jhipster 설정부분은 제외하며, 추후 넣을 예정입니다.

출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처
출처: 본인 캡처


2) 실행

(1) Config서버인 레지스트리 실행(포트: 8761)

> docker-compose -f src/main/docker/jhipster-registry.yml up
웹에서 http://localhost:8761

(2) (다른 파워쉘을 실행 후) gateway 실행 (포트: 8080)
> .\mvnw
웹에서 http://localhost:8080/

Docker Desktop - Docker

MOST COMMON

www.docker.com

Git

git-scm.com

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

12. 마이크로서비스 MSA 생성, 실행 (각각 다른 파워쉘에서 진행)

1) book 도서 서비스 만들기 (포트: 8081), com.my.book, MariaDB
> cd %RootDir%
> mkdir book
> cd book
> pwd
D:\MSADev\book
> jhipster
> .\mvnw

2) bookCatalog 도서카탈로그 서비스 만들기 (포트: 8082), com.my.bookcatalog, MongoDB
> cd %RootDir%
> mkdir bookCatalog
> cd bookCatalog
> pwd
D:\MSADev\bookCatalog
> jhipster
> .\mvnw
###실패나옴#### MogoDB를 사용해서 생기는 문제. 다른 버전의 JHipster에서 확인 필요
3) rental 대출 서비스 만들기 (포트: 8083), com.my.rental, MariaDB
> cd %RootDir%
> mkdir rental
> cd rental
> pwd
D:\MSADev\rental
> jhipster
> .\mvnw

13. 백엔드 서비스에 엔티티 생성 (각각 다른 파워쉘에서 진행)
1) book 도서 서비스에 book 엔티티 생성 (기존에 실행 중인 mvnw는 Ctrl+C, Ctrl+Q 로 정지)
> cd %RootDir%
> cd book
> pwd
D:\MSADev\book
> jhipster entity book

2) bookCatalog 도서카탈로그 서비스에 bookCatalog 엔티티 생성
> cd %RootDir%
> cd bookCatalog
> pwd
D:\MSADev\bookCatalog
> jhipster entity bookCatalog

3) rental 대출 서비스 서비스에 rental 엔티티 생성 (JDL 스튜디오 사용하여 jhipster-jdl.jh 저장. https://www.jhipster.tech/jdl-studio)
> cd %RootDir%
> cd rental
> pwd
D:\MSADev\rental
> jhipster import-jdl .\jhipster-jdl.jh --force

출처: JDL STUDIO에서 내려 받은 이미지
jhipster-jdl.jh
0.00MB


14. 추가한 엔티티 gateway 등록
> cd %RootDir%
> cd gateway
> jhipster entity rental
> jhipster entity rentedItem
> jhipster entity book
> jhipster entity bookCatalog

> 재실행( registry, gateway microservice book, rental ...)


참고 도서: “도메인 주도 설계로 시작하는 마이크로서비스 개발 : 핵심 개념과 패턴, 설계, 구현으로 배우는 DDD와 MSA / 한정헌,유해식,최은정,이주영 저 / 위키북스 / 2021년
위에 없는 내용은 “6.5 JHopster를 활용한 아키텍처 구성(p183)”부터 참고 부탁 드립니다.(jhipster 설정부분 포함)

감사드리며…

도움이 되셨다면 공감하트 클릭 부탁드립니다. (위 혹은 아래에 위치)

오늘 더 행복하시길.
감사합니다.

반응형

댓글