아이티랩 - 마이크로넛 프로젝트 생성기

이 글은 10월 26일 게재된 ‘버추얼박스에서 가상 OS 우분투 설치하기’와 이어지는 글입니다.

마이크로넛 애플리케이션을 제작하기 위해 마이크로넛 프로젝트 생성기 ‘Project Generator for Micronaut’을 구현할 예정입니다. 프로젝트 생성기는 커멘드 라인 애플리케이션 제작 과정과 HTTP 서버 구현 과정을 포함하고 있습니다.

마이크로넛 애플리케이션을 사용할 HTTP 서버 구현 과정은 서브릿 컨테이너를 향해 디플로이(deploy)하거나 서버리스(Serverless) 플랫폼에 실행시키는 구현 방식이라고 할 수 있습니다. 이런 방식을 예로 들면 ▲Google Cloud Run ▲Google Cloud Function ▲Oracle Cloud Infrastruture ▲AWS Lambda or Azure Function 등이 있습니다.

마이크로넛 애플리케이션 제작에 앞서 다음과 같은 사전 작업이 필요합니다.

① 비주얼 스튜디오 코드(Visual Studio Code) 설치
② 인텔리제이(Intellij) 설치
③ GraalVM 21.2.0 with 자바 11 설치
마이크로넛 3.x 설치

그러면 비주얼 스튜디오 코드와 인텔리전스 J 아이콘을 등록하겠습니다.

우분투 20.04 LTS에서 즐겨찾기 VS 코드 및 인텔리제이를 추가하기

1. 우분투에서 제공하는 왼쪽에 있는 선호 바(Favorite Bar) 맨 아래 애플리케이션 아이콘을 클릭합니다.

2. 서치 바(Search Bar)에서 ‘visual’이라고 입력하면, 화면처럼 비주얼 스튜디오 코드 툴이 나타납니다. 마우스 오른쪽을 눌러 팝업 메뉴들 중 Add to Favorites를 클릭하세요.

3. 우분투 왼쪽 바에 Intellij IDEA를 추가하고자 Add to Favorites 링크를 클릭하세요.

4. 우분투 애플리케이션 화면을 빠져 나가고자 Activites 링크를 눌러보세요.

5. 우분투에서 비주얼 스튜디오 코드 애플리케이션을 보고자 우분투 왼쪽 바에서 비주얼 스튜디오 코드 아이콘을 눌러보세요.

6. 비주얼 스튜디오 코드 첫 페이지입니다. 사용자는 해당 폴더를 열어 그 하위 폴더를 한눈에 볼 수 있고, 클릭하면 소스를 열 수 있습니다.

https://code.visualstudio.com/docs/getstarted/introvideos에서 코드 에디팅, 익스텐션, 디버깅, 버전 컨트롤 등 다양한 기능을 영상으로 미리 경험할 수 있습니다.

사용자 인터페이스 구조

A. 활성화 바(Activity Bar)
B. 사이드 바(Side Bar)
C. 에디터 그룹 창(Editor Groups)
D. 패널 창(Panel)

우분투 20.04 LTS에서 마이크로넛 3.1 버전 설치하기

7. 마이크로넛 공식 웹사이트에서 마이크로넛에 대한 정의는 모던 프레임워크이며, JVM 기반 프레임워크 또한 Full-Stack 프레임워크입니다. 마이크로넛은 서버리스 애플리케이션을 빌드(Build)하거나 손쉽게 제작하는 테스트용 마이크로서비스와 모듈을 제작할 때 사용합니다.

8. 유닉스 사용자라면 SDKman를 사용해 멀티 마이크로넛을 구현하거나 관리할 수 있습니다. 리눅스와 맥OS 사용자는 Homebrew 웹사이트에서 Homebrew 패키지 관리자를 다운로드해 마이크로넛을 설치할 수 있습니다.

이 글에서는 SDKman 툴을 사용해 마이크로넛을 설치하겠습니다. 다음과 같은 명령어를 던져 SDKman을 설치합니다.
$ curl -s https://get.sdkman.io | bash

9. 다음과 같은 메시지가 나타났다면 curl 명령어를 우분투에 설치합니다.
sudo apt install curl

10. 다음 명령어로 SDKman 구성을 위한 SDKman 명령어를 입력합니다.
curl -s https://get.sdkman.io | bash

11. SDKman 설치 완료를 위해 다음과 같은 명령어를 입력해 초기화합니다.
source “$HOME/.sdkman/bin/sdkman-init.sh”

