Know-how, News Today

[Introduction] 마이크로넛으로 개발하는 자바 클라우드 앱(App)

이 콘텐츠는 캐나다 토론토에서 IT 인재 양성에 힘쓰고 있는 Billy Lee 네오아베뉴 대표의 본지 독점 기고입니다. 장차 19회 연재가 예정되어 있으며(물론, 필자 사정으로 횟수는 변경될 수 있습니다.), 이번 시간에는 본격적인 연재에 앞서, 간략히 어떤 내용을 중심으로 소통할 것인지 알려드리는 시간입니다. 추후 기회가 되면 빅데이터와 하둡 관련 콘텐츠도 <디지털 인사이트> 독자 여러분께 알려드린다고 합니다. 많은 관심과 성원 부탁드립니다. <편집자 주>

초급자를 위해 준비한 백엔드 (Back-End), 마이크로넛으로 자바 웹 개발

자바 오라클 클라우드 네이티브 애플리케이션을 제작하면서 비동기 처리, I/O 처리, 고성능 웹 애플리케이션, 게다가 JIT 컴파일러 기술로 2배 이상의 빠른 애플리케이션 실행 처리로 네트워크 입력에 부하 없는 초고속 애플리케이션을 제작하고자 합니다.

Micronaut
GraalVM Enterprise Edition
Oracle Cloud
Micronaut Data
Autonomous Database
Visual Studio Code
IntelliJ IDEA Community
Oracle VirtualBox
Ubuntu
Java 11
REST API
SDKman
Gradle
DTO/POJO
▲오마이크로넛 백엔드 웹 개발 올인원 (오라클 클라우드 빌드)

✅ 왜 지금, 마이크로넛을 배워야 할까

인간이 사용하는 개발 언어와 기계가 인식하는 컴퓨터 언어 사이의 매개체 역할을 하는 프로그램 개발 언어를 인식하고 습득하는 데는 한계가 있기 마련입니다. 기계에게 학습 시키고자 개발 언어로 프로그램 구현한 뒤 마이크로넛은 개발 언어로 기계 학습을 도와 이를 웹 애플리케이션이나 기계 언어로 바꾸어 프로그램이 작동하도록 도와줍니다.

▲마이크로서비스 개발을 위한 오픈소스 JVM 기반 프레임워크, 마이크로넛(Micronaut)을 통해 더욱 손쉽고 강력한 마이크로서비스 애플리케이션을 제작할 수 있습니다.

▲마이크로넛 프레임워크를 사용하는 기관

JVM-Based Micronaut(마이크로넛)은 JVM-Based 애플리케이션을 개발하는 데 있어, 자바스크립트와 R, Ruby, Python 언어까지 GraamVM 기술과 접목한 매력적일 수밖에 없는 유니크한 기술입니다. 이번 기고에서는 이러한 다양한 언어 (All-in-one language)들을 소개하는 정도지만, 다양한 언어를 한 번의 설치로 개발할 수 있는 장점을 지니고 있는 만큼 다양한 서비스에서의 수요를 만족시킬 것이라 생각합니다.

마이크로넛으로 개발하는 자바 클라우드 애플리케이션

마이크로넛 프레임워크는 해외에서 활발히 사용하고 있습니다. 더욱이 국내에서는 이와 관련한 강의조차 찾아보기 어려워 마이크로넛 프레임워크에 쉽게 접근하지 못하는 것이 현실입니다.

그 장벽을 넘어 매력적인 이번 기회에 마이크로넛 기술을 독자 여러분과 나누고자 합니다. 그 생생한 현장을 모두 누리시길 바라는 마음도 함께 말이죠.

JVM-Based Micronaut(마이크로넛)은 컴퓨터 지침서(Computer Instruction) 바탕 위에 제작한 자바 인터프리터와 JavaC 컴파일러의 한계를 넘어 최단 컴파일과 인터프리터 기술을 가진 컴플레이션 타임(Compilation Time)의 핵심 키를 갖고 있습니다. 뿐만 아니라 미리 정의된 자바 빈 클래스들을 생산할 수도 있으며, AOT 컴플레이션을 향해 최적화된 런타임 기술을 경험할 수 있습니다.

