Jakarta EE 10 Web Profile

  • 11 minutes to read

Jakarta EE 10 Web Profile은 Java Enterprise Edition (Java EE)의 후속 버전인 Jakarta EE 10의 Web Profile 구현입니다. Jakarta EE 10은 Java EE 8을 기반으로 하며, Java 플랫폼의 기능적 호환성을 유지하면서 업데이트 및 모듈화가 이루어졌습니다.

Web Profile은 Jakarta EE 표준 중 하나로, 웹 애플리케이션을 개발하기 위한 기술 스택을 정의합니다. Jakarta EE 10 Web Profile은 다음과 같은 기술을 포함합니다.

  • Servlet API: 웹 애플리케이션 서버에서 동작하는 웹 컨테이너를 위한 API
  • JavaServer Pages (JSP): 동적으로 생성된 웹 페이지를 작성하기 위한 기술
  • Expression Language (EL): JSP 내에서 값이나 객체를 참조하기 위한 표현 언어
  • JavaServer Faces (JSF): 웹 애플리케이션의 UI를 작성하기 위한 프레임워크
  • Contexts and Dependency Injection (CDI): 컴포넌트 기반 애플리케이션을 위한 의존성 주입 프레임워크
  • Bean Validation: 객체 유효성 검사를 위한 API
  • Java Transaction API (JTA): 트랜잭션 처리를 위한 API
  • Java Persistence API (JPA): ORM 프레임워크로, 객체와 데이터베이스 간의 매핑을 지원
  • Java API for RESTful Web Services (JAX-RS): RESTful 웹 서비스를 작성하기 위한 API

이러한 기술들은 웹 애플리케이션 개발을 위한 필수적인 요소들을 모두 포함하고 있어, Jakarta EE 10 Web Profile을 사용하여 빠르게 안정적이고 확장 가능한 웹 애플리케이션을 개발할 수 있습니다.

Apache TomEE

Apache TomEE는 Tomcat을 기반으로 하는 경량형 Java EE 애플리케이션 서버입니다. Tomcat은 Servlet 및 JSP 컨테이너로써 기능하지만, Java EE 표준 사양을 완전히 지원하지는 않습니다. 반면에, TomEE는 Tomcat을 확장하여 Java EE 표준 사양을 완전히 준수하도록 만들어졌습니다.

TomEE는 Java EE 플랫폼 API와 함께 JPA(Java Persistence API), CDI(Context and Dependency Injection), EJB(Enterprise JavaBeans) 및 JTA(Java Transaction API)와 같은 Java EE 사양의 구현을 포함합니다. 이러한 기술들은 대규모 기업 애플리케이션에서 필수적인 요소이며, TomEE를 사용하여 더 나은 성능과 안정성을 가진 Java EE 애플리케이션을 개발할 수 있습니다.

TomEE는 경량화된 애플리케이션 서버이기 때문에 빠르게 실행되고, 메모리 사용량도 적습니다. 이러한 이점은 애플리케이션 서버를 작성하는 데 사용된 많은 노력과 비용을 줄여줍니다. 또한, TomEE는 Tomcat의 확장된 버전으로 구현되어 있기 때문에 Tomcat에 익숙한 개발자들은 쉽게 학습할 수 있습니다.

Apache TomEE는 오픈 소스 프로젝트이며, Apache Software Foundation에서 개발 및 유지 관리하고 있습니다. TomEE는 Apache License 2.0으로 배포되므로 무료로 사용할 수 있으며, 자유롭게 수정하고 배포할 수 있습니다.

Apache TomEE 설치

Apache TomEE를 설치하는 방법은 다음과 같습니다.

  1. Apache TomEE 공식 웹 사이트에서 다운로드 페이지로 이동합니다.
  2. "Latest Release" 섹션에서 "Web Profile" 또는 "Plus" 버전을 선택합니다.
    • "Web Profile" 버전은 Java EE의 대부분의 기능을 제공하지만, EJB와 JMS를 제공하지 않습니다.
    • "Plus" 버전은 Java EE의 모든 기능을 제공합니다.
  3. 다운로드한 파일을 원하는 디렉토리에 압축 해제합니다.
  4. TomEE를 실행하기 위해 "bin" 디렉토리로 이동합니다.
  5. 쉘 또는 명령 프롬프트에서 "startup.[sh|bat]" 파일을 실행합니다.
    • 윈도우 환경에서는 "startup.bat" 파일을 실행합니다.
    • macOS 또는 Linux에서는 "startup.sh" 파일을 실행합니다.
  6. TomEE가 시작되면, 브라우저에서 "http://localhost:8080" URL을 엽니다.
    • TomEE의 홈페이지가 표시되면, TomEE가 제대로 설치되어 실행되었음을 의미합니다.

TomEE를 중지하려면, "bin" 디렉토리로 이동하여 "shutdown.[sh|bat]" 파일을 실행합니다. 이 명령을 실행하면 TomEE가 안전하게 중지됩니다.

위의 단계를 따라 설치하면 Apache TomEE를 실행할 수 있습니다. TomEE를 시작하고 중지하는 데 사용할 수 있는 스크립트 파일은 TomEE가 설치된 디렉토리의 "bin" 폴더에 위치합니다. 또한, "conf" 폴더에서 TomEE의 구성 파일을 찾을 수 있으며, 이를 편집하여 TomEE를 사용자 지정할 수 있습니다.

Apache TomEE WebApps 폴더

