API란?
- Application Programming Interface 의 약자로 소프트웨어 프로그램 내부에 존재하는 기능 및 규칙의 집합이다
- API는 클라이언트와 서버 사이의 연결고리이다
- 클라이언트의 요청 사항을 서버에 전달할 수 있고 그에 따른 응답을 서버로부터 받을 수 있다
- 즉 프로그램들이 서로 상호작용 할 수 있도록 도와주는 도구이다
API의 역할
- API 는 서버와 데이터베이스의 출입구 역할을 한다
데이터 베이스의 정보를 아무나 접근할 수 있게 하면 안되기에 허용된 이용자들에게만 데이터 접근 권한을 부여해준다
REST API
REST API란
- Representational State Transfer 의 약자로 소프트웨어 프로그램 아키텍처의 한 형식이다
- 자원의 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다
- World Wide Web 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식이다
- REST는 기본적으로 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다
정리
- 웹이 존재하는 모든 자원에 고유한 URI 를 부여해 주소를 지정하는 방법 및 규칙을 뜻한다
- RESTful API는 REST 특징을 지키면서 API 를 제공한다

특징
- self-descriptiveness : 자체로 설명이 가능하며 목적과 기능이 쉽게 이해된다
- 단점 : 표준규약이 없어 안티패턴으로 작성되는 경우가 있다
*안티패턴 : 실제 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴

REST 구성요소
- 자원 - URI
- 모든 리소스는 고유한 주소와 서버가 존재하며 URI 를 통해서 리소스를 구분하고 호출한다
- 행위 - HTTP Method
- CRUD 에 맞게 HTTP Method를 설정해주면 된다
- POST GET PUT DELETE
- 표현
- 브라우저와 웹 서버간 데이터를 주고받는 형태로 JSON, XML, TEXT, RSS 등이 있다
정리
REST 란 HTTP URI (Uniform Resource Identifier) 을 통해 자원을 명시하고, HTTP Method (POST GET PUT DELETE) 를 통해 해당 자원에 대한 CRUD 를 적용하는 것을 의미한다