Hah-nna / Tech_Interview

0 stars 0 forks source link

[면접] Restful API #65

Open Hah-nna opened 8 months ago

Hah-nna commented 8 months ago

Restful API

REST API란 무엇인가요?

REST API는 웹 서비스를 구현하는 아키텍쳐 중에 하나인데, HTTP 프로토콜 메소드를 사용해 서버와 클라이언트 간의 통신을 가능하게 해고 이를 통해 클라이언트에서 서버의 자원에 접근할 수 있습니다

REST API가 왜 프론트엔드에게도 중요한가요?

REST API는 서버와 클라이언트 간의 통신을 가능하게 하고 클라이언트가 서버의 자원에 접근할 수 있다고 말씀드렸는데요, REST API를 사용해 백엔드에서 데이터를 받아와 사용자에게 보여주거나 사용자가 입력한 내용 등을 서버로 보내는 등의 작업을 할 수 있기 때문에 중요합니다

REST의 구성요소는 어떤 것들이 있나요?

  1. 자원 URI를 통해 자원의 이름을 나타내고 웹 상에서 해당 자원이 어디있는지 찾을 수 있는 위치

  2. 행위 HTTP Method(GET, POST, DELETE, PATCH 등)

  3. 표현 클라이언트와 서버가 데이터를 주고 받는 형태 ex: JSON, XML, TEXT, RSS 등(주로 JSON 사용함)

REST의 원칙(규칙)에 대해서 설명해주세요

  1. 유니폼 인터페이스 모든 자원과 행위가 일관된 방식으로 이루어지는 아키텍처를 말함 ex: 모든 웹 자원은 URI로 표현되고, 해당 자원에 대한 행위는 HTTP 메소드(GET, POST, PUT, DELETE 등)로 일관되게 표현됨 -> 개발자가 API를 쉽게 이해하고 사용할 수 있도록 도와줍니다

  2. 무상태성 REST는 작업을 위한 상태정보를 따로 저장하고 관리하지 않음 따라서 API 서버는 들어오는 요청을 단순히 처리하면 되기 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다

  3. 캐시 가능 HTTP라는 기존 웹표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 활용하는 것이 가능합니다. 따라서 HTTP가 가진 캐싱 기능이 적용 가능합니다

  4. 자체 표현 구조 REST API 메시지만 보고도 쉽게 이해할 수 있습니다

  5. 클라이언트-서버 구조 REST 서버는 API를 제공하고 클라이언트는 사용자 인증이나 로그인 정보 등을 직접 관리하는 구조로 각각의 역할이 확실하게 구분되기 때문에 클라이언트와 서버에서 개발해야할 내용이 명확해지고 서로 간의 의존성이 줄일 수 있습니다

REST API의 설계 규칙에 대해서 설명해주세요

RESTful API는 뭐라고 생각하나요?

REST API의 설계 규칙을 지켜서 설계된 API를 RESTful한 API라 한다고 알고 있습니다 예를 들면 /api/post라는 URI에 대해 CRUD에 관한 행위를 모두 POST로 처리함 -> REST를 사용하긴 했으나 설계 규칙을 제대로 지키지 못했기 때문에 REST API를 사용하긴 했지만 RESTful한 API라고 보기 어려움