|
◎ 원문 : http://blair.kr/222192106296 [매력쟁이크's 리뷰] 예전에는 코드 자체가 보안이고 공유하지 않는 기술력인 시절도 있었지만 요즘은 참 많이 달라졌다는 생각을 해봅니다. 오픈 소스. 모든 것을 공유하고 공유를 통해 여러 사람들이 새로운 것을 또 만들어 내고 늘려가면서 함께 발전해나가는 : ) 그것을 가능하게 하는 것 중 하나가 바로 API가 아닐까 생각해봅니다. 이 책은 크게 3부로 구성되어 있어요. 1부 : API 디자인 기초, 2부 : 사용하기 좋은 API 디자인, 3부 : 상황에 맞는 API 디자인으로 나뉘어져 있습니다. API의 기본 개념과 기술, API디자인의 중요성, 데이터 표현, 좋은 API를 만드는 방법 등등 API에 관련한 거의 모든, 총체적인 설명이 들어있는 바이블 같은 책이라고 봐도 무방할듯요. - 사용자는 누구인가? - 그들은 무엇을 할 수 있는가? - 그들은 그걸 어떻게 하는가? - 그들은 그것을 하기 위해 무엇이 필요한가? - 그들은 무엇을 반환하는가? - 입력은 어디를 통해서 들어오는가? - 출력은 어디에서 어떻게 쓰이는가? 필요한 사람들에게 적합한 모듈을 제공해 주는 방법까지 실제 따라해볼 수 있는 이론을 찾아볼 수도 있고 개발자가 아니더라도 API의 개념에 대해 이해하고 공부해 보고 싶은 사람에게도 맥락을 잡는 데 도움을 줄 수 있을 듯 합니다.
모든 API는 소프트웨어 개발을 단순하게 만들어주는데 도움을 줍니다. 특히나 이 책은 원격 API(=웹 API)를 통해 흩어져 있는 소프트웨어들을 레고처럼 조립해서 무엇이든 새롭게 만들어 낼 수 있습니다. API의 주된 목적은 "인터페이스" 입니다. 모바일 애플리케이션 (=컨슈머), 백엔드 (=프로바이더)라고 부릅니다. 여러 사람들이 무궁무진하게 만들어 내는 API는 여러 컨슈머에게 소비됩니다. 똑같은 기능을 굳이 새롭게 만들지 않고 있는 자원을 활용해 성능과 확장시킬 수 있는게 무한한 매력인 API 입니다. 이런 API를 여러 사람이 쉽고 간편하게 사용할 수 있도록 디자인 할 수 있도록 가이드 해주는 내용이 주요 줄기인 책이예요. #웹서비스 #웹개발자 #웹기획자 #API디자인 #웹API ● 좌표 : http://www.yes24.com/Product/Goods/94462254
▲ 바로가기 (index)를 통해 찾아보고 싶은 주제를 바로 찾아볼 수 있어요.
▲ 디자인하고자 하는 API 의 목표 목록을 통해 목표를 정확하고 완벽하게 확인할 수 있어요.
▲ API는 직관적이고 명확하게 사용자가 사용할 수 있도록 디자인해야 합니다.
▲ API 버전 : 시멘틱 버저닝을 통한 버전 관리
▲ 요구사항 도전, 분석 체크리스트를 통한 점검 (출처 : 웹 API 디자인)
▲ 모든 사용자가 직관적이고 쉽게 사용할 수 있는 API를 디자인 하는데 도움을 주는 책 : D 아무래도 IT 지식이 있어야 이해할 수 있을 정도의 전문성은 가지고 있지만 기본 개념 잡기에도 읽어볼 만해요.
<출판사로부터 도서와 소정의 원고료를 지급 받았습니다.> From. 블레어 KR (http://blair.kr) [바로가기^^] |
|
API라는 개념은 사실상 개발자들을 제외한 보통 사람에게는 대단히 생소한 것이 사실이다. 나 역시 컴퓨터나 프로그래밍과 무관한 분야를 전공한 사람이어서, API라는 용어를 처음 접했을 때 정말 아무것도 머릿속에 떠오르지 않았다. 만일 내가 『웹 API 디자인』이라는 책을 읽지 않았다면, 아마도 이것은 『웹 API 디자인』이라는 책의 저자가 지적하는 대로 가장 최악의 API 디자인이었을지도 모른다. 하지만 『웹 API 디자인』이라는 책을 읽은 덕분에, 그나마 API가 무엇이고 왜 중요한지에 대한 개념을 조금이나마 깨닫게 된 것은 나로서는 대단히 큰 소득이 아닐 수 없다.
이 책에서 말하는 API는 글자 그대로 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 의미하는데, 가장 간단히 말해 사용자와 공급자를 연결시켜주는 기회와 공간을 제공하는 것이다. 즉 API는 근본적으로 사용자와 공급자라는 두 개의 다른 소프트웨어 간의 데이터를 교환하는 방법을 의미한다. 예를 들어, 우리가 인터넷이나 스마트폰을 사용해서 자신의 사진이나 자료를 공유하기 위해 업로드하면, 서비스 공급자는 그것을 다른 사람들(가령 다른 사용자들)에게 원래 우리가 의도하는 방식대로 사진이나 자료를 노출하거나 전달하기 위한 인터페이스를 제공하게 되는데, 여기에 가장 기본적으로 필요한 것이 그런 인터페이스를 만드는 과정이며 그 과정이 API이다.
이렇게 보면, 거의 대부분의 경우에 나와 같은 평범한 사람은 API에 전혀 신경 쓸 필요도 없고 API에 노출될 일도 사실상 거의 없는데 왜냐하면 API는 우리가 사용하는 환경과 같은 것이어서 우리가 사용하는 프로그램이 구동되고 작용할 수 있는 기초이기 때문이다. 그렇기 때문에 API는 개발자들에게 대단히 중요하고 기초적인 것이긴 하지만, 『웹 API 디자인』은 단순히 개발자들을 위해서만 아니라 나와 같이 평범한 사람도 API의 기본적인 원리와 작용 개념을 이해하고 현실에서 충분히 사용 가능한 API 디자인을 직접 제작해볼 수 있는 기회를 제공한다는 점에서 매우 의미가 크다.
우선 『웹 API 디자인』은 거의 대다수의 일반인에게 대단히 생소한 개념인 API를 우리에게 대단히 친숙한 개념을 연결시켜서 소개하기 때문에 API를 이해하는 데 대단히 큰 도움을 준다. 그래서 『웹 API 디자인』은 API의 작용 원리를 어떤 소비자가 쇼핑몰에서 구매하고자 하는 상품을 선택하고 카트에 담고 결제하는 과정과 연결시켜 쉽게 설명한다. 뿐만 아니라, 『웹 API 디자인』은 또한 우리에게 대단히 친숙한 각종 전자제품의 계기판 구성을 API 디자인과 연결시켜서 사용자 중심적, 또는 사용자 친화적 API 디자인이 어떤 것인지를 대단히 명쾌하게 정의한다.
『웹 API 디자인』은 총 3부로 구성되어 있는데, 1부는 API의 가장 기본적인 디자인의 기초 개념과 작용 원리를 소개하고, 2부는 이해하기 쉽고 사용하기 쉬운 API 디자인 방법을 중심으로 설명하며, 3부는 API 디자이너가 API를 둘러싼 전체 상황과 API 디자인 과정 자체를 둘러싼 전체 상황을 고려해서 디자인하는 방법을 들려준다. 그렇기 때문에 『웹 API 디자인』은 사실상 API 디자인과 관련된 기초부터 응용에 이르는 전 과정을 이 한 권의 책으로 모두 다 마스터할 수 있도록 배려한다는 점에서 크게 유용하다.
『웹 API 디자인』은 특히 많은 그림을 담고 있어서 API와 관련된 여러 내용을 숙지하는 데도 큰 도움이 된다. 단순히 글로만 설명해서는 납득되지 않는 부분들도 이 책에 수록된 그림과 도식과 함께 읽으면 꽤 수월하게 이해할 수 있다. 물론 모든 내용을 확실히 자신의 것으로 만들려면 여러 번 반복해서 읽는 것은 피할 수 없는 과정이다.
뿐만 아니라 『웹 API 디자인』은 독자들이 꼭 이해해야 하는 핵심 개념이나 설명을 구분된 섹션이나 ‘note’나 ‘tip’ 형태로 책 곳곳에 제시하고 있어서, API 디자인을 잘 모르거나 처음 접하는 사람도 근본적인 것을 놓치지 않고 강조와 반복을 통해 제대로 학습할 수 있도록 배려한다는 점이 무척 돋보인다. 여기에 덧붙여서 각 장의 마지막에 제공되는 ‘요약’은 반드시 숙지해야 할 사항을 종합적으로 제시하기 때문에 이 부분을 읽으면서 자신이 놓치고 있거나 아직 제대로 소화시키지 못한 내용이나 개념을 다시 살펴볼 수 있도록 도와준다. 곳곳에 수록된 예제 역시 학습한 내용을 자신의 것으로 소화하는 데 대단히 큰 도움이 된다.
『웹 API 디자인』은 대단히 생소한 API 디자인과 API 개념을 나와 같은 일반인도 대단히 쉽게 이해하고 숙지해서 실제로 제작할 수 있는 단계로까지 나아가는 데 도움을 주는, 대단히 유용한 API 디자인 입문서다. 앞으로 API 디자인이 가진 가능성과 활용성이 대단히 크다는 사실을 감안한다면, 『웹 API 디자인』은 API 디자인의 표준 교과서라고 말해도 무방할 정도로 큰 도움을 줄 것이다. API 디자인에 관심이 있는 사람이라면 누구나 한 번쯤 읽어볼 것을 권한다. |
![]()
API란 웹 애플리케이션 프로그래밍 인터페이스(application programming interface)로 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식을 말한다. API는 정말 모든 곳에서 쓰이고 있는데 스마트폰에서 돌아가는 앱부터 깊이 숨겨진 백엔드 서버에 이르기까지 사용되고 있다.
예를 들어 스마트폰을 통해 소셜 네트워크에 사진을 공유할 때, 세 종류의 API가 종류가 사용된다. 소셜 네트워크 애플리케이션이 카메라 API를 이용해 사진을 촬영하고, 애플리케이션에 포함된 이미지 라이브러리 API를 써서 사진의 색상을 반전시킨다. 그리고 편집한 이미지는 네트워크를 통해 접근할 수 있는 원격 API를 사용해 소셜 네트워크에 업로드 되는 것이다. 이 책은 바로 그 세 번째 원격 API를 다루고 있다.
![]()
문, 주방 용품, 티비 리모컨과 같은 일상의 물리적인 인터페이스부터 웹 사이트, 모바일 애플리케이션과 같은 가상의 인터페이스까지 모든 물체에는 공통된 디자인 원칙이 있다. 그리고 이 원칙은 API 디자인에도 적용이 된다. 음식을 데우거나 조리하기 위한 주방용품인 전자레인지의 예를 들어 API의 디자인 방법을 소개하고 있는 이 책은 리모컨, 알람시계 등과 같이 우리의 일상 속에서 쉽게 접할 수 있는 사물들을 예로 들고 있어 흥미로웠다.
![]()
처음에는 전혀 사용법을 알 수 없는 물건을 우리에게 익숙한 모습으로 되돌리는 과정을 통해 웹 API 디자인 과정을 설명하고 있어 재미도 있었고, 이해하기도 쉬웠다. API는 개발자들에게 굳이 세부적인 소스 코드 전체를 알지 않더라도 서비스와 애플리케이션을 결합할 수 있도록 도와주는 레고와 같은 존재라고 한다. API 디자인에 대한 지식은 그 어떤 웹 API 플랫폼에서도 활용할 수 있으니 말이다. 이 책의 표지에 그려진 레고 이미지들은 바로 그런 이유로 API 디자인에 대한 직관적인 설명이라 할 수도 있을 것이다.
![]()
이 책은 API 디자이너를 대상으로 하는 것만은 아니다. 옮긴이의 말에 따르면 '개발과 관련된 학습이나 일을 하고 있다면, 이 책이 다음 단계로 이끌어줄 훌륭한 촉매'가 되어 줄 거라고 한다. 새로 나오는 언어의 기술적인 부분이나 코드보다는 원론적인 개념 자체를 설명하는 책이기 때문이다. 눈에 쏙 들어오는 쉽고 재미있는 다이어그램들로 설명하는 페이지가 많고, 곳곳에 '팁'으로 소개된 주요 내용들 또한 초심자와 중급자들이 어렵지 않게 따라갈 수 있도록 배려되어 있는 부분들이다.
![]()
이 책은 이해하기 쉽고 사용하기 쉬운 API를 설계하는 방법에 중점을 두고 있다. API를 디자인할 때 필요한 기본 개념과 기술들을 시작으로 API를 설계하는 방법과 API의 모든 측면을 이해하고 사용하기 쉽게 구성하고 크기를 조정하는 방법을 보여준다. API를 제대로 디자인하는데 필요한 모든 개념을 담고 있기에, API 디자인을 시작하는 분들에게 좋은 안내서가 될 수 있을 것 같다.
일상을 소프트웨어처럼, 소프트웨어를 일상처럼 바라보는 저자의 시각이 API라는 단어 자체가 익숙지 않은 독자들에게도 조금 더 쉽고, 친근하게 접할 수 있는 계기를 마련해 줄 것이다.
*출판사로부터 도서를 제공받아 주관적으로 작성한 리뷰입니다. |
|
API 는 어떤 기능을 담당할까? API는 Application Programming Interface의 약자로 프로그램이 서로 상호작용할 수 있도록 하는 인터페이스를 제공하는 도구예요. 조금 복잡하게 들리실 수 있지만 쉽게 예를 들면 다른 프로그램에서 사용하기 위핸 데이터 소스를 제공하는 것을 말하는데요. API를 사용하면 다른 프로그램에서 제공하는 기능을 손쉽게 사용할 수 있기 때문에 많은 용도를 가지고 있어요. 우리 주변에서 쉽게 관찰할 수 있는 것으로Google Maps API를 사용하면 다른 웹사이트나 모바일 앱에서 지도 기능을 쉽게 추가할 수 있어요. 코로나 때 지도와 선별진료소 API 지도데이터를 결합해서 사람들에게 많은 도움을 주기도 했어요. API 는 왜 중요한 걸까? API는 어떤 프로그램이든 개발 시간을 단축시킨다는 장점이 있어요. API를 사용하면 다른 프로그램에서 제공하는 기능을 쉽게 사용할 수 있거든요. 전문적인 API를 활용하면 사용자에게 좋은 만족감을 줄 수 있고요. 서비스의 통합성을 높인다는 점도 API의 장점이라고 할 수 있어요. API 사용하면 서로 다른 서비스를 하나의 서비스로 통합할 수 있기 때문에 소비자들의 서비스에 대한 만족도도 상승하고요. API 디자인의 중요성에 대해서 때문에 API 디자인은 프로그래밍에서 매우 중요한 역할을 한다고 할 수 있어요. API 디자인이 잘 되어 있으면, 다른 개발자들이 프로그램을 쉽게 사용하고 이해할 수 있거든요.API 디자인이 잘 되어 있으면 여러가지 장점이 있어요. 대표적으로 사용성을 꼽을 수 있는데요. API 디자인이 잘 되어 있으면, 다른 개발자들이 프로그램을 쉽게 사용하고 이해할 수 있어요. 결과적으로 해당 디자인이 잘 된 API를 사용하면 프로그램의 사용성을 높일 수 있고요.
출판사로부터 도서를 제공받아 직접 읽고 작성한 후기예요. |
![]()
#1누구나 사용하고 있고 다들 잘 알고 있을 것이라 생각하고 있어서 너무나 중요하지만 가끔 소홀하게 되는 것들이 있다. 나에게 있어서는 API가 바로 그런 것들 중 하나였다. API를 개발하고 있는 개발자이기 때문에 API에 대해 잘 모른다는 것을 인정하기 싫었고 시간들여 공부하는 것 조차 기본도 모르는 것 처럼 여겨질까봐 잘 하지 않았던 것 같다. 이해도가 낮은 상태로 개발 업무에 들어가다보면 시작은 빠르지만 기능이 점점 확장되면 기존 API를 사용하지 못하는 지경에 이르게 된다. 게다가 API의 내용이 일반적이지 않고, 사용하기 어렵기 때문에 API를 사용하는 사용자들이 API 사용 방법에 대한 문의가 자주 왔었다. 이런 문제들이 반복되다보니 요즘에는 Back to the basic이라는 문장을 계속 되뇌이며 기본에 대한 공부를 지속적으로 하고 있다.
#2API는 일반적으로 많은 규칙을 가지고 있다. 하지만 이는 관례일 뿐 규칙을 위반했다고 해서 오류를 발생시키지는 않는다. API를 처음 접했던 주니어 개발자 시절에는 C++, C#, Java와 같이 강타입 언어를 주로 사용해왔었기 때문에 이런 부분이 굉장히 애매하게 다가왔고, 생각의 틀을 깨기가 무척 힘들었었다.
#3이 책을 읽으며 매일 같이 사용하고, 개발하고 있는 API지만 정말 모르고 있었구나라는 걸 느꼈다. 지금까지 만들어온 API들이 부끄럽게 생각이되었고, 확장성과 보안 등 보완해야할 부분들이 한 두개가 아니었다. 심지어 재설계를 해야하는 API들도 있었다. API는 한번 공개가되면 수정하기가 너무 어렵기 때문에 처음 개발할 떄 충분히 검토하지 못한 것이 후회가 되었다.
#4이 책에서는 API에 대해 다양한 비유를 들어가며 독자의 이해를 돕기 위해 노력하고 있고, 그 덕에 전에는 굉장히 어렵게 느껴졌던 이론들이 쉽게 이해되며 지루하지 않고, 재미있게 읽었다. 하지만 내용이 방대하고, 나의 경우 쉽게 까먹기 때문에 API를 구현하거나 사용할 때 애매한 부분이 있으면 그 때그 때 찾아보며 되새길 예정이다. API를 바라보는 관점을 다르게 해준 이 책을 나뿐만 아니라 많은 개발자들이 읽어봤으면 좋겠다.
|