API(Application Programming Interface)는 애플리케이션 간에 데이터를 주고받거나 기능을 사용할 수 있도록 연결하는 인터페이스입니다. REST API는 API의 한 종류로, REST(Representational State Transfer) 아키텍처 스타일을 따릅니다. REST API는 주로 HTTP 프로토콜을 사용하여 자원을 CRUD(Create, Read, Update, Delete) 방식으로 다룹니다.
구체적인 차이점
구분
API
REST API
정의
애플리케이션 간의 상호작용을 위한 인터페이스입니다.
REST 아키텍처 스타일을 따르는 API입니다.
프로토콜
특정 프로토콜에 의존하지 않습니다. (예: HTTP, FTP, TCP/IP 등)
주로 HTTP를 사용합니다.
구조
정해진 구조나 규칙이 없습니다.
RESTful 원칙을 따릅니다. (자원 URL, HTTP 메서드 활용 등)
자원의 표현
데이터 표현 형식에 제한이 없습니다.
데이터는 주로 JSON이나 XML 형식으로 표현됩니다.
상태 관리
상태 관리 방식을 명시하지 않습니다.
무상태성(Stateless)을 유지하여 각 요청이 독립적입니다.
용도
범용적이며 다양한 통신 방식을 지원합니다.
HTTP 기반의 웹 애플리케이션에서 주로 사용됩니다.
면접 상황에서의 답변 예시
질문 1: "API란 무엇인가요?"
API는 애플리케이션 간의 상호작용을 가능하게 하는 인터페이스입니다. 예를 들어, 다른 애플리케이션의 기능을 호출하거나 데이터를 주고받기 위해 API를 사용합니다. 일반적으로 API는 개발자가 애플리케이션 기능을 재사용하거나 확장할 수 있도록 설계됩니다.
질문 2: "REST API란 무엇인가요?"
REST API는 API의 한 종류로, REST(Representational State Transfer)라는 아키텍처 스타일을 따릅니다. 주로 HTTP 프로토콜을 기반으로 하며, 자원을 URL로 식별하고, HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 자원을 CRUD 방식으로 다룹니다. REST API는 간결하고 확장성이 좋아 웹 애플리케이션에서 널리 사용됩니다.
질문 3: "API와 REST API의 차이는?"
API는 애플리케이션 간의 모든 종류의 상호작용을 포함하며, 특정한 프로토콜에 의존하지 않습니다. 반면, REST API는 API의 한 종류로, REST 아키텍처 스타일을 따르며 주로 HTTP 기반으로 작동합니다. REST API는 자원을 URL로 식별하고, 무상태성과 같은 RESTful 원칙을 준수합니다.
추가 질문 대비
1. REST API와 SOAP의 차이점
REST API: 경량이고 JSON, XML 등 다양한 데이터 형식을 지원합니다. 무상태성으로 설계되어 확장성이 뛰어납니다. SOAP: XML 기반의 무겁고 복잡한 프로토콜이며, 보안과 트랜잭션 관리에서 강점이 있습니다.
2. REST API의 한계
대량의 데이터 요청 시 오버헤드가 발생할 수 있습니다. 무상태성 때문에 클라이언트가 모든 요청에 필요한 데이터를 포함해야 합니다.
결론
API는 애플리케이션 간의 통신을 가능하게 하는 모든 종류의 인터페이스를 말하며, REST API는 API의 한 구현 방식으로 RESTful 원칙을 따릅니다. REST API는 간결성과 HTTP 프로토콜 활용의 장점 때문에 웹 애플리케이션에서 널리 사용됩니다.