12. 마이크로넛 최신 버전을 받고자 다음과 같은 명령어를 입력합니다.
sdk install micronaut

13. 마이크로넛 설치가 정상적으로 진행되는지 확인하기 위해 다음과 같이 마이크로넛 버전을 확인하는 명령어를 입력합니다.
mn –version

14. 리눅스용 그랄VM 엔터프라이즈 21.2.0 버전은 오라클(Oracle) JDK를 포함해 다양한 툴과 유틸리티, 런타임을 포함합니다. 크게 툴·유틸리티와 런타임으로 나뉘는데, 살펴보도록 하겠습니다.

14-1. 핵심 컴포넌트

① 런타임
•자바 핫스팟 VM: 코드 일부를 자주 실행하고 오라클 VM에서 애플리케이션이 더 빨리 실행되도록 해당 부분을 크게 최적화한 핫스팟을 찾는 것
•자바스크립트 런타임
•LLVM 런타임

② 라이브러리(JAR 파일)
•그랄VM 컴파일러: 응용 프로그램이 시작되고 코드만 실행되도록 모든 컴파일 및 해석이 런타임에서 수행되는 최상위 JIT 컴파일러
•Polyglot API: 공유 런타임에서 프로그래밍 언어를 결합하기 위한 API

③ 유틸리티
•자바스크립트 인터프리터가 있는 자바스크립트 REPL
•LLVM 비트코드에서 프로그램을 직접 실행하는 lli 툴
•추가 기능을 설치하기 위한 그랄VM 업데이터

14-2. 추가 기능

① 툴·유틸리티
•네이티브 이미지: 네이티브 실행 내 애플리케이션 사전 컴파일을 지원하는 툴
•LLVM 툴체인(toolchain): 툴의 모음집이며, 네이티브 프로그램들을 컴파일하기 위한 APIs도 함께 들어 있습니다. 이는 그랄VM 엔터프라이즈 위에서 실행되는 비트코드(bitcode)를 위한 것입니다.

참고로 LLVM(Low Level Virtual Machine)은 컴파일러와 툴체인 테크놀로지 기술입니다. 프론트 엔드와 백엔드 개발을 위해 다양한 언어로 다른 개발 언어를 컴파일하고 모듈러와 재사용을 돕습니다.

•자바 튜라플: 그랄VM 엔터프라이즈가 가지고 있는 튜라플 번역기 기반 자바 버추얼 머신 구현을 목적으로 합니다. 이는 자바가 멀티 언어 버추얼 머신에서 파이썬과 루비, 자바스크립트 언어들을 자바에서 사용하도록 번역합니다.

튜라플(Truffle)은 분산 또는 분할된 애플리케이션을 읽고 컴파일, 테스트, 디플로이하기 위한 프레임워크입니다. 분산 애플리케이션에 속하는 것은 이더리움 블록체인(Ethereum blockchains)에 존재하는 애플리케이션이라고도 합니다. 튜라플 개발자는 튜라플 환경에서 프론트 개발을 향한 자바스크립트를 작성할 수 있습니다. 또한 스마트 컨트렉(Smart Contracts)을 지향하는 셀리더티(Solidity)나 클라이언트를 위해 다양한 블록체인 네트워크를 연결하는 브릿지를 구현할 수 있는 웹 3.0을 지원하고 있습니다.

② 런타임
•Node.js
•파이썬: 파이썬 3.8.5 버전 지지
•루비: 루비 2.7.3 버전 지지
•R: GUN R 4.03 지지
•Wasm: 웹 어셈블리(WebAssembly)는 바이트코드 명세서로, 그랄VM 엔터프라이즈 버전 내용과 별도로 설치해야 하는 부분입니다.

15. 웹사이트에서 오라클 그랄VM 엔터프라이즈 21.2.0 버전을 다운로드합니다. Release Version 21.2.0.1 Java Version 11, OS Linux, Architecture : x86을 선택합니다.

16. 아래 리스트 중 오라클 그랄VM 엔터프라이즈 에디션 코어(Oracle GraalVM Enterprise Edition Core) 링크를 클릭해 다운로드합니다.

17. 다운로드한 파일을 확인 후, 압축 파일을 풀고자 하는 폴더로 이동해 다음과 같은 명령어와 함께 던집니다.

18. 다음과 같은 명령어를 통해 압축을 풀고자 하는 폴더(/home/neuavenue/)로 이동합니다.
cd /home/neuavenue/
ls -a
tar -xvzf ~/Downloads/graalvm-ee-java11-linux-amd64-21.2.0.1.tar.gz

