php에서 api 활용하는 방법 질문입니다.

php에서 api 활용하는 방법 질문입니다.

QA

php에서 api 활용하는 방법 질문입니다.

본문

알림톡 api를 php로 연동하려고 하는데

 

짧은 견해로 구글링해본결과 curl을 활용하여 연동하는것같은데요

 

그것 말고는 방법이 없을까요?

 

ajax로도 가능하긴합니다만,,

 

질문을 하는 이유는 알림톡 전송요청(post)은 느리다고 못느꼇는데 수신결과(get)가 느리더라고요

 

예를들어 10명에게 알림톡을 전송했고

 

10개의 수신결과 한번에 요청하면 오류가 나더라고요

 

1번 요청엔 1가지 내용만 들어가야하나봅니다.

 

그래서 for문으로 돌리는데 속도가 여간느린게 아니러라고요,,

 

혹시 다른방법이 있거나

 

curl밖에없다면 속도를 높일 수 있는 방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 4

curl 은 기본적으로 동기(sync)방식으로 동작합니다. 동기/비동기에 대한건 구글링 하시면 문서들이 많이 있으니 참고해보시구요. 위의 문제는 서버에 데이타 호출후 결과가 오기 까지 기다려야 하기 때문에 대기 시간이 길어지는 문제가 발생합니다.

 

이를 해결하기 위해서 몇가지 방법들이 존재하는데, PHP에서 사용하기 쉬운 방법은

1. curl 을 비동기로 호출하도록 코드 수정

2. 비동기로 호출가능한 라이브러리 사용

3. PHP를 멀티쓰레드 기반으로 동작 

 

1번의 경우 https://the7sign.github.io/php/2016/10/18/php-async-curl.html 를 참조하시고,

1.번의 경우는 약간 트릭이라서 예기치 않은 오류가 발생할 가능성이 있습니다. 이건 테스트를 통해서 안정성을 확보한 다음 사용하세요.

 

2.번의 경우는 guzzle 라이브러리를 사용하는것입니다. composer 기반에서 동작함으로, composer를 이용할수 있는 환경이어야 합니다.

 

개인적으로는 2번이 좋아 보이구요. 최근의 서비스가 외부 연동이 많아지고 있어, 알림톡이 아니더라도 비동기 호출을 해야 하는 경우는 많습니다. 한번 익혀두면, 여러모로 사용할수 있는곳이 많다는거죠.

 

3번은 더 복잡한 이해가 필요함으로 패스하겠습니다.(이걸 쓸거면 그냥 node 모듈을 쓰는게 더 좋습니다.)

 

 

 

우리가 아무리개발 해도 상대 방에서 즉 받는 쪽이 안받아주면 방법이없는거죠

 

정리를 하자면 우리가 0.1 초에 10번 보네도 받아서 처리하는 쪽이 처리를 해서 보네주고나서 우리가또그 정보를 가지고 처리하는 것이라 방법이 없도고 생각합니다.

 

근데요 우리 개발 자들이  배포하는 api를 공부하는 이유는

대부분의 api 는 베타 버전이라 생각하시면되요

어느정도 환경이 마련이 되면 유료로 전환이 되고 그런 문제는 받는 쪽에서 개선을 하게되거든요

어느정도 의 

알림 보내는데 아마 제한시간이 있을거예요 10개를 한번에 보내도 받는쪽에서 순차적으로 받아야하기에 약간의 시간차를 둔다고 들었던거 같습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 123,536 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT