예약 작업으로 무엇을 할 수 있나요?
자동화할 수 있는 작업이 너무 많습니다. 먼저 몇 가지 일반적인 사용 사례를 나열해 보겠습니다.
소셜 미디어 동적 모니터링: 특정 사용자 활동을 정기적으로 추적하고 인기 있는 주제를 모니터링합니다. 데이터 수집 및 분석: 웹사이트 기사, 댓글 정보 등을 정기적으로 크롤링합니다. 자동화된 마케팅: 예약된 간격으로 소셜 미디어에 자동으로 게시합니다. 개인 자동화: 시간 알림 및 작업 관리
과거에는 이러한 예약된 자동화 작업을 구현하는 것이 상당히 번거로웠습니다. 종종 프로그래밍 언어(예: Python)를 숙달하거나, 서버 또는 클라우드 플랫폼을 구성하거나, 다양한 상황을 처리하기 위해 복잡한 스크립트를 작성해야 했습니다. 이는 비기술직 또는 시간이 부족한 개발자에게 상당한 장벽이 되곤 했습니다.
하지만 이제 Apidog의 "예약 작업" 기능을 사용하면 이러한 자동화 시나리오를 기본적으로 쉽게 처리할 수 있습니다.
Apidog에서 크롤러 및 모니터링과 같은 자동화된 타이밍 작업을 구현하는 것은 대략 다음 단계로 나눌 수 있습니다.
- API 가져오기
- 반환된 데이터 분석
- 테스트 시나리오 구성
- 예약 작업 설정
아래에서는 이러한 단계를 기반으로 Apidog에서 작동하는 방법을 설명하겠습니다. 귀하의 요구 사항이 무엇이든, 다음 내용이 영감을 줄 수 있을 것입니다.
API 가져오기
특정 플랫폼의 소셜 미디어 동향을 모니터링하거나 특정 플랫폼에서 데이터를 크롤링하려면 첫 번째 단계는 이 작업을 구현하는 API를 얻는 것입니다. 그래서 질문이 생깁니다. 이러한 API는 어디에서 찾을 수 있을까요?
공식 "오픈 플랫폼"에 접속하여 관련 공개 인터페이스가 있는지 확인할 수 있습니다. 이것이 가장 공식적인 방법입니다. 일반적으로 프런트엔드에서 표시될 수 있는 페이지에는 해당 API가 제공됩니다.
예를 들어, GitHub에서 특정 프로젝트의 별표 수를 모니터링하고 싶다고 가정해 봅시다. 이때 GitHub의 오픈 플랫폼으로 이동하여 관련 API가 제공되는지 확인할 수 있습니다. 만약 있다면, 직접 복사하여 사용하면 됩니다.

공개 API를 요청할 때는 토큰이 필요하며, 일반적으로 개발자 백그라운드에서 생성할 수 있습니다.

공식 플랫폼에서 API를 찾는 것 외에도, 브라우저에서 패킷을 캡처하거나 GitHub에서 일부 오픈 소스 프로젝트를 찾을 수도 있습니다. 구체적인 작동 방법은 이 글의 마지막 확장 섹션에서 확인할 수 있습니다.
반환된 데이터 분석
이제 관련 API를 얻는 방법을 알았으니, 다음 단계는 반환된 데이터를 분석하여 어떤 유용한 정보가 있는지 확인하는 것입니다. 일반적으로 이러한 API는 JSON 형식으로 데이터를 반환하며, 각 필드가 무엇을 의미하는지 주의 깊게 살펴봐야 합니다.
예를 들어, 아래의 공개 API에 접속하면 GitHub의 특정 오픈 소스 프로젝트에 대한 저장소 정보를 얻을 수 있습니다.
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/{owner}/{repo}
여기서 {owner}는 저장소 소유자의 사용자 이름 또는 조직 이름이며, {repo}는 저장소 이름입니다. 이 정보를 찾으려면 GitHub 저장소의 URL을 확인하기만 하면 됩니다.
- 보려는 GitHub 프로젝트 페이지를 엽니다.
- 브라우저 주소 표시줄의 URL을 보면 다음과 같은 형식입니다:
https://github.com/{owner}/{repo} - URL의 첫 번째 슬래시 다음 부분이
{owner}이고, 두 번째 슬래시 다음 부분이{repo}입니다.

