개발을 하다 보면 API란 단어를 많이 보게 된다.
API란 무엇일까? API는 Application Programming Interface의 약자이다.
여기서 Interface의 의미를 알면 대강 알 수 있다.
인터페이스란 사용자가 어떤 조작을 하기 위해 다루는 것이라고 표현할 수 있다.
예를 들어 자동차를 보자. 좌회전 우회전을 하기 위해 운전자는 핸들을 돌린다. 기어를 통해 전진, 중립, 후진이 가능하고 엑셀이나 브레이크를 통해 가속을 하거나 멈출 수 있다. 즉 자동차를 조작하기 위해 핸들, 기어, 엑셀, 브레이크 등등 자동차에서 제공하는 인터페이스인 것이다.
인터페이스의 특징은 호환이 된다는 것이다. 현대차를 운전을 할 수 있다면 기아차 혹은 벤츠 등 다양한 차를 다룰 수 있다. 물론 100% 호환이 된다고는 어렵다.
자 그럼 다시 API로 돌아가보자.
단순하게 API도 인터페이스다. 애플리케이션 프로그래밍 인터페이스.
즉 프로그램을 조작하기 위해 사용하는 것이 API다.
동영상 플레이어라면 영상 불러오기, 재생하기, 멈추기, 일시 정지 등 다양한 API를 제공할 것이다.
문서 편집기라면 글자 입력, 폰트 변경, 글자 색 변경, 글자 지우기 등 다양한 API를 제공 할 것이다.
운영체제도 인터페이스의 역할을 수행한다고 볼 수 있다. 일반 사람이 H/W의 동작 원리를 이해 못해도 OS는 마우스나 키보드, 요즘은 터치로 우리는 컴퓨터를 제어할 수 있다.
특히 프로그램을 개발할 때 H/W를 조작해야 할 때 OS API를 사용해 개발해 간다.
웹에서 제공해야 하는 기능은 무엇이 있을까
대표적으로 CRUD가 있다.
CREATE, READ, UPDATE, DELETE의 줄임말인데 말 그대로 생성, 읽기, 수정, 삭제 기능이다.
예를 들어 게시글 생성, 게시글 조회, 게시글 수정, 게시글 삭제로 볼 수 있다. 웹을 개발한다면 CRUD를 할 수 있는 API를 제공해야 한다.
그럼 REST API는 무엇일까?
웹에서 사용하는 특정 표준 API라고 볼 수 있다.
웹에선 데이터를 HTTP를 사용해서 보내게 된다. HTTP 헤더 부분에 Method를 기입할 수 있는데, 이 Method와 Resource의 조합으로 API를 만드는 것이다.
Method는 get, post , put/patch, delete 등이 있다.
get은 조회, post는 등록 put은 전체 수정, patch는 일부 수정, delete는 삭제할 행위의 목적으로 사용한다.
Resource는 URI에 표현하며 동사가 아닌 복수형 명사로 표기한다.
post(게시글)라는 resource가 있다고 가정해보자
그리고 CRUD를 만들어 보자.
CREATE : Method = post, /posts
READ : Method = get, /post/{post_id}
UPDATE : Method = put, patch, /post/{post_id}
DELETE : Method = delete, /post/{post_id}
또한 '/'를 사용하며 계층 관계를 나타내는데 특정 게시글의 reply(댓글)을 조회한다면
get, /post/{post_id}/replies로 표기한다.
REST API의 특징은 Method와 URI를 보고 어떤 요청인지 유추하기가 쉽다.
다르게 말하면 다른 사람이 볼 때 어떤 기능인지 유추하기 쉽게 만들어야 한다.
'CS' 카테고리의 다른 글
Layered Architecture 간단히 살펴보기 (0) | 2021.11.08 |
---|
댓글