[java] JAX-RS를 이용한 SMS 전송

이번 블로그에서는 JAX-RS(Java API for RESTful Web Services)를 사용하여 SMS를 전송하는 방법에 대하여 알아보겠습니다.

JAX-RS란?

JAX-RS는 Java EE(Enterprise Edition)의 일부로서, RESTful 웹 서비스를 개발하기 위한 API입니다. 이를 통해 HTTP 프로토콜을 사용하여 클라이언트와 서버 사이의 통신을 구현할 수 있습니다.

SMS 전송을 위한 JAX-RS 구현

SMS를 전송하기 위해서는 SMS 제공업체의 API를 사용해야 합니다. 이 예제에서는 “Twilio”라는 인기 있는 SMS 제공업체의 API를 사용하겠습니다.

먼저, Maven 프로젝트를 생성하고 아래의 의존성을 추가하여 JAX-RS와 Twilio의 라이브러리를 가져옵니다.

<dependencies>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>com.twilio.sdk</groupId>
        <artifactId>twilio</artifactId>
        <version>8.29.2</version>
    </dependency>
</dependencies>

다음으로, SMS를 전송하기 위한 JAX-RS 클라이언트를 작성해 보겠습니다. 아래의 코드는 Twilio의 API를 사용하여 SMS를 전송하는 예제입니다.

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;

public class SmsSender {
    private final String ACCOUNT_SID = "Your_Account_SID";
    private final String AUTH_TOKEN = "Your_Auth_Token";
    private final String TWILIO_API_URL = "https://api.twilio.com/2010-04-01/Accounts/" + ACCOUNT_SID + "/Messages.json";

    public void sendSms(String to, String from, String body) {
        Client client = ClientBuilder.newClient();

        Form form = new Form();
        form.param("To", to);
        form.param("From", from);
        form.param("Body", body);

        client.target(TWILIO_API_URL)
                .request(MediaType.APPLICATION_FORM_URLENCODED)
                .header("Authorization", "Basic " + Base64.encode(AUTH_TOKEN.getBytes()))
                .post(Entity.form(form));
    }
}

위의 코드에서 ACCOUNT_SID와 AUTH_TOKEN은 Twilio 계정의 SID와 토큰으로 대체해야 합니다. 또한, TWILIO_API_URL은 Twilio의 메시지 전송 엔드포인트 URL입니다.

이제 SmsSender 클래스의 sendSms 메서드를 호출하여 SMS를 전송할 수 있습니다. 예를 들어, 다음과 같이 호출할 수 있습니다.

public static void main(String[] args) {
    SmsSender smsSender = new SmsSender();
    smsSender.sendSms("수신번호", "발신번호", "메시지 내용");
}

마무리

이번 포스트에서는 JAX-RS를 사용하여 SMS를 전송하는 방법에 대해 알아보았습니다. JAX-RS는 RESTful 웹 서비스를 개발할 때 매우 유용한 API이며, Twilio와 같은 SMS 제공업체의 API를 통해 편리하게 SMS를 전송할 수 있습니다. JAX-RS를 활용하여 웹 서비스를 개발하거나, 다른 API와의 통합 작업에도 유용하게 사용할 수 있습니다.