Quarkus와 이클립스를 이용한 개발환경 세팅 5단계 가이드

안녕하세요. 오늘은 Java의 혁신적인 클라우드 네이티브 프레임워크인 Quarkus와 이클립스를 이용하여 개발환경을 세팅하는 방법을 가이드해 드리겠습니다.


1. 필요한 소프트웨어


Java JDK 8 이상

Java JDK 8은 Java 개발 키트(Java Development Kit)의 8번째 메이저 버전입니다. Java는 오라클(이전에는 Sun Microsystems)에서 개발된 객체 지향 프로그래밍 언어입니다. JDK는 Java 언어로 소프트웨어를 개발하기 위해 필요한 도구와 라이브러리의 집합을 포함합니다.

JDK 8은 2014년 3월에 출시되었으며, Java 언어와 플랫폼에 여러 중요한 기능과 개선사항을 도입했습니다. JDK 8의 주요 특징은 다음과 같습니다:

람다 표현식 (Lambda Expressions): 코드의 간결성을 증가시키고, 컬렉션 라이브러리와의 효율적인 통합을 통해 병렬 처리를 간단하게 만드는 기능입니다.

스트림 API (Stream API): 데이터 처리를 위한 새로운 추상화를 제공하며, 특히 대규모 데이터 컬렉션에 대한 선언적 계산을 가능하게 합니다.

날짜와 시간 API (Date and Time API): Joda-Time에서 영감을 받은 이 API는 날짜와 시간 처리를 위한 완전히 새로운 및 향상된 라이브러리를 제공합니다.

Nashorn JavaScript 엔진: Java 애플리케이션 내에서 JavaScript를 실행할 수 있게 하는 새로운 JavaScript 엔진입니다.

Optional 클래스: 값이 있을 수도 있고 없을 수도 있는 객체를 포장하는 컨테이너 객체입니다. 이는 null 포인터 예외를 방지하는 데 도움을 줍니다.

애너테이션의 개선: 애너테이션을 타입에 사용할 수 있게 되었으며, 반복 가능한 애너테이션 등이 도입되었습니다.

새로운 java.util.concurrent API 기능: 병렬성과 동시성을 위한 추가 도구들이 도입되었습니다.

이러한 기능들은 Java의 기능성, 성능, 그리고 개발자의 생산성 향상을 위해 도입되었습니다. JDK 8은 많은 기업과 개발자에게 여전히 인기있는 버전으로 남아 있습니다.


이클립스 IDE

이클립스(Eclipse)는 원래 Java IDE (통합 개발 환경)로 개발되었지만, 다양한 플러그인 아키텍처를 지원하므로 다양한 프로그래밍 언어와 개발 작업에 적합하게 확장될 수 있습니다. 오픈 소스 프로젝트로, 이클립스 재단(Eclipse Foundation)이 관리하고 있습니다.

주요 특징과 기능은 다음과 같습니다:

플러그인 기반 아키텍처: 기본적인 프레임워크 위에 다양한 플러그인을 추가하여 확장할 수 있습니다. 이로 인해 사용자는 자신의 필요에 따라 IDE를 맞춤 설정할 수 있습니다.

다양한 언어 지원: Java, C/C++, Python, PHP, Ruby 등과 같은 다양한 프로그래밍 언어를 지원합니다. 각 언어에 대한 지원은 대부분 플러그인 형태로 제공됩니다.

버전 제어 시스템 통합: Git, Mercurial, SVN 등의 주요 버전 제어 시스템과의 통합을 지원합니다.

리팩토링 및 코드 분석 도구: 코드 품질을 향상시키는 다양한 도구를 포함하고 있습니다.

디버거: 자바 및 다른 언어에 대한 강력한 디버깅 도구를 제공합니다.

Maven, Gradle 통합: 주요 빌드 도구와의 통합을 지원하여 프로젝트의 의존성 관리 및 빌드 프로세스를 간소화합니다.

웹 개발 도구: HTML, CSS, JavaScript 및 다른 웹 기술을 위한 편집기와 도구를 포함하고 있습니다.

다양한 커뮤니티 지원: 수많은 플러그인과 확장 프로그램이 있어, 개발자의 다양한 요구 사항을 충족시킵니다.


Maven

Maven은 자동화된 빌드 도구이며, 주로 Java 프로젝트를 위한 의존성 관리 및 프로젝트 빌드를 돕습니다. Maven의 주요 목표는 개발자가 프로젝트 구조와 라이브러리 의존성에 대해 일관된 방식을 사용하여 개발 프로세스를 간소화하고 표준화하는 것입니다.

