[java] 웹 서비스 통신 (RESTful API, JSON 파싱 등)

이 글에서는 Java를 사용하여 웹 서비스와 통신하는 방법에 대해 알아보겠습니다. 웹 서비스 통신은 RESTful API를 이용하고 JSON 데이터를 파싱하는 과정을 다룰 예정입니다.

RESTful API란?

REST는 Representational State Transfer의 약자로, 웹 서비스의 리소스를 다루기 위한 아키텍처 스타일입니다. RESTful API는 이러한 REST 원칙에 따라 설계된 웹 서비스를 의미합니다. RESTful API를 사용하면 클라이언트와 서버 간의 통신을 간단하고 효율적으로 할 수 있습니다.

HTTP 통신

Java에서 웹 서비스와 통신하기 위해서는 HTTP 프로토콜을 사용해야 합니다. Java 내장 라이브러리인 java.net 패키지를 사용하여 HTTP 요청을 보내고 응답을 받을 수 있습니다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpCommunication {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://api.example.com/users");
            
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");

            int responseCode = connection.getResponseCode();
            System.out.println("Response Code: " + responseCode);

            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            StringBuilder response = new StringBuilder();

            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
            reader.close();

            System.out.println("Response: " + response.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드는 GET 요청을 보내는 방법을 보여줍니다. 요청한 URL에 따라 다양한 HTTP 메소드(GET, POST, PUT, DELETE)를 사용할 수 있습니다.

JSON 파싱

웹 서비스에서 주로 사용되는 데이터 형식 중 하나인 JSON은 Java에서 다루기 쉽고 유연한 형태입니다. JSON 데이터를 파싱해서 원하는 정보를 추출할 수 있습니다. Java에서는 org.json 라이브러리를 사용하여 JSON 데이터를 파싱할 수 있습니다.

import org.json.JSONArray;
import org.json.JSONObject;

public class JsonParsing {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";

        JSONObject jsonObject = new JSONObject(jsonStr);
        String name = jsonObject.getString("name");
        int age = jsonObject.getInt("age");
        String city = jsonObject.getString("city");

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("City: " + city);
    }
}

위의 예제 코드는 JSON 문자열을 JSONObject로 변환한 후, 키를 통해 값을 추출하는 방법을 보여줍니다.

마치며

Java를 사용하여 웹 서비스와 통신하는 방법에 대해 알아보았습니다. RESTful API를 사용하고 JSON 데이터를 파싱하는 방법을 숙지하면 다양한 웹 서비스와의 상호작용에 유용하게 사용할 수 있습니다. Java에서는 다양한 라이브러리와 기능을 제공하므로 필요한 경우 해당 문서를 참조하여 더 자세한 내용을 학습할 수 있습니다.


참고 자료