✅ 모노리스/마이크로 서비스 개요

세 가지 프레임워크 기반 곧 모던기술(Modern), 자바 버츄얼머신 기반(JVM-Based), 풀스택(Full-Stack) 기반 프레임워크 기반으로 모듈러 빌딩과 함께 아울러 간결한 테스트 기반의 마이크로서비스 그리고 서버레스 애플리케이션 (Serverless Application)을 제작하는 기술들을 습득하게 됩니다. 

▲모노리스 애플리케이션에서 마이크로서비스 애플리케이션으로의 변화1
▲▲모노리스 애플리케이션에서 마이크로서비스 애플리케이션으로의 변화2

학습내용

Oracle GraalVM Enterprise Edition 21.2.0 and Java,
Javascript, R, Ruby, Python 기술을 동시에 제작하는
All-in-one Technology

  • 오라클에서 제공하는 네이티브 클라우드 기반 웹 애플리케이션 제작
  • 백엔드 클라우드 런타임 기반 위에 오라클 자율 운영 데이터베이스 연동으로 웹 애플리케이션 제작
  • 마이크로넛 3.x 버전의 모던 프레임워크 최신 기술 습득
  • 윈도우 오라클 버추얼박스 설치 및 우분투 20.04 LTS 운영체제 기술 습득