Apidog에서는 위의 cURL 명령 내용을 직접 복사하여 새 API 요청을 생성하거나, 요청 헤더에 토큰을 추가하면서 요청 메서드와 URL을 수동으로 설정할 수 있습니다.

요청을 보내면 다음과 같은 JSON 응답을 받게 됩니다.
{
"id": 468576060,
"name": "openai-cookbook",
"full_name": "openai/openai-cookbook",
"stargazers_count": 59366,
...
}
원시 JSON 데이터를 얻은 후 다음 단계는 데이터 처리입니다. Apidog에서는 JSONPath 표현식을 사용하거나 간단한 스크립트를 작성하여 이를 달성할 수 있습니다.
예를 들어, JSONPath를 사용하여 특정 필드를 추출하려면 "후처리"에 "변수 추출" 작업을 추가하고 해당 표현식을 채울 수 있습니다. 표현식 작성에 익숙하지 않다면 "JSONPath 표현식" 입력 상자의 아이콘을 클릭하여 JSONPath 추출 도구를 보조 도구로 사용할 수 있습니다.

추출된 데이터는 환경 변수에 임시로 저장되며, 이후 단계에서 서버로 전송하거나 데이터베이스에 저장할 수 있습니다.
일반적인 JSON 형식 외에도 전체 HTML 문서를 직접 반환하는 유형이 있는데, 이는 서버 측 렌더링 시나리오에서 매우 흔합니다. 이를 위해서는 스크립트를 사용하여 처리해야 합니다.
Apidog에서는 "후처리"에서 새로운 "사용자 지정 스크립트"를 생성하고 fox.liveRequire 메서드를 사용하여 htmlparser2 라이브러리를 참조하여 HTML 형식 데이터를 처리할 수 있습니다.
예를 들어, HTML에서 모든 <article> 태그와 그 내부 내용을 추출하여 텍스트 형식으로 변환하려면 다음과 같은 스크립트를 작성할 수 있습니다.
fox.liveRequire("htmlparser2", (htmlparser2) => {
console.log(htmlparser2);
// HTML string (generally read from interface return data)
const htmlString = `
<html>
<body>
<article>
<h1>Title</h1>
<p>This is a paragraph.</p>
<p>Another piece of text.</p>
</article>
<footer>Footer content</footer>
</body>
</html>
`;
// Parse document
const document = htmlparser2.parseDocument(htmlString);
// Use DomUtils to find <article> tags
const article = htmlparser2.DomUtils.findOne(elem => elem.name === "article", document.children);
// Convert content in <article> to complete HTML fragment
if (article) {
const articleHTML = htmlparser2.DomUtils.getOuterHTML(article);
console.log(articleHTML);
} else {
console.log("No <article> tag found.");
}
})

스크립트를 통한 HTML 형식 콘텐츠 처리는 여기에서 자세히 다루지 않겠습니다. 이를 단순히 "DOM 조작"으로 이해하시면 됩니다. 구체적인 내용은 AI에게 문의할 수 있습니다.
테스트 시나리오 구성
API 준비 및 데이터 분석이 완료되었으니, 다음 단계는 자동화된 테스트에서 테스트 시나리오를 구성하는 것입니다.
Apidog에서는 자동화된 테스트에서 테스트 시나리오를 생성하고 준비된 API 요청을 가져올 수 있습니다.

처리된 데이터를 데이터베이스에 삽입해야 하는 경우, "후처리"에서 새로운 "데이터베이스 작업"을 생성하고 SQL 명령을 통해 처리된 데이터를 데이터베이스에 삽입할 수 있습니다. SQL 명령은 환경 변수에서 값을 읽는 것을 지원합니다. 예를 들어:

INSERT INTO monitoring_data (project_name, star_count, updated_time)
VALUES ('{{project_name}}', {{star_count}}, NOW())
또한, API를 통해 처리된 데이터를 저장할 수 있습니다. 즉, 데이터를 서버에 저장하기 위한 자체 API를 작성하거나 웹훅을 통해 데이터를 타사 플랫폼으로 보낼 수 있습니다.
예를 들어, 처리된 데이터를 Feishu(Lark)로 보내려면 테스트 시나리오에 새 테스트 단계를 추가하고 Feishu에서 제공하는 웹훅 API를 사용하여 메시지를 보낼 수 있습니다. 이 과정에서 "동적 값"을 통해 이전 단계의 실행 결과를 읽을 수 있어 데이터 처리가 더욱 편리해집니다.

