[java] Apache Sling의 사용 예

Apache Sling은 웹 응용 프로그램을 빠르고 간단하게 작성할 수 있는 웹 프레임워크입니다. 여기서는 Apache Sling의 간단한 예제를 통해 어떻게 사용되는지 알아보겠습니다.

Apache Sling 설치

Apache Sling을 사용하려면 먼저 다음과 같이 Maven을 사용하여 Maven 프로젝트에 Apache Sling을 추가해야 합니다.

<dependency>
    <groupId>org.apache.sling</groupId>
    <artifactId>org.apache.sling.api</artifactId>
    <version>2.24.0</version>
</dependency>

위의 Maven 의존성을 추가하면 Apache Sling API를 사용할 수 있습니다.

간단한 REST 서비스 만들기

이제 간단한 REST 서비스를 만들어 보겠습니다. 다음은 “Hello, Sling!” 메시지를 반환하는 간단한 REST 리소스입니다.

import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import javax.servlet.http.HttpServletResponse;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.osgi.service.component.annotations.Component;

@Component(
    service = { org.apache.sling.servlets.resolver.ServletResolver.class },
    property = {
        "sling.servlet.resourceTypes=sling/servlet/default",
        "sling.servlet.methods=GET"
    }
)
public class HelloSlingServlet extends SlingAllMethodsServlet {
    @Override
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) {
        try {
            response.getWriter().write("Hello, Sling!");
            response.setStatus(HttpServletResponse.SC_OK);
        } catch (Exception e) {
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        }
    }
}

위의 코드는 Apache Felix나 Apache Karaf와 같은 OSGi 컨테이너에 배포할 수 있습니다. 이제 “/hello” 경로로 HTTP GET 요청을 보내면 “Hello, Sling!”이라는 응답을 받을 수 있습니다.

마무리

Apache Sling을 사용하면 단순하고 효과적인 웹 애플리케이션을 작성할 수 있습니다. 이번 포스트에서는 간단한 REST 서비스를 만드는 방법을 살펴보았지만, Apache Sling은 더 많은 기능과 유연성을 제공합니다. Apache Sling의 공식 문서에서 더 많은 정보를 얻을 수 있으니 참고하시기 바랍니다.