[개발] 프로그램 지식

[면접 질문] REST API가 뭔가요?

  • -
반응형

 

 

REST API란 무엇인가?

REST API란?

REST API는 Representational State Transfer API의 약자로, 웹에서 자원을 다루기 위한 아키텍처 스타일을 기반으로 하는 인터페이스입니다. REST API는 주로 클라이언트와 서버 간의 통신에 사용됩니다.

 

 

 

 

 

 

 

 

 

 

 

REST의 핵심 개념

  • 자원(Resource): 모든 것은 자원으로 표현됩니다. 예: 사용자, 게시글, 상품 등.
    자원은 URL(엔드포인트)로 식별됩니다. 예: https://api.example.com/users/123
  • HTTP 메서드: REST는 HTTP 메서드를 사용하여 자원에 대한 행위를 정의합니다.
    • GET: 자원을 조회
    • POST: 자원을 생성
    • PUT: 자원을 수정
    • DELETE: 자원을 삭제
  • 표현(Representation): 서버는 자원을 클라이언트가 이해할 수 있는 형식으로 제공합니다(주로 JSON 또는 XML).
    {
        "id": 123,
        "name": "John Doe",
        "email": "john@example.com"
    }
                        
  • 무상태성(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의 장단점이나 관련 개념을 차근차근 설명하세요.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.