로그인 / 등록 Account

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

자바 프레임워크(Java Framework)란?

Jump to section

Java™ 프레임워크는 개발자가 Java 프로그래밍 언어로 애플리케이션을 만들기 위해 사용하는 미리 작성된 코드의 본문입니다.

Java 프레임워크는 Java 프로그래밍 언어에만 있는 독특한 요소로, 소프트웨어 애플리케이션 및 Java 프로그램을 개발하는 데 사용되는 Java 플랫폼입니다.

Java 프레임워크는 템플릿처럼 사용할 수 있는 미리 작성된 재사용 가능 코드의 본문으로, 개발자가 애플리케이션을 개발할 때 필요에 따라 사용자 정의 코드를 입력하여 쓸 수 있습니다.

프레임워크는 여러 번 사용할 수 있게 제작되었으므로 개발자는 모든 것을 처음부터 수동으로 작성하지 않고도 애플리케이션을 프로그래밍할 수 있습니다.

Java 프레임워크에는 시스템 소프트웨어와 상호 작용할 뿐만 아니라 하드웨어 기기를 처리, 입력, 관리하는 데 사용할 수 있는 사전 정의된 클래스(예: 오브젝트의 카테고리)와 함수가 포함될 수 있습니다. 이는 자바 프레임워크 종류, 자바 개발 정도, 목표, 선호도에 따라 달라집니다.

Java란?

Java는 1995년부터 사용되어 온 오브젝트 지향적인 프로그래밍(Object-Oriented Programming, OOP) 언어입니다. 개발자는 Java를 사용하여 애플리케이션이 속한 도메인 경계 내에서 작동하는 애플리케이션을 프로그래밍합니다.

Java와 JavaScript는 같은 시기에 각기 다른 회사에서 개발된 서로 다른 프로그래밍 언어이므로 둘을 혼동해서는 안 됩니다. Java 개발을 통해 브라우저나 서버의 베어 메탈 머신, 가상 머신 또는 컨테이너에서 실행할 수 있는 애플리케이션이 생성됩니다. JavaScript는 브라우저에서만 실행됩니다.

라이브러리, 프레임워크, 애플리케이션 프로그래밍 인터페이스(API) 간 차이

라이브러리는 애플리케이션의 특정 기능이고, 프레임워크는 애플리케이션의 구조이며, API는 사용자를 위해 이 둘을 한데 묶어주는 요소라고 볼 수 있습니다. 프레임워크에는 라이브러리, 컴파일러를 비롯해 개발 프로세스에서 사용되는 다른 프로그램이 포함될 수 있습니다. 탄탄한 프레임워크가 갖춰져 있다면, 개발자는 도메인 또는 애플리케이션에서 반복 사용되는 코드로 인한 문제를 겪지 않아도 됩니다.

라이브러리

라이브러리란 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스(클래스, 템플릿, 설정 데이터 등)를 모아둔 것입니다. 태스크를 실행해야 할 때마다 이 기능에 대한 코드를 작성하는 대신, 태스크를 수행해야 할 때마다 루틴이 사용됩니다. 리소스가 필요한 경우 프로그램은 해당 리소스에 대한 라이브러리를 호출합니다.

프레임워크

프레임워크는 라이브러리의 컬렉션이라고 할 수 있습니다. 이 둘 사이의 주된 차이점은 제어의 역전, 즉 프레임워크에는 작업을 호출할 수 있는 제어권이 있다는 것입니다. 프레임워크는 필요한 템플릿 또는 프레임을 이미 보유하고 있기 때문에, 기존 항목을 기준으로 필요한 리소스를 호출할 수 있습니다(코드의 비어있는 영역을 채워야 함).

애플리케이션 프로그래밍 인터페이스(API)

프레임워크는 애플리케이션 프로그래밍 인터페이스(API)와 유사합니다. 기술적인 측면에서 프레임워크에는 API가 포함되어 있습니다. 프레임워크는 프로그래밍의 기반인 반면, API는 프레임워크가 지원하는 요소에 대한 액세스 권한을 제공합니다.

자바 프레임워크 종류

Java 프레임워크에는 몇 가지가 있습니다. 개발자의 기술 역량과 애플리케이션 또는 웹사이트 요구 사항에 따라 어떤 프레임워크를 사용해야 하는지가 결정됩니다. 많이 사용되는 몇 가지 오픈소스 프레임워크는 다음과 같습니다.

  • Quarkus: 풀스택 Java 프레임워크로, 클라우드 네이티브 방식의 마이크로서비스 기반 인프라와 원활하게 연동됩니다.
  • Grails: Groovy 프로그래밍 언어로 작성되며, 웹 애플리케이션 프레임워크에 HTML 및 CSS 플러그인 보기를 제공합니다.
  • Hibernate: Object-Relational Mapping(ORM) 프레임워크로, Java Database Connectivity(JDBC)가 제공하는 API의 도움을 받아 SQL 쿼리를 실행할 수 있는 관계형 데이터베이스 관리에 사용됩니다.
  • 프론트엔드/클라이언트 측 및 백엔드 소프트웨어 개발 팀을 연결하는 Google Web Toolkit(GWT)

많이 사용되는 기타 Java 프레임워크는 다음과 같습니다.

  • Vaadin: 사용자 인터페이스에 중점을 둔 프레임워크 포함 
  • Play: 웹 애플리케이션 개발을 간소화하고 Scala 프로그래밍 언어와 원활하게 연동됩니다.
  • Apache Struts: 엔터프라이즈 애플리케이션을 중심으로 비동기식 JavaScript 및 XML(AJAX) 기술과 원활히 연동됩니다. 따라서 모든 것을 교체하지 않고도 웹 페이지 섹션을 업데이트할 수 있는 유용한 방법입니다.
  • Oracle의 JavaServer Faces(JSF): 백엔드 개발자에게 프론트엔드 프레임워크 제공

Quarkus: 풀스택 Java 프레임워크

Quarkus는 Java 가상 머신(Java Virtual Machine, JVM)과 네이티브 컴파일을 위해 만들어진 쿠버네티스 네이티브 Java 스택입니다. 특히 쿠버네티스에서 Java를 최적화하므로 서버리스(serverless), 클라우드, 쿠버네티스 환경에 효과적인 플랫폼이 됩니다.

Quarkus의 종속성 주입은 Contexts and Dependency Injection(CDI)을 기반으로 하며, 기능을 확대하고 프레임워크를 애플리케이션으로 설정, 부팅 및 통합하기 위한 확장 프레임워크를 포함합니다. 확장 기능을 추가하는 것은 종속성을 추가하는 것만큼 간단하며, Quarkus 툴을 사용할 수도 있습니다.

Java 프레임워크 지원 툴

Red Hat JBoss Enterprise Application Platform logo

Java 기반 서비스를 개발하기 위한 플랫폼입니다.

Red Hat Codeready product logo

Eclipse 기반의 인증된 통합 개발 환경(IDE)입니다.

Red Hat Runtimes

클라우드 네이티브 애플리케이션을 위한 제품, 툴, 구성 요소 세트입니다.

자바 및 클라우드 네이티브의 미래 전망을 알아 보세요