본문 바로가기
프로그래밍

엔드포인트 란? API 호출과의 연관성

by 로맨틱스터디 2025. 10. 8.
728x90
반응형

1️⃣ Endpoint 단어 뜻

  • 영어 end = 끝, point = 지점, 점
  • 합치면 끝 지점” 혹은 “마지막 지점” 정도 의미
  • 컴퓨터/네트워크에서는 데이터 통신의 최종 목적지라는 뜻으로 사용

2️⃣ API에서의 의미

  • 클라이언트와 서버가 통신할 때 서버 리소스/기능에 접근하는 마지막 지점이 바로 엔드포인트
  • 즉, URL + HTTP 메서드 조합이 클라이언트가 요청을 보내는 최종 목적지

예시:

GET /users/123
  • 클라이언트가 /users/123라는 서버의 특정 기능/리소스에 요청을 보내면
  • 서버에서 처리 후 응답이 돌아오고, 그 URL + 메서드가 엔드포인트가 되는 것

💡 비유

  • URL = 건물 주소
  • 엔드포인트 = 건물 안 방 하나, 문 하나
  • 데이터가 도착하는 최종 지점(end point)

3️⃣ 정리

용어 의미
Endpoint “끝 지점” = 클라이언트 요청이 도착하는 최종 목적지
URL + HTTP 메서드 엔드포인트를 실제로 구현한 방식
API 호출 엔드포인트를 통해 서버 기능 수행
  • 즉, ‘끝(point)’이라는 말은 통신 경로에서 이 요청이 최종적으로 도착하는 곳이라는 의미

 

이제 “왜 API 호출이 엔드포인트를 통해 서버 기능을 수행하는지”를 네트워크 관점에서 차근차근 설명해드릴게요.


1️⃣ 클라이언트 ↔ 서버 구조

  • 클라이언트 = 요청을 보내는 쪽 (브라우저, 앱)
  • 서버 = 요청을 받아 처리하고 응답을 보내는 쪽
  • 클라이언트는 서버의 모든 기능을 직접 호출할 수 없음
  • 서버는 여러 기능이 있고, 각각 접근할 수 있는 주소와 방식이 있음

2️⃣ 엔드포인트 = 서버 기능의 출입구

  • 서버 기능마다 고유한 URL + HTTP 메서드를 할당
  • 클라이언트는 이 출입구를 통해서만 기능에 접근 가능

예시:

엔드포인트 기능
GET /users 회원 목록 조회
POST /users 회원 등록
PUT /users/123 회원 정보 수정
  • 클라이언트가 GET /users 요청 → 서버에서 회원 목록 조회 기능 수행
  • 요청하지 않은 다른 기능은 접근 불가

3️⃣ 요청 → 처리 → 응답 흐름

  1. 클라이언트: 엔드포인트로 HTTP 요청 전송
  2. 서버: URL + 메서드 확인 → 해당 기능 실행
  3. 서버: 처리 결과HTTP 응답으로 반환
  4. 클라이언트: 결과 확인 후 화면에 표시
클라이언트
   │
   ├── HTTP 요청(GET /users) ──▶ 서버
   │                           ├─ 회원 목록 조회 기능 수행
   │                           └─ 결과 반환
   │
응답 수신 후 화면 렌더링

4️⃣ 핵심

  • 엔드포인트 = 클라이언트가 서버 기능을 호출할 수 있는 “정해진 문/문지기
  • API 호출이 엔드포인트를 통해 기능을 수행하는 이유:
    1. 서버 기능을 안전하게 구분하기 위해
    2. 클라이언트가 원하는 기능만 호출하도록 명확하게 하기 위해
    3. RESTful, 보안, 유지보수 관점에서 효율적

💡 비유

  • 서버 = 큰 건물, 여러 방마다 기능 있음
  • 엔드포인트 = 각 방의 문
  • 클라이언트 = 방문객, 문을 통해서만 방에 들어가 기능 사용 가능

 

이제 “API”와 “API 호출”을 근본부터 확실하게 짚어드릴게요.


1️⃣ API란?

  • API = Application Programming Interface
  • 쉽게 말하면 프로그램끼리 서로 대화할 수 있게 해주는 약속/규칙

핵심 포인트

  1. 인터페이스(interface) = 서로 소통할 수 있는 창구, 약속된 방법
  2. 프로그램끼리 소통 = 사람이 아니라 프로그램끼리 데이터를 주고받는 통로
  3. 기능 노출 = 내부 로직을 숨기고 필요한 기능만 제공

2️⃣ 일상 비유

  • 레스토랑:
    • 주방 = 서버(실제 기능)
    • 메뉴판/주문창구 = API
    • 주문(호출) = API 호출
    • 손님은 메뉴를 보고 주문만 하면, 주방 내부 구조를 알 필요 없음

3️⃣ API 호출이란?

  • API가 “서로 소통할 수 있는 약속”이라면
  • API 호출 = 그 약속을 실제로 실행하는 행동

즉, 클라이언트가 서버 API를 이용해 요청(Request)을 보내고, 응답(Response)을 받는 과정

예시: 웹 API

 
fetch('https://example.com/users')  // API 호출
  .then(response => response.json())
  .then(data => console.log(data));
  • fetch()API 호출
  • URL + HTTP 메서드 → 엔드포인트 지정
  • 서버에서 처리 후 결과 반환
더보기

fetch()에서 HTTP 메서드를 지정하는 방법을 단계별로 설명할게요.


1️⃣ 기본 fetch 사용

fetch('https://example.com/users')
  • URL만 지정 → 기본 HTTP 메서드 = GET
  • 즉, 별도로 지정하지 않으면 서버에 “데이터 조회(GET)” 요청

2️⃣ HTTP 메서드 지정 방법

fetch()는 두 번째 인자 옵션 객체를 받을 수 있어요:

 
fetch('https://example.com/users', {
  method: 'POST', // HTTP 메서드 지정
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ name: "Alice", age: 23 }) // 객체 -> JSON 문자열 변환 후 POST
});
  • method → HTTP 메서드 지정 (GET, POST, PUT, DELETE, PATCH 등)
  • headers요청 헤더
  • body → POST/PUT/PATCH에서 서버로 보내는 데이터

3️⃣ GET과 POST 예시 비교

GET 요청

 
fetch('https://example.com/users'); // URL만 지정 → 조회 요청

POST 요청

 
fetch('https://example.com/users', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: "Alice" })
});
  • POST → 서버에 데이터를 생성/전송
  • GET → 서버에서 데이터 조회

4️⃣ 요약

구성 요소 fetch에서 위치
엔드포인트 첫 번째 인자 (URL)
HTTP 메서드 두 번째 인자 객체의 method 속성
요청 헤더 두 번째 인자 객체의 headers
전송 데이터 두 번째 인자 객체의 body

💡 비유

  • URL = 주소
  • method = 문 열고 들어갈 행동(GET/POST 등)
  • headers/body = 편지 내용이나 포장

4️⃣ 정리

용어 의미
API 프로그램끼리 소통할 수 있게 만든 약속/규칙
API 호출 그 약속을 실제로 이용해서 요청을 보내고 응답을 받는 행동
엔드포인트 API 호출 시 데이터가 도착하는 최종 지점 / 출입구

💡 비유

  • API = 메뉴판
  • API 호출 = 주문
  • 서버 기능 수행 = 주방 요리
  • 결과 반환 = 요리 서빙
728x90
반응형