Maven의 주요 특징은 다음과 같습니다:

  1. 중앙 저장소: Maven은 중앙 저장소라는 개념을 도입하여 필요한 라이브러리와 플러그인을 자동으로 다운로드합니다. 이를 통해 개발자가 수동으로 라이브러리를 관리하는 데 드는 시간을 줄일 수 있습니다.
  2. 의존성 관리: pom.xml 파일을 통해 프로젝트의 라이브러리 의존성을 명시하면, Maven은 자동으로 필요한 라이브러리를 다운로드하고 프로젝트에 통합합니다.
  3. 생명주기와 플러그인: Maven은 빌드 생명주기를 정의하고, 이 생명주기의 각 단계에 대한 작업을 플러그인을 통해 수행합니다. 예를 들어, compile, test, package 등의 명령어를 통해 해당 단계의 작업을 수행할 수 있습니다.
  4. 프로젝트 정보 및 문서화: Maven은 프로젝트에 관한 다양한 정보(예: 개발자 목록, 라이센스, 버전)를 pom.xml에 기록하며, 이 정보를 바탕으로 문서화 작업을 자동화할 수 있습니다.
  5. 다양한 플러그인: Maven은 다양한 플러그인을 지원하여, 빌드 및 배포 프로세스를 맞춤화하고 확장할 수 있습니다.
  6. 다양한 프로젝트 타입 지원: Maven은 Java 애플리케이션 외에도 웹 애플리케이션, EJB, 웹 서비스 등의 다양한 프로젝트 타입을 지원합니다.

Maven은 프로젝트의 라이브러리 관리, 빌드, 배포 등의 일련의 과정을 표준화하고 자동화하여, 개발자가 복잡한 빌드 및 배포 과정에서 발생할 수 있는 문제를 최소화하고 생산성을 높이는 데 큰 도움을 제공합니다.


2. IDE 설치 및 개발환경 세팅

사이트방문
  • 처음 실행할 때 워크스페이스 위치를 설정합니다.
  • eclipse plugin 설치
이클립스 quarkus 플러그인

3. Quarkus 프로젝트 시작하기

  1. 터미널 또는 명령 프롬프트를 열고, 원하는 디렉토리로 이동합니다.
  2. 다음 Maven 명령어를 이용하여 새로운 프로젝트를 생성합니다:
mvn io.quarkus:quarkus-maven-plugin:create \
    -DprojectGroupId=org.example \
    -DprojectArtifactId=my-quarkus-project \
    -DclassName="org.example.MyResource"

4. 이클립스에 프로젝트 가져오기

  • IDE를 열고 File > Import를 선택합니다.
  • Maven > Existing Maven Projects를 선택하고 Next 버튼을 클릭합니다.
  • Browse 버튼을 클릭하여 앞서 생성한 프로젝트의 위치를 선택하고, 프로젝트를 가져옵니다.

5. 애플리케이션 실행하기 가이드

  • 프로젝트 탐색기에서 프로젝트를 마우스 오른쪽 클릭합니다.
  • Run As > Java Application을 선택하여 애플리케이션을 실행합니다.
  • 브라우저에서 http://localhost:8080 주소로 접속하여 애플리케이션을 확인합니다.
디버깅 동작도 정상이다.

이상으로 설정 방법을 모두 마쳤습니다. 이제 풍부한 기능을 활용하여 효율적인 클라우드 네이티브 애플리케이션 개발을 시작할 수 있습니다!


클라우드 네이티브 애플리케이션이란?

클라우드 네이티브 애플리케이션은 클라우드 환경에 최적화된 애플리케이션을 설계, 개발, 운영하는 접근 방식을 의미합니다. 클라우드 네이티브 방식은 효율적으로 대규모 분산 시스템에서 운영될 수 있도록 애플리케이션을 구축하는데 중점을 둡니다.

클라우드 네이티브 애플리케이션의 주요 특징은 다음과 같습니다:

  1. 마이크로서비스 아키텍처: 클라우드 네이티브 애플리케이션은 종종 마이크로서비스 아키텍처를 사용하여 개발됩니다. 이 구조에서는 각 서비스가 독립적으로 배포 및 확장할 수 있습니다.
  2. 컨테이너화: 애플리케이션과 그에 딸린 종속성들은 컨테이너 내에 패키징됩니다. 이는 일관된 환경에서의 실행을 보장하며, 이식성을 높여줍니다.
  3. 동적 관리: 클라우드 네이티브 애플리케이션은 자동화된 시스템에 의해 동적으로 관리되고 확장됩니다. 예를 들어, Kubernetes와 같은 오케스트레이션 도구를 사용하여 애플리케이션의 인스턴스를 자동으로 확장하거나 축소할 수 있습니다.
  4. DevOps 및 지속적인 통합/배포 (CI/CD): 클라우드 네이티브 애플리케이션 개발에는 DevOps 문화와 지속적인 통합 및 배포가 중요한 역할을 합니다. 이를 통해 빠르고 안정적으로 애플리케이션 변경사항을 제공할 수 있습니다.
  5. 리셸런시와 장애 회복: 클라우드 네이티브 애플리케이션은 장애에 대비하여 설계되며, 장애 발생 시 빠르게 회복할 수 있습니다.
  6. 분산 데이터: 클라우드 네이티브 애플리케이션은 분산 데이터 스토리지를 사용하여 데이터 일관성, 내구성 및 가용성을 보장합니다.

클라우드 네이티브 접근 방식은 현대의 빠르게 변하는 비즈니스 환경과 디지털 요구사항에 더욱 반응성 있게 대응할 수 있도록 애플리케이션을 빠르고 유연하게 제공하는 것을 목표로 합니다.


유로 Intellij, 그리고 vscode 보다 디버깅 버그가 적은 IDE 한번 이용해 보시는 것도 좋습니다. 계속해서 흥미로운 포스트를 기대해주세요. GOMDOC이였습니다. 다음 포스트에서 만나요!

로그 설정 정보는 아래 클릭!

로그 설정 및 패턴 등록 방법 2단계