[java] JAX-RS와 그래들 빌드 도구를 활용한 프로젝트 구성

이번 글에서는 JAX-RS와 그래들 빌드 도구를 활용하여 자바 프로젝트를 구성하는 방법에 대해 알아보겠습니다.

JAX-RS란?

JAX-RS는 Java API for RESTful Web Services의 약자로, RESTful 웹 서비스를 개발할 때 사용되는 자바 API입니다. JAX-RS는 Java에서 웹 서비스 개발을 더 간편하게 하기 위해 제공되는 표준 API입니다.

그래들 빌드 도구란?

그래들은 자바 기반의 오픈 소스 빌드 도구로, 프로젝트를 빌드하고 관리하는 도구입니다. 그래들은 Ant나 Maven과 같은 다른 빌드 도구들보다 더 간편하고 유연한 빌드 스크립트를 작성할 수 있도록 함으로써 개발자들의 생산성을 높입니다.

프로젝트 구성하기

  1. JAX-RS 프로젝트 생성

먼저, 터미널에서 새로운 디렉토리를 만들고 해당 디렉토리로 이동합니다. 그리고 다음 명령어를 입력하여 JAX-RS 프로젝트를 생성합니다.

$ mkdir my-jaxrs-project
$ cd my-jaxrs-project
$ gradle init --type java-library

위 명령어를 실행하면 build.gradle 파일과 src/main/java 폴더가 생성됩니다.

  1. JAX-RS 의존성 추가

build.gradle 파일을 열고 다음 내용을 추가합니다.

dependencies {
    implementation 'javax.ws.rs:javax.ws.rs-api:2.1'
    implementation 'org.glassfish.jersey.containers:jersey-container-servlet:3.0.2'
    implementation 'org.glassfish.jersey.media:jersey-media-json-jackson:3.0.2'
}

위 내용은 JAX-RS API와 Jersey 컨테이너, 그리고 JSON 지원을 위한 Jackson 라이브러리를 프로젝트에 추가하는 것입니다.

  1. JAX-RS 애플리케이션 작성

src/main/java 폴더 내에 MyJaxRsApplication.java 파일을 생성하고 다음 내용을 추가합니다.

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/")
public class MyJaxRsApplication extends Application {

}

위 내용은 JAX-RS 애플리케이션의 진입점을 설정하고 있습니다.

  1. JAX-RS 리소스 작성

src/main/java 폴더 내에 HelloResource.java 파일을 생성하고 다음 내용을 추가합니다.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello() {
        return "Hello, JAX-RS!";
    }
}

위 내용은 JAX-RS 리소스를 작성하고 있으며, /hello 경로로 요청이 들어오면 Hello, JAX-RS!를 반환합니다.

  1. 프로젝트 빌드 및 실행

터미널에서 다음 명령어를 입력하여 프로젝트를 빌드하고 실행합니다.

$ gradle build
$ gradle run

위 명령어를 실행하면 서버가 시작되고, http://localhost:8080/hello 경로로 접속하면 Hello, JAX-RS!를 확인할 수 있습니다.

마무리

이번 글에서는 JAX-RS와 그래들 빌드 도구를 사용하여 자바 프로젝트를 구성하는 방법을 알아보았습니다. JAX-RS를 사용하면 RESTful 웹 서비스를 간편하게 개발할 수 있고, 그래들을 활용하면 더 유연하고 효율적인 프로젝트 관리가 가능합니다. 이러한 도구들을 잘 활용하여 프로젝트를 구성할 때 높은 생산성과 효율성을 얻을 수 있습니다.

참고 자료