REST API 방식에 대해 공부를 하려고 하다보니..
갑자기 그동안 클라이언트와 서버가 통신하는 방식의 역사가 궁금해졌다..
지금은 너무나 당연한 방식인데, 과연 예전에는 어땠을까???
찾아보니 REST API 형태가 도입되기 전의 통신 방식은 지금과는 좀 달랐다.
그 중에서 특히 많이 사용된 몇 가지를 정리해보자.
1. RPC (Remote Procedure Call)
RPC는 클라이언트가 서버에게 "이 함수 좀 대신 실행해줘!"라고 요청하는 방식.
클라이언트는 서버에 있는 메서드를 마치 로컬 메서드처럼 호출할 수 있는 것.
예를 들면, SOAP이라는 프로토콜이 있다. SOAP는 XML을 기반으로 동작하며, 원격 프로시저 호출을 가능하게 해준다.
서버에 요청을 보내고, 서버는 응답을 XML 형식으로 돌려주는 방식이다.
복잡한 트랜잭션이나 높은 보안이 필요한 엔터프라이즈 환경에서 자주 사용되었다.
<soap:Envelope>
<soap:Body>
<GetTemperature>
<City>Seoul</City>
</GetTemperature>
</soap:Body>
</soap:Envelope>
2. SOAP (Simple Object Access Protocol)
SOAP는 원래 RPC 스타일을 따르는 프로토콜로 시작되었지만, 이후에는 더 다양한 패턴을 지원하게 되었다.
REST가 나오기 전에는 웹 서비스의 표준으로 자리 잡고 있었던 것이다.
SOAP는 XML을 사용하여 메시지를 정의하고 전송하며, 매우 엄격한 메시지 구조와 보안 기능을 가지고 있다.
WSDL(Web Services Description Language)을 통해 서비스의 인터페이스를 정의하고,
클라이언트는 이를 기반으로 서버와 통신할 수 있다.
SOAP는 은행 시스템이나 보험 시스템 등에서 데이터 보안이 중요한 경우에 자주 사용되었다.
3. CORBA (Common Object Request Broker Architecture)
CORBA는 분산 객체 컴퓨팅을 지원하기 위한 표준이다. 서로 다른 플랫폼과 언어에서 작성된 프로그램들이 네트워크를 통해 상호작용할 수 있도록 해주는 기술이다.
CORBA는 1990년대와 2000년대 초반에 금융, 제조, 통신 등의 산업에서 널리 사용되었다.
이 기술의 강점은 언어와 플랫폼에 독립적이라는 것이다.
Java, C++, Python 등 서로 다른 언어로 작성된 프로그램 간에도 상호작용이 가능하다.
4. XML-RPC
XML-RPC는 XML을 사용해 원격 프로시저 호출을 하는 비교적 간단한 프로토콜이다.
XML로 작성된 요청과 응답 메시지를 HTTP 프로토콜을 통해 전송하는 방식이다.
REST API에 비하면 구조가 단순하며, HTTP와 같은 표준 프로토콜을 사용하기 때문에 방화벽 문제를 피할 수 있다는 장점이 있다. 초기 웹 애플리케이션에서 서버 간 간단한 통신을 위해 XML-RPC가 자주 사용되었다.
5. 커스텀 프로토콜 (Custom Protocols)
REST API가 등장하기 전에는 애플리케이션의 특정 요구에 맞춰 커스텀 프로토콜이 만들어져 사용되기도 했다.
클라이언트와 서버 간에 특정 규약을 만들어 데이터를 주고받는 방식이다.
커스텀 프로토콜은 각 애플리케이션의 요구에 맞춰 유연하게 설계될 수 있지만, 표준화되지 않아 다른 시스템과의 상호운용성이 떨어지는 단점이 있다.
유지보수와 확장성 측면에서도 어려움이 발생할 수 있었다.
예를 들면, 특정 게임 서버나 초기 메신저 애플리케이션에서 이러한 바이너리 프로토콜이 자주 사용되었다.
결론
REST API가 등장하기 전에는 다양한 커스텀 프로토콜이 클라이언트와 서버 간 통신을 위한 주요 방법으로 사용되었다. 여전히 일부 애플리케이션에서는 사용되고 있다.
그러나 간단하고 유연한, 웹 환경에 적합한 REST API가 등장하면서 웹 서비스의 표준이 되었다..
REST API에 대해서는 다음에 정리해 볼 예정이다.
'Web' 카테고리의 다른 글
[Web] 웹 서버와 WAS 차이점에 대해 아시나요? Apache vs Tomcat (0) | 2024.05.13 |
---|---|
[Web] 웹 브라우저 내부 구조 한 눈에 보기!👓 / 브라우저 엔진, 렌더링 엔진? / 돔 트리 (0) | 2024.05.12 |