[java] Java Jersey를 사용하여 RESTful 웹 서비스를 구축하는 방법은?

RESTful 웹 서비스는 클라이언트 및 서버 간에 자원을 주고 받는 데 사용되는 아키텍처 스타일입니다. 이 아키텍처를 구현하기 위해 Java에서 Jersey 프레임워크를 사용할 수 있습니다. Jersey는 Java에서 RESTful 웹 서비스를 쉽게 구축하고 관리할 수 있도록 도와주는 강력한 도구입니다. 이제 Java Jersey를 사용하여 RESTful 웹 서비스를 구축하는 방법에 대해 알아보겠습니다.

Jersey 설치

Jersey를 사용하기 위해 먼저 필요한 라이브러리를 다운로드하고 프로젝트에 추가해야 합니다. 메이븐(Maven)을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.30</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.30</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다:

implementation 'org.glassfish.jersey.containers:jersey-container-servlet:2.30'
implementation 'org.glassfish.jersey.media:jersey-media-json-jackson:2.30'

의존성을 추가한 후 프로젝트를 업데이트하여 Jersey를 설치합니다.

RESTful 웹 서비스 구축하기

  1. 자원 클래스 작성하기

    자원 클래스는 RESTful 웹 서비스에서 제공할 자원을 나타내는 클래스입니다. 이 클래스에는 HTTP 요청에 응답하는 메서드가 포함되어야 합니다. 예를 들어, UserResource 클래스를 작성하여 사용자 자원을 나타낼 수 있습니다:

     import javax.ws.rs.*;
     import javax.ws.rs.core.MediaType;
        
     @Path("users")
     public class UserResource {
            
         // GET /users/{userId}
         @GET
         @Path("{userId}")
         @Produces(MediaType.APPLICATION_JSON)
         public User getUser(@PathParam("userId") int userId) {
             // 사용자 정보를 조회하는 로직 작성
             User user = //...
             return user;
         }
            
         // POST /users
         @POST
         @Consumes(MediaType.APPLICATION_JSON)
         public void createUser(User user) {
             // 사용자 생성 로직 작성
         }
            
         // PUT /users/{userId}
         @PUT
         @Path("{userId}")
         @Consumes(MediaType.APPLICATION_JSON)
         public void updateUser(@PathParam("userId") int userId, User user) {
             // 사용자 업데이트 로직 작성
         }
            
         // DELETE /users/{userId}
         @DELETE
         @Path("{userId}")
         public void deleteUser(@PathParam("userId") int userId) {
             // 사용자 삭제 로직 작성
         }
     }
    
  2. 서버 클래스 작성하기

    서버 클래스는 웹 서비스를 실행하고 관리하는 역할을 담당합니다. 이 클래스에는 main 메서드가 있어야 합니다. 예를 들어, MainServer 클래스를 작성하여 서버를 실행할 수 있습니다:

     import org.glassfish.jersey.server.ResourceConfig;
     import org.glassfish.jersey.servlet.ServletContainer;
        
     public class MainServer {
        
         public static void main(String[] args) {
             ResourceConfig config = new ResourceConfig(UserResource.class);
             ServletContainer container = new ServletContainer(config);
        
             // 서버 실행
             JettyHttpContainerServerFactory.createServer("http://localhost:8080/", container);
         }
     }
    
  3. 웹 서버 실행

    작성한 서버 클래스를 실행하여 RESTful 웹 서비스를 시작할 수 있습니다. 웹 서버가 실행되면 UserResource 클래스에 정의한 경로를 통해 자원에 접근할 수 있습니다.

    이제 Java Jersey를 사용하여 RESTful 웹 서비스를 구축하는 방법에 대해 알아보았습니다. Jersey를 사용하면 쉽고 효과적으로 RESTful 웹 서비스를 구현할 수 있습니다. 자세한 내용은 Jersey 공식 문서를 참조하세요.

참고 자료