본문 바로가기
Programming

[Network] API란 무엇인가? (feat OSI 7계층, Protocol)

by 개발자 염상진 2022. 5. 20.

 

클라이언트 ~ 서버 네트워크 패턴

 

웹 애플리케이션은 클라이언트-서버 패턴을 가진다. 클라이언트는 자원을 서버에 요청하게 되고, 서버는 요청에 적합한 자원을 반환하면서 클라이언트와 서버의 통신은 유지된다.

 

웹 애플리케이션의 상황은 추상적이기 때문에 실생활에서 예제를 찾아볼 수 있다. 예를 들어 커피숍에서 아메리카노를 주문한다고 하자. 주문을 하기 위해서는 "아메리카노 한잔 주세요!"라고 말해야 커피를 얻을 수 있다. 만약 "asdkASDF@#SD%%&!--111f"라고 말한다면 커피를 마실 수가 없다.

 

클라이언트와 서버간 통신을 위해서는 알아들을 수 있는 주문이 필요한데, 적절한 주문을 전문용어로 프로토콜(Protocol)이라 한다. 외교 협정에서의 문서 같은 개념이다. 서로 약속하고 이렇게 이행하자고 미리 약속한..

 

프로토콜에는 다양한 종류가 있지만 웹 애플리케이션에서 가장 일반적으로 사용하는 프로토콜이 바로 HTTP다. 클라이언트와 서버간 HTTP 통신을 위해 주고받는 데이터를 HTTP 메시지라고 한다. HTTP를 사용할 때는 당연하게 지켜야할 규칙이 있다. 프로토콜이기 때문이다.

 

OSI 7계층에는 HTTP 뿐만 아니라 계층별로 다양한 프로토콜이 존재한다. 그 중 HTTP 프로토콜은 가장 최상위 계층인 응용계층에서 사용되는 프로토콜이다.

 

 

API(Application Programming Interface) ?

 

다시 커피숍의 상황을 떠올려보자. 커피를 주문하는 사람은 정확하게 자신이 주문하는 내용을 말해야 하는데, 이 때 손님이 참고하는 것이 메뉴판이다. 각 매장마다 특색있는 메뉴를 가지고 있기 때문에 정확한 메뉴명을 말해야 커피를 마실 수 있다. 단순하게 "시원한 커피 주세요"라고만 하면 커피 주문이 불가능하다.

 

웹 애플리케이션에서도 정확한 자원을 요청하기 위해서 클라이언트가 프로토콜에 어떤 데이터를 태워야 하는지를 명시하고 있는 것이 바로 API다. 서버에서는 클라이언트가 자원을 잘 활용할 수 있도록 사용 인터페이스를 제공해주게 된다. 

 

 

서버에서는 클라이언트가 혼동하지 않고 정확한 자원을 요청할 수 있도록 API 명세서를 제공한다. 구글 API나, 네이버 API에서도 요청방식, 에러방식, 반환결과 등에 대한 자세한 사항을 기술해놓고 있다.

 

클라이언트는 API를 확인하고 적절한 URL과 URI를 사용하여 서버에 자원을 요청하게 된다. 또한 (?)나 (&) 기호를 사용한 query문을 작성해서 세부적인 자원을 요청할 수도 있다. 

 

클라이언트가 서버에 자원을 요청할 때는 HTTP 메소드를 사용한다. 기본적인 CRUD의 작동방식으로 이해할 수 있다. HTTP 메소드로는 GET, POST, PUT, DELETE등이 있다.

 

 

 

 

[Javascript] 비동기 프로그래밍이란? Asynchronous Call

Callback 함수 비동기 호출 Callback 함수는 다른 함수의 파라미터로 전달하는 함수를 말한다. 인자로 전달된 함수는 동기적으로 실행하거나 비동기적으로 실행할 수 있다. callback 함수를 비동기적으

about-tech.tistory.com

 

댓글