호진방 블로그
커리어

프록시 API란 무엇일까요?

# 프록시 API에 대해 알아봅시다.

2024년 12월 10일

학습 배경

최근 다양한 기술과 용어들이 쏟아지는 환경에서, 프록시 API라는 용어가 자주 언급되고 있다는 것을 느꼈습니다. API의 개념에는 익숙하지만, 프록시 API에 대한 이해는 부족하다고 생각했습니다. 그래서 이번 포스팅에서는 프록시 API의 개념, 장단점, 활용 사례를 정리하고, 프론트엔드 개발자로서 어떻게 적용할 수 있을지에 대해 다뤄보겠습니다. 이 글을 통해 프록시 API를 보다 잘 이해하고, 실제 개발에 어떻게 활용할 수 있을지에 대한 유용한 정보를 제공하고자 합니다.


프록시 API

© 출처https://atomicdesign.bradfrost.com/chapter-2

프록시 API는 클라이언트와 서버 사이에서 중간 역할을 하는 API입니다. '프록시'라는 용어는 본래 "대리" 혹은 "중개"라는 의미를 가지고 있습니다. 네트워크 환경에서 프록시 서버는 클라이언트가 직접 접속하는 대신, 중간에서 요청을 처리하고 서비스를 제공합니다. 이 개념이 API 영역으로 확장되면서, 프록시 API는 클라이언트의 요청을 실제 서버로 전달하거나, 그 요청을 가공하여 서버에 전달하는 방식으로 작동합니다.

프록시 API의 작동 방식


프록시 API는 이 과정에서 요청과 응답을 변환하거나, 보안 및 추가 기능을 제공합니다. 예를 들어, 크로스 도메인 문제를 해결하거나, 보안을 강화하며, 요청 데이터를 검증하고 수정하는 등의 작업을 수행합니다.


프록시 API의 장점

보안 강화


크로스 도메인 문제 해결 (CORS)


유연한 데이터 가공


네트워크 성능 최적화


프록시 서버와 프록시 API의 차이점

프록시 서버


프록시 API


프론트엔드에서 프록시 API 활용

프론트엔드 개발 환경에서 프록시 API는 개발의 편리함과 생산성을 높여주는 중요한 기술입니다. 특히, React와 같은 프레임워크에서 개발 환경을 설정할 때 유용하게 활용할 수 있습니다.

1. React에서 프록시 설정

create-react-app을 사용하여 쉽게 프록시를 설정할 수 있습니다. 이를 통해 CORS 문제를 해결하거나, API 요청을 더 효율적으로 관리할 수 있습니다.

1.1. 프로젝트 생성

먼저, React 프로젝트를 생성합니다.

npx create-react-app my-app
cd my-app

1.2. 프록시 설정

package.json 파일에서 프록시 속성에 백엔드 서버 주소를 추가합니다. 예를 들어, 백엔드 서버가 http://localhost:5000에서 실행 중이라면 아래와 같이 설정합니다.

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:5000"
}

1.3. API 호출 코드

React 컴포넌트에서 API를 호출할 때는 별도의 백엔드 주소를 지정할 필요 없이, 상대 경로를 사용합니다.

import React, { useEffect, useState } from 'react';
 
function App() {
  const [data, setData] = useState(null);
 
  useEffect(() => {
    fetch('/api/data') // 실제 요청은 http://localhost:5000/api/data로 전송됩니다.
      .then((response) => response.json())
      .then((data) => setData(data))
      .catch((error) => console.error('Error fetching data:', error));
  }, []);
 
  return (
    <div>
      <h1>Data from API</h1>
      {data ? <pre>{JSON.stringify(data, null, 2)}</pre> : <p>Loading...</p>}
    </div>
  );
}
 
export default App;

1.4. 동작 확인

npm start 명령어로 개발 서버를 실행한 후, 브라우저의 네트워크 탭에서 요청이 실제로 프록시를 통해 전달되는지 확인할 수 있습니다.


개발 환경에서의 프록시 API 사용 시 장점


백엔드에서의 프록시 API

© 출처 https://cloud.google.com/apigee/docs/api-platform/fundamentals/understanding-apis-and-api-proxies?hl=ko

백엔드에서는 클라이언트의 요청을 처리하고, 실제 데이터를 반환하는 API를 구현합니다. 프록시 API를 통해 전달된 요청을 받아 적절한 응답을 반환하는 방식으로 작동합니다.

서비스 환경에서의 추가 설정


결론

프록시 API를 사용하면 프론트엔드와 백엔드 간의 연결이 보다 안전하고 효율적입니다. 프론트엔드 개발에서는 특별히 복잡하지 않게 사용할 수 있으며, 보안 강화, CORS 문제 해결, 데이터 가공 측면에서 확실한 이점을 제공합니다. 또한 백엔드에서는 이러한 설정을 통해 다양한 기능을 처리하고, 서비스 환경에서 안정성을 높일 수 있습니다. 프록시 API는 프론트엔드와 백엔드의 효율적인 연결 고리로서, 실제 서비스 환경에서 중요한 역할을 합니다.




me
@banhogu
안녕하세요 배움을 나누며 함께 전진하는 1년차 주니어 개발자 방호진입니다.