[java] 자바 소켓 프로그래밍과 REST API 서버 연동 방법

이번 글에서는 자바에서 소켓 프로그래밍을 통해 TCP/IP 통신을 하는 방법과 REST API 서버와의 연동 방법에 대해 알아보겠습니다.

자바 소켓 프로그래밍

소켓 프로그래밍이란?

소켓은 네트워크 상의 통신을 위한 엔드포인트를 나타내는 것으로, 소켓 프로그래밍은 네트워크 통신을 위해 소켓을 이용하는 프로그래밍 기법입니다. 자바에서는 java.net 패키지를 통해 소켓 프로그래밍을 지원합니다.

클라이언트 소켓 예제

다음은 간단한 클라이언트 소켓 프로그램의 예제입니다.

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) {
        try (Socket socket = new Socket("server_address", port_number)) {
            OutputStream output = socket.getOutputStream();
            PrintWriter writer = new PrintWriter(output, true);

            writer.println("Hello, server!");

            InputStream input = socket.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));
            String response = reader.readLine();
            System.out.println("Server response: " + response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

서버 소켓 예제

이어서 간단한 서버 소켓 프로그램의 예제를 살펴봅니다.

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) {
        try (ServerSocket serverSocket = new ServerSocket(port_number)) {
            System.out.println("Server is listening on port " + port_number);
            Socket socket = serverSocket.accept();

            InputStream input = socket.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));
            String message = reader.readLine();
            System.out.println("Received from client: " + message);

            OutputStream output = socket.getOutputStream();
            PrintWriter writer = new PrintWriter(output, true);
            writer.println("Hello, client!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

REST API 서버 연동

REST API란?

REST API는 Representational State Transfer의 약자로, 네트워크 아키텍쳐 원리에 기반한 API 디자인 스타일입니다. HTTP 프로토콜을 이용하여 자원을 처리하는 방식으로, JSON 또는 XML 형식으로 데이터를 주고받는다.

자바에서의 REST API 연동

자바에서는 여러 라이브러리를 사용하여 REST API 서버와의 통신을 쉽게 할 수 있습니다. 그 중에서 RestTemplate을 사용하는 방법을 살펴봅니다.

import org.springframework.web.client.RestTemplate;

public class RestClient {
    public static void main(String[] args) {
        final String uri = "https://api.example.com/data";
        
        RestTemplate restTemplate = new RestTemplate();
        String result = restTemplate.getForObject(uri, String.class);
        
        System.out.println(result);
    }
}

마무리

이렇게 자바에서 소켓 프로그래밍을 통한 TCP/IP 통신과 REST API 서버와의 연동하는 방법에 대해 알아보았습니다. 네트워크 프로그래밍은 실시간 데이터 전송 등에 활용되며, REST API는 웹 서비스 등에서 데이터를 주고받는 데 많이 사용됩니다.

더 많은 자세한 내용은 다음 자료를 참고하시기 바랍니다.

감사합니다.