Apache TomEE에서 "WebApps" 폴더는 TomEE에 배포된 웹 애플리케이션의 루트 디렉토리입니다. TomEE는 "WebApps" 폴더를 모니터링하고 있으며, 새로운 웹 애플리케이션이 배포되면 자동으로 로드됩니다. "WebApps" 폴더는 TomEE의 기본 배포 디렉토리이지만, "conf/server.xml" 파일에서 설정을 변경하여 다른 디렉토리를 사용할 수도 있습니다.

"WebApps" 폴더의 구조는 다음과 같습니다.

WebApps/
  └── MyWebApp/
      ├── WEB-INF/
      │   ├── classes/
      │   ├── lib/
      │   ├── web.xml
      │   └── ...
      ├── index.jsp
      └── ...

위의 구조에서 "MyWebApp" 폴더는 배포할 웹 애플리케이션의 이름입니다. "MyWebApp" 폴더에는 "WEB-INF" 폴더와 애플리케이션의 코드 및 리소스가 포함되어 있습니다. "WEB-INF" 폴더는 웹 애플리케이션에 대한 메타데이터 및 설정 파일이 포함된 폴더입니다. "classes" 폴더는 웹 애플리케이션에서 사용되는 Java 클래스 파일을 포함하고, "lib" 폴더는 애플리케이션에서 사용되는 라이브러리(JAR 파일)를 포함합니다. "web.xml" 파일은 웹 애플리케이션의 설정을 정의하는데 사용되는 배치 설명자입니다.

"WebApps" 폴더 내의 각 웹 애플리케이션 폴더는 고유한 컨텍스트 경로를 가집니다. 예를 들어, "MyWebApp" 웹 애플리케이션의 컨텍스트 경로는 "http://localhost:8080/MyWebApp"입니다. "index.jsp" 파일은 웹 애플리케이션의 홈페이지로 사용되며, 웹 애플리케이션을 시작할 때 자동으로 로드됩니다.

따라서, "WebApps" 폴더는 TomEE에서 웹 애플리케이션을 배포하는 데 사용되는 기본 디렉토리입니다. 폴더 내의 각 웹 애플리케이션 폴더는 웹 애플리케이션의 설정과 코드, 리소스 등을 포함하며, 각 웹 애플리케이션의 고유한 컨텍스트 경로를 가집니다.

Gradle 사용하기

Gradle은 Apache TomEE와 같은 Java 웹 애플리케이션을 빌드하고 배포하는 데 사용되는 인기있는 빌드 도구 중 하나입니다. Gradle을 사용하여 Apache TomEE를 빌드하고 실행하는 방법에 대한 간략한 설명을 제공합니다.

  1. Gradle 설치: Gradle을 설치하려면 Gradle 공식 웹 사이트에서 최신 버전을 다운로드하고 설치합니다.
  2. TomEE 다운로드: TomEE 공식 웹 사이트에서 TomEE를 다운로드합니다.
  3. Gradle 프로젝트 설정: Gradle 프로젝트를 설정합니다. 예를 들어, 새로운 디렉토리를 만들고 "build.gradle" 파일을 생성합니다.
  4. 의존성 추가: "build.gradle" 파일에 의존성을 추가합니다. TomEE의 구성에 따라 필요한 라이브러리를 추가해야 합니다. 예를 들어, 다음과 같이 "build.gradle" 파일에 TomEE Web Profile 버전을 사용하는 경우에 필요한 의존성을 추가할 수 있습니다.
dependencies {
    compileOnly 'javax:javaee-api:8.0'
    compileOnly 'org.apache.tomee:apache-tomee:8.0.0-M1:webprofile'
}
  1. WAR 파일 빌드: 웹 애플리케이션을 WAR 파일로 빌드합니다. Gradle의 "war" 플러그인을 사용하여 WAR 파일을 빌드할 수 있습니다. "build.gradle" 파일에 다음과 같은 코드를 추가합니다.
apply plugin: 'war'

war {
    baseName = 'my-web-app'
    version = '1.0.0'
}
  1. TomEE 실행: TomEE를 실행합니다. TomEE의 "bin" 폴더에서 "catalina.[sh|bat]" 파일을 실행하여 TomEE를 실행할 수 있습니다. Gradle의 "application" 플러그인을 사용하여 "run" 태스크를 실행하여 TomEE를 실행할 수도 있습니다. "build.gradle" 파일에 다음과 같은 코드를 추가합니다.
apply plugin: 'application'

mainClassName = 'org.apache.tomee.embedded.Main'

run {
    standardInput = System.in
}
  1. TomEE에 WAR 파일 배포: TomEE에 WAR 파일을 배포합니다. TomEE의 "webapps" 폴더에 WAR 파일을 복사하여 배포할 수 있습니다. Gradle의 "tomcat" 플러그인을 사용하여 TomEE에 WAR 파일을 배포할 수 있습니다. "build.gradle" 파일에 다음과 같은 코드를 추가합니다.
apply plugin: 'com.bmuschko.tomcat'

tomcat {
    httpPort = 8080
}

task deploy(dependsOn: war) << {
    tomcat.deploy(file: war.archivePath, path: '/my-web-app')
}

위의 단계를 따라 Gradle을 사용하여 Apache TomEE 웹 애플리케이션을 빌드하고 실행할 수 있습니다. Gradle은 빌드, 배포, 테스트 등을 효율적으로 관리할 수 있도록 도와주므로, 대규모 프로젝트의 경우 매우 유용합니다. Gradle을 사용하면 빌드 프로세스를 자동화하여, 개발자가 수동으로 수행해야 하는 많은 작업을 줄일 수 있습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com