본문 바로가기
개발 공부/서버

[서버 기초] API란? 서버가 데이터를 주고받는 방법, REST와 GraphQL까지!

by 악마의 개발자 2025. 4. 1.
반응형


💡 “앱이랑 서버는 어떻게 대화할까?”

우리가 앱에서 버튼을 누르면
서버가 정보를 주고, 화면이 바뀌고, 결과가 나오죠?

그런데 도대체 앱이랑 서버는 무슨 방식으로 대화하는 걸까요?
이걸 가능하게 해주는 게 바로 API입니다! 😊


🔍 API란?

API (Application Programming Interface)

“서버와 클라이언트가 대화할 수 있게 해주는 통신 약속”이에요.

📦 쉽게 말해,

  • 클라이언트: “나 이 데이터 좀 줘”
  • 서버: “여기 있어~”
    이런 대화가 오가도록 규칙을 정해놓은 인터페이스입니다!

🧾 예시로 알아보자!

👩‍💻 앱에서 사용자 목록 요청
→ 서버에 "GET /users" 요청 (API 호출)
→ 서버가 사용자 목록 데이터를 JSON으로 전달

📱 사용자는 결과만 보지만,
앱과 서버 사이에서는 API를 통한 대화가 계속 이뤄지고 있어요!


🔁 REST API란?

REST (Representational State Transfer)
API를 설계할 때 가장 많이 쓰는 방식이에요.

📌 특징:

  • 자원(Resource) 중심 URL 사용
  • HTTP 메서드(GET, POST, PUT, DELETE)로 동작 정의

📦 예시:

  • GET /products → 상품 목록 가져오기
  • POST /login → 로그인 요청
  • DELETE /user/1 → 사용자 삭제

💡 규칙이 명확해서 클라이언트와 서버의 협업에 최적화!


🧩 GraphQL이란?

GraphQL은 페이스북이 만든 API 설계 방식이에요.
REST보다 유연하게 데이터를 요청할 수 있어요!

📌 특징:

  • 필요한 데이터만 골라서 요청
  • 한 번의 요청으로 여러 자원 조회 가능

📦 예시:

{
  user(id: 1) {
    name
    posts {
      title
    }
  }
}

REST가 메뉴판대로 주문한다면,
GraphQL은 “커스터마이징 주문”이 가능!


🆚 REST API vs GraphQL 비교

항목 REST API GraphQL
구조 고정된 URL & 메서드 하나의 엔드포인트 사용
데이터 정해진 형식으로 제공 필요한 데이터만 요청 가능
요청 횟수 여러 번 분리 요청 한 번에 요청 가능
학습 난이도 쉬움 상대적으로 어려움
도입 사례 거의 모든 웹 서비스 Facebook, GitHub, Shopify 등 대규모 서비스

🤔 실무에선 어떤 걸 써야 할까?

  • 대부분의 웹/앱 서비스는 REST API로 충분해요.
  • 복잡한 데이터 구조가 필요하거나,
    모바일 네트워크 절약이 중요할 땐 GraphQL이 더 유리할 수도 있어요!

🧠 정리 한마디!

  • API는 서버와 클라이언트가 소통하는 통로
  • REST API는 가장 보편적인 방식 (GET, POST 등으로 자원 관리)
  • GraphQL은 더 유연하고 강력하지만, 복잡도도 있음
  • 둘 다 목적에 따라 선택해서 사용하면 돼요! 😊

📌 다음 예고: “서버는 어떻게 배포할까? 로컬 서버 vs 프로덕션 서버 차이!”

  • 개발할 땐 내 컴퓨터에서 잘 됐는데, 배포하니 오류?!
  • 로컬 서버와 실제 운영 서버의 차이
  • 배포 시 알아야 할 환경 설정까지!

 

반응형