레오나르도 리처드슨(Leonard Richardson), 마이크 애먼슨(Mike Amundsen), 샘 루비(Sam Ruby)
처음 웹 개발을 입문하고 나서 공부를 시작하는 과정에서 RESTful API라는 개념을 접하게 되었다.
많은 웹개발 회사에서 RESTful API에 대한 지식을 요구하고 있었기에, 해당 개념이 뭔지 블로그를 통해 찾아보기도 했던 기억이 난다.
블로그를 통해 이에 대한 깊이있는 지식을 습득하기란 쉽지 않았던 것으로 기억한다. 대부분은 그저 큰 그림과 개요에 불과하였으며, 무려 "RESTful API" 라는 엄청나 보이는 추상적인 개념에 비해 너무나 쉽고 짧게 요약된 몇가지의 규칙정도만 나열되어 있었던 것으로 기억한다.
나는 평소 서점을 들르는 것을 좋아한다. 서점에 들른 어느 날, 개발 관련한 책을 살펴보며 해당 책을 발견하였다. 제목부터가 강렬한 RESTful API. 뭔가 이 책을 읽으면 RESTful에 대해 깊이있는 지식과 체계적으로 습득할 수 있을것 같다는 생각이 들어 구매하게 되었다.
집에 오는 길에 책을 읽는데....
이상하다. 책이 읽히지 않는다.
나는 RESTful API를 알고 싶었는데, 앨리스가 광고판을 클릭해서 웹사이트를 여행하며, 갑자기 미로게임 API를 설명하고 처음 들어보는 'Maze+XML', 'Collections+JSON' 미디어 타입을 소개한다.
'의미체계', '하이퍼 미디어' 등 추상적인 개념이 더해지며, 책 자체가 상당히 추상적이라는 생각이 들었다.
내가 생각했던 RESTful API 가이드는,
1. RESTful한 URL은 이렇게 지으세요~
2. 이러이러하게 HTTP 메서드를 써야 RESTful한 거랍니다~
같은 것을 기대했기 때문이다.
이런 것을 기대했다면 이 책은 적합하지 않다고 본다.
처음 책을 읽고 몇개월 방치 한 후, 다시 이 책을 진득하게 읽어나가기 시작했다.
지금 생각해도 상당히 추상적인 책이지만, 개인적으로 만족스럽다. 좋은 책이라고 생각한다.
이 책은 단지 RESTful API를 위한 공식을 나열하는 책이 아니다. 이 보다는 오히려 하이퍼 미디어, 리소스, 리소스의 표현 등 다소 추상적이지만 생각해 볼만한 것들이 존재한다.
대부분의 웹개발을 처음 시작하는 이들은 하이퍼미디어 리소스라 하면 그저 HTML에 익숙할 것이다. 그리고 생각의 범위는 HTML으로 쉽게 귀속되며 국한된다.
이 책은 하이퍼 미디어 유형 중 하나일 뿐인 HTML에 귀속되지 않는다. 다양한 하이퍼미디어 타입을 소개하며 그저 HTML이 아닌, 하이퍼 미디어 자체에 대해 생각하게 해준다.
RESTful API에 대해 리소스, 리소스의 표현, 의미체계(Semantic), 하이퍼미디어 유형 등 다소 추상적이라 할수 있는 개념들에 대해 생각 하고 고민해 볼 수 있는 시간을 선사한다.
그렇기에 좋은 책이라 생각한다. HTML이라는 나무에서 멀어져 하이퍼 미디어 라는 숲을 보게 도움을 주는 책이다.
처음 접했을 때에 너무 난해하여 읽다 말았지만, 어느정도 공부를 하고 이런저런 잡지식을 많이 쌓고 나서 다시 읽으니 좋은 책이라는 생각이 든다.
애초에 RESTful API의 개념 자체가 단순한 규칙의 집합이 아니며, 철학과 담론을 담고 있기에 추상적이다. RESTful이 그저 '코딩 컨벤션'과 같은 규칙의 나열이 아니기 때문이다.
웹에 대해 처음 접하는 이들에게 좋은 책은 아니라 생각이 든다. 이 경우 오히려 'HTTP 완벽가이드'와 같은 책이 훨씬 유익하며 도움이 될 것이다. HTTP라는 프로토콜, 동작, 상태코드 등 HTTP에 대한 기본 지식이 있는 상태에서 이 책을 읽는것이 보다 유용할 것이라 생각한다.
내가 이 책을 읽고나서, 웹어플리케이션을 작성함에 있어서 엄청나게 RESTful한 개념을 적용해서 멋진 뭔가를 해낼 수 있다는 생각은 들지 않는다.
그러나, '리소스', '리소스의 표현', '프로토콜의 의미체계(Protocol semantic)', '애플리케이션 의미체계(Application semantic)' 등에 대해 고민하고 생각할 수 있을 것이다.
공기라는 개념을 배우지 못했다면 그리고 생각해 본 적도 없다면, 허공에 팔을 휘저음에 있어서 미약한 공기의 저항에 대하여 무언가가 존재한다는 것을 생각 조차 할 수도 없지 않겠는가?
도서 평을 보면 '번역'에 대해 불만을 가지는 평이 보이곤 하지만, 번역의 문제보다는 추상적인 개념들이 많기에 그럴 수 밖에 없다고 생각한다. 'Semantic', 'Representation of resource'과 같은 다소 추상적인 개념을 어떻게 완벽히 이해할 수 있는 한국어 단어로 표현할 수 있겠는가?
이 책은 RESTful API의 이름을 달고 나왔으나, RESTful에 대한 비중이 높다고 생각하진 않는다. 그렇기에 RESTful 자체를 파고드는 책이라 생각하고 구매한다면 실망스러울 것이라 생각한다.
HTML 이라는 하이퍼 미디어 중 하나에 불과한 하이퍼 미디어 개념을 벗어나, 하이퍼 미디어에 대한 보다 넓은 개념과 이것이 지니는 의미론에 대해 고민해보고 싶다면 좋은 책일 것이다.