추가적인 학습으로 ▲오라클 클라우드 계정 세팅을 통한 자바 기술 습득 준비 ▲마이크로넛 프레임워크 3.x 기초 이해 ▲오라클 GraalVM Enterprise Edition 21.2.0으로 자바 11버전과 함께 python, r, ruby, javascript (angular.ja/Vue.js/react.js) 동시 개발 기술(All-in-one language) ▲마이크로넛 런치(Micronaut Launch)로 그래들(Gradle)과 메이븐(Maven) 자바 클라우드 웹 애플리케이션 구축 ▲프로그램 언어와 번역과정, 자바 번역기 인터프리터 구조, 컴퓨터 지침서, 자바 컨버트 도구인 자바 컴파일러와 인터프리터와 그 한계 ▲오라클 자율 운영 데이터베이스와 오라클 클라우드 인프라스트럭쳐 (OCI) 기술 습득 및 개발 ▲VS Code/IntelliJ IDE툴을 이용한 자바 클라우드 웹 애플리케이션 제작 ▲유닉스(혹은 리눅스 바탕 운영 시스템에서 멀티 소프트웨어 개발 툴 패러럴 방식의 툴 과정 등을 꼽을 수 있습니다.

Q&A

Q. 마이크로넛은 무엇인가요? 오픈 소스인 스프링이나 다른 자바스크립트 프레임워크와 비슷한가요?

마이크로넛은 자바 버추얼 머신 기반 오픈소스 소프트웨어 프레임워크(JVM-based software framework )입니다. 물론 가벼운 경량의 프레임워크(lightweight) 빌드로 구축 가능하며 모듈러 do플리케이션(Modular application) 빌드됩니다. 동시에 마이크로서비스 기반(Microservices) 어플리케이션 제작할 수 있는 자바 프레임워크입니다. 적은 메모리 풋프린트이며 단시간 스타트업 타임을 자랑합니다. 경쟁자 스프링을 비롯한 다른 웹 기반 프레임워크보다 무려 2배나 빠르답니다.

Q. 마이크로넛을 배우면서 JVM에 대한 이해가 필요한가요?

네, 당연히 기본 지식이 필요합니다. 자바 기술에서 2000년대 처리 속도와 처리량은 무척 향상되었으면서도 동시에 무거워지는 자바 엔터프라이즈 어플리케이션은 따라가지 못합니다. 1950년대부터 내려온 자바와 C언어를 비롯한 다양한 언어들은 인간 코드와 머신 언어 사이로 매개체, 컴퓨터 지침서와 통역(Interpretation)에 대한 이해를 가지고 있으면 유익한 강의 습득이 될 것이며, 동시에 Converting Process, Compiler, JVM 과 더불어 JIT Compiler 에 대한 용어와 정의는 개발자들에게는 유익한 시간이 될 것입니다. 동시에 스프링에서 빠지지 않는 의존성 기술과 의존성 주입 그리고 IoC에 대한 이해력 역시 기업에서 다루어야 할 깊은 지식과 이해는 필수 불가입니다.

Q. 그랄VM(GraalVM) 엔터프라이즈 21.2.0 과 자바 JDK 11과 서로 다른 것인가요?

두 가지는 서로 불가분의 관계입니다. 오라클에서 두 프로젝트를 동시에 진행하고 있으며, GraalVM은 자바 JDK 11뿐만 아니라 JDK 17까지 포함되어 있습니다. 물론 설치과정에서 사용자나 개발자들이 JDK 버전을 미리 선택해 다운받아 사용가능합니다. 물론 JDK 11/JDK 17을 설치하고 나면 GraalVM을 별도록 설치할 필요 없지만 통상 GraalVM 엔터프라이즈 (유료이자만 개발용으로 가능)를 설치하면 자동으로 JDK가 설치됩니다. 이는 멀티로 개발 가능하도록 돕습니다. 당연히 R, Ruby, Python, Javascript (NodeJS/Vue.JS/AngularJS/ReastJS) 모두 동시에 가능합니다. 이를 Polyglot이라 부릅니다.

Q. 오라클 자율 운영 데이터베이스(Oracle Autonomous Database)는 무엇인가요?

2017년 첫선을 보인 이래 오라클 자율 운영 데이터베이스는 튜닝 자동화된 최적의 성능을 자동화한 이상적인 데이터베이스입니다. 많은 데이터베이스 시스템에서 성능 저하 방지용 튜닝 전문가들을 필요로 한 기업들로서는 많은 비용이 들겠지만, 이 자율운영 데이터베이스는 성능 최적화를 위한 튜닝 작업을 자동화 하여 지속적으로 수행하게 되는 이상적인 데이터베이스 입니다. 또한 두번째로 데이터베이스 생성에 대한 서비스를 데이터베이스명 CPU 갯수, 스토리지 용량, 오라클 암호 관리를 모두 1분 내에 생성하는 혁식적인 신속성을 지닙니다. 세번째로 운영시간에 새로운 비지니스 분석 요건에 따라 컴퓨팅 파워와 스토리지 확장에 간단히 몇 개의 클릭으로 확장 가능한 무중단 탄력성을 지닙니다. 마지막으로 머신러닝을 제공하는 SQLNote로 데이터를 실시간으로 분석하는 비지니스의 민첩성에 효과를 발휘하고 있는 신기술이기도 하죠.


📚HOW TO GET START

[Step 1] Instruction : 우선 전제 조건과 함께 하는 마이크로넛 정의를 소개로 다양한 개발 환경에 대한 이해를 도울 것입니다. 물론 그랄VM에 다한 간략한 정의도 함께 소개합니다.
[Step 2] Getting Start: 이 과정에서는 유분투 20.04 LTS 설치를 도울 것입니다. 오라클 프리 트라이얼 계정 생성과 함께 로그인해 오라클 프리 트라이얼 계정으로 오라클 클라우드 세계를 경험할 수 있습니다. 옵션으로서 오라클 프리 트라이얼 환경 내에서 개발을 진행합니다. 개발 도구를 지원하고자 비주얼 스튜디오 코드 설치와 인텔리제이, 자바 11 버전이 수록되어 있는 GraalVM 21.2.0 설치 그리고 마이크로넛 설치로 마무리할 예정입니다.

[Step 3] Setup Oracle Autonomus Database: 이 과정에서는 OCI 곧 오라클 클라우드에서 제공하는 Oracle Autonomous Database 자율 운영 데이터베이스 인스턴스를 생성하게 됩니다. 그 OCI 콘솔 내부에 제공하는 오라클 데이터베이스 액션 패널을 이용해 SQL 문장을 직접 입력해 새로운 유저 계정을 별도로 생성할 수 있습니다. 여기서 오라클 지갑 용어에 대한 이해와 적용 그리고 ATP 암호를 생성해봅시다.

[Step 4] Create hello Micronaut Application: 이 과정에서는 우분투 가상 운영체제 위에서 직접 백엔드 작업 개발에 착수하게 됩니다. 자동 코드 생성기라는 자바 마이크로넛 런치 웹 사이트를 이용해 마이크로넛 보일러 플레이트 자바 코드를 생성하고, 전 시간에 설치한 VS 코드를 갖고 hello micronaut application을 제작할 예정입니다.

[Step 5] Build Micronaut Application: 이 과정은 두 파트로 나눠 진행합니다.
Part 1 : 실제 프로젝트 베이스에서 자주 사용하는 백엔드 방식으로 진행할 예정이어서 mn 마이크로넛 명령어 프롬프트 내에서 명령어 입력해 디폴트 자바 코드 생성을 한 뒤 인텔리제이 IDEA 툴을 열어 그 소스를 부릅니다. 그 이후 오라클 자바 11 버전이 수록된 GraalVM 21.2 버전 바탕 위에 마이크로넛 개발에 착수하면서 자율 운영 JDBC 연결과 마이크로넛 데이터 API를 사용해 자율 운영 데이터베이스 초기 데이터 CURD 생성/업데이트/읽기/삭제 관련 소스 업데이트를 진행하게 됩니다.
Part 2 : 두 번째 진행 과정은 플라이웨이 스키마를 사용하여 클라우드 자율 운영 데이터베이스에 두 테이블을 생성합니다. 진행 과정에서 CRUD 인터페이스를 이용해 데이터베이스 엑세스 툴킷인 마이크로넛 데이터와 백엔드 작업도 함께 살펴봅니다. 싱글톤 어노테이션을 사용해 애플리케이션을 생성하며 애플리케이션 스타트 업 초기에 기초 데이터를 제작합니다.

[Step 6] Build a GraalVM Native Image : 이 과정에서는 그랄VM 네이티브 이미지 기술을 이용한 exe 실행 화일을 생성해봅니다. 이는 그래들 (Gradle)과 함께 기초가 되는 헬로우 자바 파일을 생성하여 만들어진 자바 클래스가 네이티비 이미지를 통한 변환 과정도 함께 살펴봅니다.

[Step 7] 마지막 과정으로 오라클 클라우드에 구현한 소스들을 디플로이하는 과정을 진행하게 됩니다.

I will be back. 

Author
Billy Lee

Billy Lee

네오아베뉴 (neuavenue.com) 대표. 캐나다 토론토에서 Full-Stack Developer(핸디맨/이커머스/레시피 애플리케이션) 및 온라인 강의로 IT 인재 양성에 힘쓰고 있습니다. 한국에서는 대기업 및 금융권 (재무, 금융) 다수 프로젝트를 경험했으며, 2020년 Software Eng. Technician을 졸업했습니다. billylee96312@gmail.com

Comments
  • digitla-insight-202102-offline-ads-chai-communication
© DIGITAL iNSIGHT 디지털 인사이트. 무단전재 및 재배포 금지

뉴스콘텐츠는 저작권법 제7조 규정된 단서조항을 제외한 저작물로서 저작권법의 보호대상입니다. 본 기사를 개인블로그 및 홈페이지, 카페 등에 게재(링크)를 원하시는 분은 반드시 기사의 출처(로고)를 붙여주시기 바랍니다. 영리를 목적으로 하지 않더라도 출처 없이 본 기사를 재편집해 올린 해당 미디어에 대해서는 합법적인 절차(지적재산권법)에 따라 그 책임을 묻게 되며, 이에 따른 불이익은 책임지지 않습니다.

Related Posts