프리랜서 웹디자이너 웹퍼블리셔RELATION

[소스] curl() 서버간 통신

2026.03.27
서버 간 처리, 즉 서버에서 다른 서버로 직접 데이터를 POST/GET으로 주고받을때 사용하는 방식

1. API통신 
A 서버가 B 서버의 API를 호출해 데이터를 가져오거나 저장할 떄
-  결제 시스템(PG사 API), 로그인 인증(OAuth), 외부 데이터 연동(날씨, 지도 등)

2 마이크로서비스 구조
하나의 큰 서비스가 여러 작은 서비스로 나뉘어 있을 때, 서비스 간 통신은 대부분 서버 간 POST/GET 요청함
- 주문서비스 -> 결제서비스 -> 배송서비스

3. 백엔드 간 데이터 교환
프런트엔드에서 직접 호출하기 어려운 민감한 API를 백엔드끼리 호출 후 결과를 전달.
- 내부 ERP, CRP 시스템 연동

4. 자동화처리
크론잡(Cron job)이나 배치 작업에서 다른 서버로 데이터를 보내거나 받아오는 경우
- 매일 새벽에 외부 서버에서 데이터 수집 후 DB 업데이트

특징
- 사용자 개입 없음: 브라우저에서 폼 제출없이 서버코드 ( curl, Guzzle, file_get_contents 등)로 요청
- 보안중요 : 인증 토큰, HTTPS, 방화벽 설정 필수 
- 표준화 : REST API, GraphQL, SOAP 같은 프로토콜을 사용

 
<?php
 //세션 초기화
 $ch = curl("https://example.com/api");
 //옵션 설정
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //응답을 문자열로 반환
 curl_setopt($ch, CURLOPT_POST, true); // POST 요청
 curl_setopt($ch, CURLOPT_POSTFIELFDS, ['key' => 'value']); //전송 데이터 
 //실행 및 응답처리
 $responese = curl_exec($ch);
 curl_close($ch);
 echo $response;

 //JSON 응답이면
 json_decode($reponse, true)로 변환 후 사용
?>

자주 쓰는 옵션
CURLOPT_URL -
요청할 URL 지정
CURLOPT_RETURNTRANSFER - 응답을 문장열 변환
CURLOPT_POST - POST 요청 여부
CURLOPT_POSTFIELDS - POST 데이터 지정
CURLOPT_HTTPHEADER - 헤더 추가 (예 AUthorization  토큰)
CURLOPT_TIMEOUT - 요청 제한 시간 설정
 
전체목록

이 포스트 공유하기

  • 페이스북에 공유하기
  • 트위터에 공유하기
  • 네이버 블로그 카페에 공유하기
  • 네이버 밴드에 공유하기

코멘트 쓰기

코멘트를 입력해주세요
LOGIN JOIN