
2024년이 다 끝나간다!
그래도 24년도에 벨로그 시작하겠다는 목표 달성🩵
비오는날 친구들이랑 찍은 사진 하나 첨부하고 힛힛
React를 하며 처음으로 API라는걸 알게 되었는데...
중요한 개념이기 때문에 정리를 해보자 (۶•̀ᴗ•́)۶
API(Application Programming Interface)
한 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법
간단히 음식주문 API를 예시로 들어보자면,
메뉴판과 같이 1.마라탕 2.불닭볶음면 3.짬뽕 을 예시로 보여주면
손님이 2번을 달라고 고르는 것을 예시를 들 수 있겠다
결국 음식주문 API == 음식주문 서버와 손님이 음식을 주고받기 위한 방법
방법.. 이라는게 그래서 뭔데? 라고 물어본다면
단순히 '코드'라고 설명할 수 있다!
코드를 실행하면 DB에서 음식을 뽑아서 보여주는 것이다.
app.get('/detail/:id', function(req, res){
db.collection('음식').findOne({_id:parseInt(요청.params.id)}, function(에러, 결과{
res.render('detail.ejs', {data:결과});
}))
예시로 이런 코드를 작성해본다면,
url로 get을 요청하는 부분이 API이고, 이 부분을 사용자에게 알려주어야 한다.
(GET 요청)food.google.com/foodworld/detail?id=333333
method 라고 하는 요청 방식
데이터를 달라고 할건지, 데이터를 저장할건지, 데이터를 줄 건지 등
endpoint 무슨 자료를 요청할건지
음식 메뉴, 음식 가격, 사용자평 등 어떤 데이터를 요청할건지
parameter 자료요청에 필요한 추가정보
사용자 아이디 등 추가적인 자료
이러한 내용이 들어가야 한다~
웹의 경우에는 REST API를 따라 작성하면 좋은데 이건 추후에 다루는 걸로..
public API
누구나 사용가능한 공개 API
private API
사내 프로그램에서 통신을 위해 사용하는 API
partner API
미리 정해둔 것만 사용하는 API
C언어에서 사용하는 public, private 의 개념으로 이해해도 된다.
API를 공부했다면 HTTP 요청 메서드에 대해서도 같이 공부를 해야 함
( ^◡^)っ ♡
HTTP는 웹API에서 사용하는 통신 프로토콜이다!
프로토콜이 뭐냐고 물으면 통신을 위한 약속이라고 생각하면 좋다.
(뭐 하나 배우면 배울게 엄청 많죠...)
클라이언트가 서버에 요청을 보내고 응답을 기다리는 방식으로 진행이 되는데,
HTTP 요청의 가장 중요한 속성 중 하나가 바로 요청 메서드인 것이다.
- GET
GET은 이름처럼 정보에 대한 간단한 요청이다.
GET 요청은 데이터만 검색해야 하며 상호작용하고 있는 기본 데이터를 수정할 수 없다! (한글파일 읽기 전용이라고 생각하면 좋을 듯)
예를 들어 직원 API가 있다면, 직원에 대한 데이터를 검색하기 위해 이 엔드포인트에 대한 요청을 GET으로 할 수 있다.
- POST
GET이랑 달리 POST는 기본 데이터의 상태를 수정하기 위한 것이다.
(POST 이름 자체가 보내다 라는 의미인데 이걸 생각해주면 더 좋을 듯)
특히나 새 리소스를 만들기 위해서 자주 사용한다.
회사에서 새로운 직원을 고용할 때마다, 직원의 엔드포인트에 게시 요청을 보내 새 직원 리소스를 추가하는데 사용할 수 있다!
- PUT
PUT과 같이 데이터를 수정하지만, 새 리소스를 만드는 것이 아니라 기존의 리소스를 업데이트한다는 차이가 있다.
직원의 역할이나 부서가 바뀔 때마다 PUT API를 사용해줄 수 있다!
- DELETE
기존의 리소스를 삭제하는 기능을 수행한다.
참 쉽죠?
이 각각의 기능들이 CRUD 라고 부르는 데이터 관리의 기본적인 4가지 작업과 일치한다.
여기까지 API에 관해 간략히 알아보았는데...
처음에 API를 배울 때 기억이 나서 이렇게 중요한 내용을 싹 정리해보았다
다들 열공하기를 ❤️
좋아용!! 아주 개념을 핵심만 간단하게 잘 정리했어용 다만, 굵은글씨, 소제목 등으로 더 가독성을 높인다면 최고일듯합니다!