들어가기 전에
클라이언트의 종류가 웹 브라우저, 안드로이드 앱, iOS 앱 등 다양해지면서 이러한 클라이언트들에게 정보를 제공하는 방식을 하나로 일원화시키고 싶어졌습니다.
일원화시키는 방식 중에 대표적인 방식이 HTTP프로토콜로 API를 제공하는 것입니다.
HTTP프로토콜로 제공하는 API를 REST API라고 합니다.
이번 시간엔 API에 대한 개념과 REST API의 개념에 대해 알아보도록 하겠습니다.
학습 목표
- REST API가 무엇인지 이해합니다.
- WEB API(HTTP API)와 REST API를 구분할 수 있습니다.
핵심 개념
- REST API
- WEB API (HTTP API)
학습하기
API란?
API는 Application Programming Interface의 약자입니다.
wiki를 보면 API에 대한 설명이 다음과 같이 되어 있습니다.
“API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다.
주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공합니다.
설명만 봐서는 어떤 뜻인지 이해하기 어렵네요.
이번엔 다음의 URL주소를 보도록 하겠습니다.
위의 URL주소를 가면 java 8의 API문서를 볼 수 있습니다.
자바 언어가 제공하는 클래스와 인터페이스에 대한 설명이 API문서입니다.
자바 프로그래밍을 위해서는 자바 언어가 제공하는 것들이 어떤 것이 있는지를 알아야 합니다.
그래야, 사용할 수 있겠죠?
절대값을 구하기 위해서는 어떻게 해야 할까요?
Java API문서를 읽어보면 답을 알 수 있습니다.
Math클래스의 abs()메소드를 사용하면 된다는 것을 알 수 있죠.
해당 메소드가 어떻게 내부적으로 구현되어 있는지는 문서를 봐도 알 수 없습니다.
하지만, 해당 라이브러리를 사용할 때 구현코드를 알지 못해도 인터페이스만 알면 사용할 수 있습니다.
이렇게 프로그래밍을 할 때 필요한 인터페이스를 API라고 합니다.
REST API란?
REST는 REpresentational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다.
REST API란 말 그대로 REST형식의 API를 말합니다.
REST API란 핵심 컨텐츠 및 기능을 외부 사이트에서 활용할 수 있도록 제공되는 인터페이스입니다.
예를 들어, 네이버에서 블로그에 글을 저장하거나, 글 목록을 읽어갈 수 있도록 외부에 기능을 제공하거나 우체국에서 우편번호를 조회할 수 있는 기능을 제거하거나, 구글에서 구글 지도를 사용할 수 있도록 제공하는 것들을 말합니다.
comment
24.04.05.
220306
로이필딩이 말하길 서버와 클라이언트의 독립적 진화(ex. 웹 - 브라우저와 페이지(클라이언트) 중 하나가 변경되어도 나머지 하나가 업데이트할 필요가 없이 잘 동작한다...form이 깨질 수는 있다.)를 위해 REST API의 아키텍쳐 스타일을 지켜야한다. REST API를 굳이 쓰지 않아도 된다.(1. 시스템 전체를 통제할 수 있을 경우 2. 진화에 관심이 없는 경우)
영상 마지막에 REST API의 제약조건을 모두 따르지 않는 API를 그냥 REST API라고 부르면 roy가 싫어한다는 문구가 웃기네요. 그놈의 roy가 문제네요 ㅋㅋㅋㅋㅋ
REST API란? 부분 설명에 오타가 있습니다.
"우체국에서 우편번호를 조회할 수 있는 기능을 제거하거나"
-> "우체국에서 우편번호를 조회할 수 있는 기능을 제공하거나"
감사합니다.
생각해보기 :
용어 의미가 명확하지 않으면 협업 할 때 의사소통에 문제가 많이 발생 하고 개발 진행이 되고나서
다시 기획부터 돌아가는 .. 그런 문제가 생길 것 같아요.
어렵네요 ㅠㅠ 참고자료의 TOAST Meetup 도 도움 많이됐습니다 ㅎㅎ