API가 무엇일까
REST - API를 배우기 전에 API가 무엇인지 다시 정리해보자 한다.
https://codingworld2002.tistory.com/18
(정리해 둠)
> 요약하자면, 결국 특정 규칙이 존재하는 "메뉴판"인 것이다.
https://www.youtube.com/watch?v=fB3MB8TXNXM&t=26s
RESTful - API는 API 중에서 오늘날 가장 널리 사용되는 것이다.
API가 "A는 요청하고 B는 받는다"라는 규칙을 가진 메뉴판이라면
RESTful - API는 "A가 어떤 방식으로 요청하고 B가 어떤 방식으로 응답을 받을지 지정하는 형식"라고 여길 수 있다.
쉽게 말해서 일정한 통신 규칙을 말하는 것이다. 근데 이 규칙이 굉장히 직관적이라서 많이 쓰이는 것이다.
디테일한 설명
API는 다음과 같은 기능을 하는데..
- 추가
- 조회
- 업데이트
- 삭제
이렇게 볼 수 있다.
코드로 표현하면 다음과 같을 것이다.
HTTP 프로토콜을 이용해서 뒤의 API를 가져오는 것이 될 것이다. 앞에 있는 명령어는 추가할지, 조회할지, 업데이트할지, 삭제를 할 것인지 정해주는 명령어라고 이해하면 된다.
이때 API가 URL의 형식을 띠고 있다. 네이버를 예시로 들어보자.
이건 네이버의 날씨 파트이다. 우리가 날씨에 대한 코드를 하나하나 바꾸는 일을 할 수 있겠지만, 그건 너무 비효율적일 것이다. 그래서 "기상청"이 만들어둔 날씨 API를 가져와서 화면에 띄우면 편하다. 코드로 생각하면 그냥 GET 해버리면 끝이기 때문이다. 또한 형식으로 따지면 특정 URL이 될 것이다. (클릭하면 URL이 자동으로 바뀐다.)
또한, 데이터를 가져올 때의 파일 형식은 .json으로 많이 가져온다. 파일이 가볍고 많은 양을 담을 수 있기 때문이다.
그리고, 데이터를 가져올 때에는 전체적인 데이터를 가져오는 것이 아니라 특정 데이터만 가져오게 만들어야 한다. 만일 전체적인 데이터를 가져오게 된다면 CPU 부하가 일어날 수도 있기 때문이다. (데이터 양이 많다면)
RESTful - API의 중요한 부분
앞에서 설명하지 않은 RESTful - API의 중요 부분을 설명하고자 한다.
1. 요청을 처리한 결과를 알려야 한다.
RESTful - API에서는 클라이언트와 서버와의 통신 결과를 알려주는 것이 중요하다.
앞에 번호로 결과에 대한 이슈를 정한다. 200번대는 성공적인 응답이다. 400번대는 클라이언트선에서 오류가 발생했다는 뜻이다. 500번대는 서버 측에서 오류가 발생했다는 뜻이다.
이런 일련번호를 매겨서 현재 코드에 대한 결과를 알려야 한다.
2. 상태가 없는 통신
서버는 클라이언트에 대해 아무것도 기억하지 말아야 한다. 물론 캐싱을 통해 불필요한 자원 낭비를 막을 수 있다.
또한 한 번의 통신만 하고 그 통신에 대해 기억을 하지 못하기에, 클라이언트가 몇 번을 반복해서 요청해도 항상 똑같은, 필요한 정보를 서버가 보내야 한다.
3. 캐싱
클라이언트이든, 서버든 "특정 요청"에 대한 응답을 캐싱해 두면 불필요한 요청, 응답을 안 해도 좋다.
그래서 캐싱을 미리 해두는 것이 효율적이다. (특히 반복적이고 중요한 통신)
결론
RESTful - API는 오늘날 가장 널리 쓰이는 "규칙"인 것이고 이 규칙은 정말 중요하다.
규칙이 없으면 개발자들끼리 소통이 제대로 이루어지지 않기 때문이다. (누구는 Get이라고 생각해서 요청했는데 사실은 그게 삭제 요청일 수도!!)
이 밖에 좀 더 디테일한 부분은 다음 글들을 참고하자. (Fetch / Axios에 대한 내용)
'개발 이모저모' 카테고리의 다른 글
배달의 민족 폰트 css 적용법 (2) | 2024.09.09 |
---|---|
부트스트랩이란? 사용방법. (0) | 2024.09.07 |
API가 뭘까? (1) | 2024.08.14 |
개발자 포트폴리오. 어떻게 써야 할까. (0) | 2024.08.12 |
개발자가 알고 있으면 좋은 사이트 / 툴 (0) | 2024.08.07 |