데이터 그룹을 반복하거나, 반환된 필드가 특정 조건을 충족해야만 실행을 계속하도록 하려면 테스트 단계에 "흐름 제어 조건"을 추가할 수도 있습니다.

테스트 시나리오 구성이 완료되면 테스트를 실행하여 효과를 확인할 수 있습니다. 전체 테스트 시나리오에 오류가 없는지 확인하고 데이터가 성공적으로 전송되었는지 확인합니다. 구성된 테스트 시나리오에 문제가 없다면 다음 단계인 예약 작업 설정으로 진행할 수 있습니다!
예약 작업 설정
Apidog에서 예약 작업을 설정하는 것은 매우 간단합니다. 하지만 예약 작업을 사용하기 위한 전제 조건은 서버에 Runner를 이미 배포했어야 한다는 것입니다. Runner 설치 및 구성 과정에 대한 자세한 가이드를 참조할 수 있습니다.
Runner를 이미 배포했다고 가정하면, 이제 이전에 구성된 테스트 시나리오에 예약 작업을 추가하여 정해진 시간에 실행되도록 하여 자동화된 모니터링을 달성할 수 있습니다.
Apidog의 자동화된 테스트에서 "예약 작업" 모듈을 찾아 새 예약 작업을 생성합니다. 구성 인터페이스에서 다음 옵션을 볼 수 있습니다.
- 작업 이름: 작업에 "일일 GitHub 별표 수 모니터링"과 같은 설명적인 이름을 지정합니다.
- 테스트 시나리오: 예약된 모니터링 또는 크롤러 테스트 시나리오와 같이 정기적으로 실행해야 하는 테스트 시나리오를 선택합니다.
- 실행 주기 설정: 예를 들어, 매일 오후 6시에 한 번 실행합니다.
- 실행 환경: 배포된 Runner 서비스를 선택합니다.
- 알림 설정: 작업 완료 후 알림 방법을 지정합니다. 이메일, DingTalk 등이 될 수 있습니다.

설정 및 저장 후, 이 예약 작업에 포함된 테스트 시나리오는 설정된 실행 주기에 따라 정기적으로 실행되며, 우리는 자동화된 예약 모니터링 목표를 달성했습니다.

확장
위의 "API 가져오기" 섹션에서 공식 공개 플랫폼에서 API를 찾는 것 외에도, 브라우저에서 직접 패킷을 캡처할 수도 있습니다.
다음은 예시입니다:
웨이보 인기 주제를 모니터링하고 싶다고 가정해 봅시다. 브라우저에서 웨이보 인기 페이지를 열고, F12 또는 Ctrl + Shift + I를 눌러 개발자 도구를 연 다음, 네트워크 탭으로 전환합니다. 페이지를 새로 고치면 많은 요청이 표시됩니다. 인기 데이터를 가져오는 요청을 찾아 마우스 오른쪽 버튼을 클릭하고 cURL로 복사합니다. 그런 다음 Apidog를 열고 새 인터페이스를 생성한 다음 방금 복사한 cURL을 입력 상자에 붙여넣습니다. Apidog가 자동으로 파싱해 줄 것입니다. 정말 편리합니다!

패킷 캡처 외에도 일부 타사 개발자들이 특정 서비스 API를 역설계했을 수도 있습니다. 필요하다면 GitHub에서 검색하여 직접 사용할 수 있습니다.
결론
이것으로 이 글의 내용을 마칩니다. Apidog의 예약 작업 기능을 사용하여 흥미로운 자동화 작업을 구현하는 데 영감을 얻으셨기를 바랍니다. 멋진 아이디어나 활용 사례가 있다면 Apidog 사용자 커뮤니티에 자유롭게 공유해 주세요. 개인적인 사용 팁이든 어려운 문제 해결을 위한 아이디어든, 무엇이든 환영합니다!
