본문 바로가기
개발이론

[개념] 서버와 API의 직관적 이해

by arirang_ 2024. 12. 19.

레스토랑의 주방 예시를 통한 직관적인 이해  

 

📌 서버 (Server)

서버는 요청(클라이언트의 요구)를 받아, 필요한 작업을 처리하고, 결과(응답)을 돌려주는 역할을 하는 시스템이다.

 

'서버를 띄운다' : 서버가 동작할 준비를 미치고, 클라이언트의 요청을 받을 수 있는 상태가 되었다.

 

📌 API (Application Programming Interface)

API는 서로 다른 소프트웨어 시스템과 통신하기 위해 따라야할 규칙이다. 

쉽게 말하면, 다른 시스템의 기능을 쉽게 가져다 쓰게 만들어주는 도구이자 약속(규칙, 프로토콜)이다. 

즉 서버와 클라이언트가 서로 정보를 어떻게 주고 받을지 미리 정해 놓은 것이라고 생각하면 된다. 

'요구하는 조건에 맞게 요청해야 답(응답)을 얻을 수 있어'라는 약속이 API인 것이다.

정리하면 데이터를 주고 받기 위해 미리 정의된 약속, 대화의 규칙이 API다.

 

📌 예시

서버는 레스토랑 주방과 같다. 

  • 주방은 손님(클라이언트)이 요청한 음식을 만드는 '실제 작업을 처리하는 곳'이다.
  • 주방 내부에서 어떤 재료를 사용하고, 요리를 어떻게 만드는지 손님이 알 필요가 없다.

🧑🏻‍🍳 주방(서버)은 요리(기능)을 실행하는 주체

 

API는 레스토랑의 메뉴판과 같다.

  • 메뉴판은 주방에서 만들 수 있는 음식(기능)의 종류를 손님(클라이언트)에게 알려주는 역할을 한다.
  • 손님은 메뉴판에 적힌 대로 주문할 뿐, 주방의 내부 조리 과정을 알지 못해도 원하는 음식을 받을 수 있다.

🛎️ 메뉴판(API)는 그 음식(기능)을 주문(사용)할 수 있도록 설명서 or 중간다리(두 시스템 간 통신을 도와주는 다리) 역할

 

클라이언트는 레스토랑에 방문한 손님이다.

 

🧑🏻 손님(클라이언트)는 메뉴판(API)에 적힌대로만 요청해야 한다.

ex) 요리사님/주세요/스파게티/토마토와 같은 형식을 지켜야 서버가 이해한다.

 

동작

0. 레스토랑 문을 연다.(서버를 띄운다)

1. 손님(클라이언트)이 메뉴판(API)을 보고 '요리사님/주세요/스파게티/토마토'로 음식을 주문한다.(ex. 데이터 요청)

2. 주방(서버)은 요청대로 토마토 스파게티를 조리한다. (ex.필요 작업 수행)

3. 만들어진 스파게티을 손님 자리에 가져다 준다. (ex.응답)

 

 

📌 이미지 출처

📌 참고

https://brunch.co.kr/@businessinsight/65#comment

 

서버가 API를 뭐..? 개발자의 외계어 쉽게 이해하기

비전공자를 위한 이해할 수 있는 IT 지식 : 서버, JSON, API | 확실히,개발자는 뭔가 다른 세상 사람들 같습니다. 특이한 개그코드며.. 일관적인 복장, 알 수 없는 고양이 사랑에.. 별거 아닌 이유로

brunch.co.kr

https://brunch.co.kr/@hosi/17

 

순도 100% 문과생과 함께 API 개념 이해해보기

API, REST API, 오픈 API 개념 #코드스테이츠 PMB 8기 | 당신은 지금 A 스타트업의 인턴 기획자다. 그리고 뭔가 프로덕트에 문제가 생겼다. 팀장님이 이거 왜 이러는지 알아오라셔서 간 개발팀, 남주혁

brunch.co.kr

https://onlydev.tistory.com/164

 

왜 서버를 '띄운다'라고 표현하는 걸까?

왜 다들 서버를 '띄운다'라고 표현하는 걸까? 정말 뜬금없이 궁금해졌다. 사실 서버는 실행하는 것이 아닌가? '띄운다'라는 표현이 잘못됐다기 보다는 개발자라면 이렇게 표현하게 된 재밌는 이

onlydev.tistory.com

https://jayviii.tistory.com/53#:~:text=%EC%84%9C%EB%B2%84%EB%9E%80%20%EB%AC%B4%EC%97%87%EC%9D%B8%EC%A7%80%EC%97%90,%EC%84%A4%EC%B9%98%ED%95%B4%EC%84%9C%20%EC%8B%A4%ED%96%89%EC%8B%9C%ED%82%A4%EB%8A%94%20%EA%B2%83%EC%9D%B4%EB%8B%A4.%22

 

서버를 띄운다는 말의 진짜 의미는 무엇인가?

첫 번째 질문, 서버를 띄운다는 말의 진짜 의미는 무엇인가? 실무를 하다 보면 누구나 습관처럼 서버에 대해서 이렇게 말한다. 서버 띄울게요. 서버 떠있나요? 서버 안 떠있습니다. 서버는 왜 띄

jayviii.tistory.com

 

'개발이론' 카테고리의 다른 글

[개념] 동기, 비동기  (0) 2024.12.19