무상태성(Stateless): 클라이언트의 요청 간에 상태를 저장하지 않습니다. 각 요청은 독립적이며, 필요한 모든 정보를 요청에 포함해야 합니다.
캐싱(Caching): 자원의 응답을 캐싱하여 성능을 최적화할 수 있습니다.
REST API의 특징
간결성: URL과 HTTP 메서드만으로 동작을 이해할 수 있음.
확장성: 클라이언트와 서버가 독립적으로 개발 가능.
표준화: HTTP 프로토콜을 사용하여 다양한 플랫폼에서 활용 가능.
면접 질문에 어떻게 답변하면 좋을까요?
기본 답변
REST API는 웹 기반 서비스에서 클라이언트와 서버가 자원을 주고받기 위해 사용하는 인터페이스입니다. REST는 HTTP 프로토콜을 기반으로 설계되며, URL을 통해 자원을 식별하고 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용해 자원에 접근하거나 조작할 수 있습니다. REST의 특징으로는 무상태성, 자원의 표현, 캐싱 등을 들 수 있습니다.
깊이 있는 답변
REST API는 클라이언트-서버 구조를 기반으로 하며, 무상태성을 유지합니다. 이를 통해 요청 간 상태를 서버가 관리하지 않아 서버의 복잡도를 줄이고, 확장성을 제공합니다. 클라이언트는 자원을 URL로 식별하고, HTTP 메서드를 통해 자원에 대한 작업을 명확하게 표현할 수 있습니다. 예를 들어, GET /users는 사용자 목록을 조회하고, POST /users는 새 사용자를 생성합니다. REST API는 주로 JSON 형식을 사용해 데이터를 교환하며, 표준화된 HTTP 프로토콜을 활용하기 때문에 다양한 플랫폼에서 사용이 가능합니다.
면접관의 추가 질문을 대비한 팁
1. REST API와 SOAP의 차이
REST: 경량 프로토콜이며 JSON을 주로 사용하고, 플랫폼 독립적입니다. SOAP: XML 기반의 더 무겁고 복잡한 프로토콜로, 보안과 트랜잭션 관리에 강점이 있습니다.
2. REST API의 한계
대용량 데이터 요청 시 오버헤드 증가 가능. 무상태성 때문에 클라이언트가 매번 모든 데이터를 포함해 요청해야 합니다.
3. REST와 GraphQL의 비교
REST: 고정된 엔드포인트 사용. GraphQL: 단일 엔드포인트에서 클라이언트가 필요한 데이터만 선택적으로 요청 가능.
결론
REST API의 정의를 간결하게 설명하고, 예제나 특징을 들어 자신감을 보여주는 것이 중요합니다. 추가 질문이 들어오면 REST의 장단점이나 관련 개념을 차근차근 설명하세요.