힐링페이퍼(강남미인App 개발 회사)에서 기술면접 중 아래 질문을 받음.
RESTful API가 뭔가요?
내가 한 대답 ⇒ REST API특징을 잘 따르고 있는 API를 말합니다. REST API란 URI에 자원에 대해 명시하고, 자원에 대한 표현은 HTTP 메소드로 명시하는 API입니다. HTTP 메소드에는 (GET, PUT, POST, DELETE) 등이 있습니다.
방금 하신 대답이 REST API에 대해서 처음 제시했던 로이필딩의 논문이 참고가 된 대답인가요? 해당 논문에서 말하고 있는 REST API 특징 중 가장 큰 특징은 무엇일까요?
내가 한 대답 ⇒ ……..😇😇😇 (논문은 뭐고 로이필딩은 뭐임…)
지금까지 알고있던 RESTful API에 대한 개념이 잘못되었다는 것을 깨달았고, 진짜 리얼 RESTful API가 뭔지 찾아보게 된 계기가 되었다.
1.0 이 나오기 전에 이미 HTTP는 WWW의 프로토콜로 사용되고 있었고, 이미 웹은 급속도로 성장하고 있었다.
HTTP/1.0 명세에 참여했던 Roy T. Fielding은 아래와 같은 고민을 하게 된다.
“How do I improve HTTP without breaking the Web?”
⇒ 어떻게 하면 웹을 망가뜨리지 않고 HTTP를 발전시킬 수 있을까?
⇒ 호환성에 대해 고민을 하게 됨
해결책 : HTTP Object Model 을 만든다.(4년 후에 REST라는 이름으로 발표됨)
Roy T. Fielding, Microsoft Research에서 발표
“Representational State Trensfer : An Architectural Style for distributed hypermedia systems”
Roy T. Fielding, 박사논문으로 발표
현재 우리가 알고있는 REST에 대해 설명하는 논문
“Architectural Styles and the Design of Network-based Software Architectures”