개발 전반에 걸쳐 API라는 단어를 정말 많이 사용하고 있다. 물론, 이 과정이 꼭 필요하다고 할 수는 없겠지만,
API의 워딩을 깊게 바라보는 것은 개발 역량 자체에 큰 도움이 될 것이라 생각해, 정리글을 하나 작성한다.
사실 모국어 한국어가 아닌 영어였다면, 단어 각각이 의미하고 있는 바를 이미 알고 있을 것이고, 결합어를 이해하는 데에도 별다른 어려움이 없을 것이라 생각하지만, 본토가 한국이니까 ^_^ 열심히 공부해보자!
cf.) 팁이라면 개념, 관계, 모든 방면에 있어서
블로그 글을 링크하니 읽어보면 분명 도움이 될 듯 하다.
뒤에서 앞으로 단어를 이해해보자.
위키백과에 이렇게 기술이 되어있는데, 아직 글의 이해가 잘 되지 않는다면, 일단 최대한 간단화를 시켜보는 것이다. 시스템, 장치, 정보, 신호 다 빼라. 상관없다.
Interface 는 서로 다른 두 개의 무언가(시스템, 컴퓨터, 노드, 사람, ...extra 모든 간에)에서 어떠한 무언가를 하는 (경우, 경우의 시점, 경우의 무언가...).
이 정도만 이미지만 가져갈 수 있다면 개인적으로 50%는 이미 도달했다고 보는 생각이다.
Interface에 좀 더 구체적인 설명은 Typescript type / interface 글에서 진행을 하겠다.
(바로 들어가서 볼 필요는 없지만, 꼭 봐야하는 주제는 맞다고 생각을 한다.)
Typescript type / interface
결국 application, programming 역시나 시스템, 컴퓨터 ... 등의 Characteristic 한 성격인 것이고, 굳이 스켈레톤 정도의 정의에서 넣지 않아도 되는 단어들인 것이다.(+ 정확히는 점진적으로 추가하는 방법으로 바라보아야 하는 것이다.)
이를 적용시켜보면
API : 두 개의 무엇간의 관계 -> 내가 어디서 뭘 가져올 때 -> 내가 Client의 입장으로 어떠한 Server에서 Data를 요청할 때 -> 기존의 흔히 알고 있는 API
요정도가 될 것이다.
이게 이해가 되었으면, 이제서야 RESTful API를 바라볼 준비가 되는 것이다.
: HTTP 기반의 웹에서 사용되는 RESTful API
API를 이해했다. 그런데 이제 앞에 접두어가 하나 붙었다. 그런데, 단어가 좀 처럼 다가오질 않는다. 그나마 Transfer만 조금 친숙한 기분이 든다. 아, 그럼 저것도 Character를 나타내는 것일 수 있겠구나, 하고 한 번 위키백과 등을 찾아보는 것이다.
간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다.
하나의 개념을 보면, 또 추가적인 개념들이 쏟아져 나오기 때문에 이 행위가 굉장히 더디고 깊이를 요하는 것을 안다.
cf.) 나는 이 키워드들을 학습하는데 정보처리기사를 이용했다.
아무튼, ~~한 API라는 것을 인지한 채로, REST를 좀 더 파보자.
처음 보면 좋은 키워드는 Stateless, Cacheable 정도가 아닐까 생각을 한다. 지식이 더 쌓이고, 필요성을 알게되면 그때 또 공부하면 되는 것이다.
API란 단어는 무조건 깊은 이해가 필요하다. 혹시나, 처음 개발을 하고 있는 사람 중 API에 헷갈리는 사람이 있다면 이 글을 참고할 수 있으면 정말 좋겠다.