19. 오라클 그랄VM 폴더로 이동해 bin 폴더에 다양한 실행 파일이 존재하는지 확인하세요.
ls -a
cd graalvm-ee-java11-21.2.0.1
cd bin
ls –a

20. 우분투 터미널에서 런타임 환경 변수를 설정하기 위해 다음과 같이 명령어를 입력 후 해당 파일로 이동합니다.
nano ~/.bashrc

이후 마우스를 맨 아래로 내려 환경 변수들을 추가합니다.
export PATH=~/graalvm-ee-java11-21.2.0.1/bin:$PATH
export JAVA_HOME=~/graalvm-ee-java11-21.2.0.1

21. 우분투 런타임 환경변수를 적용시키기 위해 다음과 같은 명령어를 입력해 실행합니다.
. ~/.bashrc

22. 자바 11 버전이 포함된 그랄VM 설치와 환경변수 적용 완료 후, 자바 실행 명령어인 java와 버전 디스플레이, 그랄VM 명령어 등이 실행하는지 자바 실행 파일을 구동시켜봅니다.
java -version

23. 오라클 그랄VM 엔터프라이즈에서 제공하는 자바 스크립트 런처 명령어 js와 LLVM 비트코드 런처인 lli, 그랄VM 업데이터 툴인 gu 유틸리티 툴과 런타임을 실행시킵니다.
js -version
lli –version
gu –version

24. 우분투에서 SSH를 설치하겠습니다. 터미널을 열어 다음과 같은 명령어를 입력합니다.
sudo apt update

25. 패키지 업데이트를 위해 다음과 같은 명령어를 입력합니다.
apt list –upgradable

26. 버추얼 박스 윈도우 사이즈 변경과 클립보드 쉐어 같은 유틸리티를 사용하기 위해, 버추얼 박스 게스트 에디션(VirtualBox Guest Additions)을 설치합니다.
sudo apt install virtualbox-guest-dkms virtualbox-guest-x11 virtualbox-guest-utils

27. Do you want to continue? [Y/n]라는 질문에 Y를 입력한 후 엔터키를 누릅니다. 98vboxadd-xclient 설치 질문엔 N을 입력 후 엔터키를 누르세요.

28. SSH는 하둡 스크립트와 데몬을 원격 관리하기 위해 필수입니다. 다음과 같은 명령어를 입력해 설치를 시작합니다.
sudo apt-get install ssh

29. sudo 계정 사용자의 패스워드 입력 후 엔터키를 누릅니다. SSH 설치를 위해 Y를 입력한 후 엔터키를 누르세요.

30. 우분투 운영 체제에 SSHD 설치를 시작합니다.
sudo apt-get install pdsh

31. sudo 계정 사용자의 패스워드 입력 후 엔터키를 누릅니다.

32. 나노 에디터가 존재하지 않는다면 apt 명령어를 입력해 추가로 설치합니다.
sudo apt update
sudo apt install nano
sudo apt install vim

33. Bashrc 파일을 열어 다음과 같은 명령어를 입력해 우분투 패스 환경 설정을 수정합니다.
cd /
ls /home/neuavenue/
ls -a
sudo chmod -R 777 home/neuavenue/.bashrc
nano .bashrc

34. 지역적 시스템 설정인 bash 파일을 수정하기 위해 다음과 같은 명령어 라인을 추가합니다.
export PDSH_RCMD_TYPE=ssh

35. Ctrl X키를 누른 후 Y키를 눌러 저장하고 빠져 나갑니다.

36. 우분투에서 SSH 설정을 하기 위해 다음과 같은 명령어를 우분투 터미널에서 실행시킵니다.
ssh-keygen -t rsa -P “”

37. 다음과 같은 메시지가 화면에 나오면 엔터키를 누르세요.

38. 로그인 권한 키를 복사해 SSH 터미널에서 권한을 부여받습니다.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

39. SSH 터미널 연결을 위해 다음과 같은 명령어로 테스트합니다.
ssh localhost
이후 Y키를 눌러 연결을 계속 진행합니다.

40. 패스워드 연결 설정 권한을 적용하기 위해 다음과 같은 명령어를 입력하고, 호스트 목록에 RSA를 추가하세요.
exit
이후 터미널을 닫고 다시 시작합니다.

    
     (adsbygoogle = window.adsbygoogle || []).push({});     
    
     (adsbygoogle = window.adsbygoogle || []).push({});     

The post 마이크로넛 프로젝트 생성기 appeared first on DIGITAL iNSIGHT 디지털 인사이트.

의견 0 신규등록      목록