기술면접 REST API, OAuth2.0

소재현·2022년 11월 4일
0

기술면접

목록 보기
1/1

REST

  • Representational State Transfer의 약자입니다
  • 간단히 말해서 URI와 HTTP 메소드를 이용해 객체화된 서비스에 접근하는 것입니다

Restful에 대해 설명해주세요

Restful API는 HTTP 통신을 Rest 설계 규칙을 잘 지켜서 개발한 API를 Restful한 API라고 합니다.

REST의 요소로는 크게 리소스, 메소드, 메세지 3가지 요소로 구성

예를 들어 "이름이 Tom인 사용자를 생성한다." 라는 호출이 있을 때 "사용자"는 생성되는 리소스, "생성한다."라는 행위는 메소드, 그리고 "이름이 Tom인 사용자"는 메세지가 됩니다. 즉 리소는 http://myweb/users라는 형태의 URI로 표현되며, 메소드는 HTTP Post, 메세지는 JSON 문서를 이용해서 표현됩니다. HTTP에는 여러가지 메소드가 있지만 REST에서는 CRUD에 해당하는 4가지의 메소드 GET, POST, PUT, DELETE를 사용합니다. REST는 리소스 지향 아키텍쳐 스타일이라는 정의에 맞게 모든 것을 명사로 표현하며 각 세부 리소스에는 id를 붙입니다.

Restful하게 API를 디자인한다는 것은 URI를 규칙에 맞게 잘 설계했는지의 여부입니다. 규칙의 항목으로는 아래와 같습니다.

  • 동일한 URI(End point)의 행위에 맞게 POST, GET, DELETE, PATCH등의 메소드를 사용한다.
  • 명사를 사용한다. 리스트를 표현할 때는 복수형을 사용한다.
  • URI Path에 불필요한 파라미터를 넣지 않는다. 즉, 단계를 심플하게 설계한다.

OAuth

인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 "접근 권한"을 부여할 수 있는 공통적인 수단(표준)이다.

OAuth 2.0의 흐름에 대해 간단히 설명해주세요.

  1. 사용자가 클라이언트(이하 클라)에게 사용 요청을 보낸다.
  2. 클라는 권한 서버에 권한 부여 승인 코드 요청(response_type=code로 지정하여 요청)을 보낸다.
  3. 이후 클라는 권한 서버에서 제공하는 로그인 페이지를 띄워 사용자에게 보여준다.
  4. 사용자가 로그인 하면 권한 서버는 (2)권한 부여 승인 코드 요청에 전달받은 redirect_url Authorization Code를 전달한다.
  5. Authorization Code는 권한 서버에서 제공하는 API를 통해 Access Token으로 교환된다.

1개의 댓글

comment-user-thumbnail
2024년 3월 15일

그림이 아주 깔끔합니다 ㄷㄷ

답글 달기