본문으로 건너뛰기
버전: 2506.1
  • SPARROW On-Demand Node SDK는 Typescript를 지원합니다.

요구사항

  • Node.js 20 이상
    Active LTS 혹은 Maintenance LTS releases를 사용해야 합니다. 자세한 내용은 Node.js Release를 참고해주세요.

개발 환경 설정

  • Yarn
    Yarn을 통해 sdk를 설치할 수 있습니다.

    yarn add 'sparrow-ondemand-node-sdk:{latest version}'
  • 로컬 .tgz 사용
    로컬에 위치한 .tgz 파일을 사용하려면 아래와 같이 설치를 진행합니다.

    yarn add ./sparrow-ondemand-node-sdk-2504.1.tgz

토큰 발급


초기화

ondemand 분석 관련 요청을 위해 아래의 코드를 추가해 OndemandClient 인스턴스를 생성합니다.

import {
OndemandClient,
OndemandClientConfig
} from "sparrow-ondemand-node-sdk"

// config
const config = new OndemandClientConfig({apiKey : 발급 받은 토큰});

// create client
const OndemandClient = new OndemandClient(config);

OndemandClientConfig 는 OndemandClient 생성시 설정 값 지정을 위해 사용됩니다.

  • apiKey : api 요청시 인증을 위해 3에서 발급 받은 토큰 입력

분석 메소드

생성한 client의 메소드를 통해 분석을 수행합니다. 메소드 동작시 OndemandException이 발생 할 수 있습니다. 예외에 대한 자세한 내용은 아래를 참고해주세요

1. 분석 요청

생성한 client로 분석 요청을 전송할 수 있습니다.

import { ScanResponse } from 'sparrow-ondemand-node-sdk';

const scanResponse: ScanResponse = await client.doAnalysis(analysisRequest);

파라미터

  • analysisRequest 필수 object
    분석 요청 정보를 담는 객체이며, 각 분석 타입 별로 analysisRequest를 생성 할 수 있는 getSastAnalysisRequest, getScaAnalysisRequest, getDastAnalysisRequest 함수를 제공합니다.

    • getSastAnalysisRequest
      analysisSource, options를 인자로 전달해 SastAnalysisRequest를 생성합니다.

      import {
      getSastAnalysisRequest,
      SastOption
      } from "sparrow-ondemand-node-sdk"

      const sastAnalysisRequest = getSastAnalysisRequest({
      analysisSource: ...,
      options : [new SastOption(...), ...]
      })
      • analysisSource 필수 object
        분석할 파일이 저장된 저장소이며 VCS , ObjectStorage 타입을 지원합니다.

        • Vcs

          • url 필수 string
            분석할 파일이 저장된 저장소의 url입니다.
          • branch string
            저장소 중 분석하려는 파일이 업로드된 브랜치의 이름입니다. 입력하지 않았을 때 default 브랜치를 타겟으로 분석합니다.
          • tag string
            분석하려는 브랜치의 태그 정보입니다.
          • commitId string
            분석 하려는 커밋 아이디 정보입니다.
          • id string
            VCS 인증을 위한 id입니다.
          • password string
            VCS 인증을 위한 password입니다. id와 같이 입력돼야 하며 authToken과 동시에 입력될 수 없습니다.
          • authToken string
            VCS 인증을 위한 authToken 이며 id, password와 동시에 입력될 수 없습니다.
        • ObjectStorage

          • bucket 필수 string
            분석할 파일의 bucket입니다.
          • object 필수 string
            분석할 파일의 object 경로입니다.
          • endPoint 필수 string
            분석할 버켓이 위치한 endPoint입니다.
          • accessKey string
            인증을 위한 accessKey입니다.
          • secretKey string
            인증을 위한 인증을 secretKey입니다.
      • options SastOption[ ]

        • SastOption object
          • key 필수 string
            Sast 분석 옵션 키
          • value 필수 any
            Sast 분석 옵션 value이며 디폴트 값이 존재합니다.
    • getScaAnalysisRequest
      analysisSource, options를 인자로 전달해 ScaAnalysisRequest를 생성합니다.

      import {
      getScaAnalysisRequest,
      ScaOption
      } from "sparrow-ondemand-node-sdk"

      const scaAnalysisRequest = getScaAnalysisRequest({
      analysisSource: ...,
      options : [new ScaOption(...), ...]
      })
      • analysisSource 필수 object
        분석할 파일이 저장된 저장소이며 VCS , ObjectStorage 타입을 지원합니다.

        • Vcs

          • url 필수 string
            분석할 파일이 저장된 저장소의 url입니다.
          • branch string
            저장소 중 분석하려는 파일이 업로드된 브랜치의 이름입니다. 입력하지 않았을 때 default 브랜치를 타겟으로 분석합니다.
          • tag string
            분석하려는 브랜치의 태그 정보입니다.
          • commitId string
            분석 하려는 커밋 아이디 정보입니다.
          • id string
            VCS 인증을 위한 id입니다.
          • password string
            VCS 인증을 위한 password입니다. id와 같이 입력돼야 하며 authToken과 동시에 입력될 수 없습니다.
          • authToken string
            VCS 인증을 위한 authToken 이며 id, password와 동시에 입력될 수 없습니다.
        • ObjectStorage

          • bucket 필수 string
            분석할 파일의 bucket입니다.
          • object 필수 string
            분석할 파일의 object 경로입니다.
          • endPoint 필수 string
            분석할 버켓이 위치한 endPoint입니다.
          • accessKey string
            인증을 위한 accessKey입니다.
          • secretKey string
            인증을 위한 인증을 secretKey입니다.
      • options ScaOption [ ]

        • ScaOption object
          • key 필수 string
            Sca 분석 옵션 키
          • value 필수 any
            Sca 분석 옵션 value
    • getDastAnalysisRequest
      analysisSource, options를 인자로 전달해 DastAnalysisRequest를 생성합니다.

      import {
      getDastAnalysisRequest,
      DastOption
      } from "sparrow-ondemand-node-sdk"

      const dastAnalysisRequest = getDastAnalysisRequest({
      targetUrl: "...",
      records: [...],
      options: [new DastOption(...), ...],
      })
      • targetUrl 필수 string
        웹 취약점 분석의 대상인 URL입니다.
      • records string[ ]
        웹 취약점 분석에 사용할 로그인 기록 파일 문자열입니다.
      • options DastOption[ ]
        • DastOptionobject
          • key 필수 string
            Dast 분석 옵션 키
          • value 필수 any
            Dast 분석 옵션 value

응답

  • ScanResponse object
    • requestId number
      분석 요청 id입니다.

예시 코드

Sast Vcs 분석 , Sca ObjectStorage 분석, Dast 분석을 요청하는 예시 코드입니다.

// Sast
import {
getSastAnalysisRequest,
VcsSource,
SastOption,
ScanResponse,
} from 'sparrow-ondemand-node-sdk';

const VcsSastAnalysisSource: VcsSource = {
type: 'Vcs',
source: {
url: 'gitUrl',
branch: 'branch',
tag: 'tag',
commitId: 'commitId',
id: 'id',
password: 'password',
authToken: 'authToken',
// id, password 또는 authToken만 설정
},
};

const sastOption = new SastOption('extensions', ['*']);

const sastAnalysisRequest = getSastAnalysisRequest({
analysisSource: VcsSastAnalysisSource,
options: [sastOption],
});

const scanResponse: ScanResponse = await client.doAnalysis(sastAnalysisRequest);

//Sca
import {
getScaAnalysisRequest,
ObjectStorageSource,
ScaOption,
ScanResponse,
} from 'sparrow-ondemand-node-sdk';

const ObjectStorageAnalysisSource: ObjectStorageSource = {
type: 'ObjectStorage',
source: {
bucket: 'bucket',
object: 'object',
endPoint: 'https://s3.ap-northeast-2.amazonaws.com',
accessKey: 'accessKey',
secretKey: 'secretKey',
},
};

const scaOption = new ScaOption('extensions', ['*']);

const scaAnalysisRequest = getScaAnalysisRequest({
analysisSource: ObjectStorageAnalysisSource,
options: [scaOption],
});

const scanResponse: ScanResponse = await client.doAnalysis(scaAnalysisRequest);

//Dast
import {
getDastAnalysisRequest,
DastOption,
ScanResponse,
} from 'sparrow-ondemand-node-sdk';

const dastOption = new DastOption('crawler.target.contain_entire_seed', true);

const dastRequest = getDastAnalysisRequest({
targetUrl: 'testURL',
records: ['record'],
options: [dastOption],
});

const scanResponse: ScanResponse = await client.doAnalysis(dastAnalysisRequest);

분석 도구 별로 생성한 AnalysisRequest를 파라미터로 doAnalysis 메소드를 호출합니다.
응답으로 ScanResponse의 requestId를 확인할 수 있습니다.


2. 분석 상태 확인

분석 요청이 정상적으로 됐다면 진행 중인 분석 상태를 확인 할 수 있습니다.

import { AnalysisStatus } from 'sparrow-ondemand-node-sdk';

const analysisStatus: AnalysisStatus =
await client.getAnalysisStatus(requestId);

파라미터

  • requestId 필수 number
    분석 요청 id입니다.

반환값

  • Analysis object
    • requestId number 분석 요청 id
    • index number
      요청 시 분석 인덱스
    • status string
      분석 상태
    • result string
      분석 상태
    • progress number
      분석 진행률
    • toolType string
      분석 타입
    • startTime string 분석 시작 시간
    • endTime string 분석 종료 시간
    • issueCount number
      분석에서 검출된 총 이슈의 수
    • issueCountRisk1 number
      위험도가 '낮음'에 해당하는 이슈 수
    • issueCountRisk2 number
      위험도가 '보통'에 해당하는 이슈 수
    • issueCountRisk3 number
      위험도가 '높음'에 해당하는 이슈 수
    • issueCountRisk4 number
      위험도가 '위험'에 해당하는 이슈 수
    • issueCountRisk5 number
      위험도가 '매우 위험'에 해당하는 이슈 수
    • resultSchemaVersion string
      분석 결과 형식 버전

예시 코드

import { AnalysisStatus } from 'sparrow-ondemand-node-sdk';

let analysisStatusResponse = null;

while (true) {
analysisStatusResponse = await client.getAnalysisStatus(
analysisRequestResponse.requestId,
);
if (analysisStatusResponse.result === null) {
console.log('분석이 진행 중');
// 20초 대기
await new Promise((resolve) => setTimeout(resolve, 20000));
} else {
console.log('분석 종료', analysisStatusResponse);
break;
}
}

3. 분석 결과 다운로드

분석이 완료됐다면 분석 결과 파일을 다운로드 받을 수 있습니다.

await client.downloadAnalysisResult({
requestId,
index,
filePath,
});

downloadAnalysisResult 메소드를 호출하면 지정한 file path에 분석 결과 파일이 다운로드됩니다.

파라미터

  • requestId 필수 number
    분석 요청 id입니다.
  • index 필수 number
    분석 시 분석 리스트 index
  • filePath 필수 string
    분석 다운로드 file path 입니다. path에는 파일 이름까지 명시돼야하며 zip 확장자만 지원합니다.
    ex) /home/result.zip

반환값

Promise<void>


4. 분석 중지

진행 중인 분석을 중지할 수 있습니다.

await client.stopAnalysis(requestId);

파라미터

  • requestId 필수 number
    분석 요청 id입니다.

반환값

Promise<void>



OndemandException

OndemandException은 RuntimeException을 통해 예외를 전달하며 두가지로 분류됩니다.

  • OndmandClientException
    온디맨드 서비스에 요청을 보내거나 응답 처리 로직을 수행할 때 클라이언트단에 발생합니다.
    • resultCode string
      exception 발생 원인 코드 정보를 담고 있습니다.
    • message string
      예외 메시지를 담고있습니다.
  • OndmandServerException
    온디맨드 서비스가 성공적으로 요청을 받았지만 처리하지 못해 에러 응답을 반환하는 경우 발생합니다.
    • resultCode string
      exception 발생 원인 코드 정보를 담고 있습니다.
    • message string
      예외 메세지를 담고있습니다.
    • statusCode number
      응답 상태 코드를 나타냅니다.
    • errors any[ ]
      요청 유효성 검증 실패 시 서버에서 반환되는 상세 실패 메시지입니다.

ANALYSIS_STATUS

분석 상태를 나타내며 7가지로 구분됩니다.

  • INIT
    분석을 진행 하기 위한 초기화 진행 중임을 나타냅니다.
  • READY
    초기화 완료 후 분석 준비 진행 중임을 나타냅니다.
  • PRE_PROCESS
    분석을 위한 전처리 진행 중임을 나타냅니다.
  • ANALYSIS
    분석 진행 중임을 나타냅니다.
  • POST_PROCESS
    분석이 완료 된 후 결과 처리 진행 중임을 나타냅니다.
  • COMPLETE
    분석 , 결과 처리 모두 완료된 상태를 나타냅니다.
  • STOP
    분석이 중지된 상태를 나타냅니다.

ANALYSIS_RESULT

분석 결과값을 나타냅니다.

  • SUCCESS
    분석이 성공했음을 의미합니다.
  • FAIL
    분석이 실패했음을 의미합니다.
  • STOPPED 분석이 중지됐음을 의미합니다.

분석 옵션

소스코드 분석 옵션

  • maxSourceSize 최대 소스 크기 소스코드 분석 또는 오픈소스 분석에서 검사할 분석 대상의 최대 크기입니다. 소스코드 분석 또는 오픈소스 분석을 수행하는 동안 내려받은 분석 대상의 크기가 SOURCE_SIZE보다 크면 분석이 종료됩니다. 1부터 200 사이의 정수를 입력할 수 있습니다.(단위: MB)

  • extensions 분석 대상 파일 확장자 목록 소스코드 분석은 분석 대상에 포함시킬 파일을 확장자(FILE_EXTENSION1, FILE_EXTENSION2)로 구분합니다. 여기에 해당하지 않는 파일은 분석에서 제외됩니다. *로 입력하는 경우 모든 파일을 분석합니다.

    입력 예시

    • ["java", "go"]
    • ["*"]

    Tip: 압축 파일의 경우 압축 파일의 확장자가 분석 대상자에 해당하면 압축 파일 안에 있는 모든 파일이 분석에 포함됩니다.

  • excludedPath 분석 제외 경로 분석에서 제외할 파일이 있는 경우 해당 파일의 경로(EXCLUDED_PATH1, EXCLUDED_PATH2, EXCLUDED_PATH3)를 입력합니다. 여기에 입력한 경로에 포함된 파일로부터 이슈가 검출되지 않게 됩니다.

    입력 예시

    • /User/jkw/ddde
    • /home/sparrow/*
    • \*/dev/\*

    Tip: 대소문자를 구분하지 않으며 *를 사용할 수 있습니다.

    • *AA*: AA가 포함된 모든 문자열과 일치
    • AA* : AA로 시작하는 모든 문자열과 일치

오픈소스 분석 옵션

  • maxSourceSize 최대 소스 크기 소스코드 분석 또는 오픈소스 분석에서 검사할 분석 대상의 최대 크기입니다. 소스코드 분석 또는 오픈소스 분석을 수행하는 동안 내려받은 분석 대상의 크기가 SOURCE_SIZE보다 크면 분석이 종료됩니다. 1부터 200 사이의 정수를 입력할 수 있습니다.(단위: MB)

  • sbomTypes SBOM 유형 목록 빈 목록의 경우 SBOM을 생성하지 않습니다. 다음과 같은 값을 입력할 수 있습니다.

    • SPDX 2.2: SPDX22 (.spdx), SPDX22_JSON (.json), SPDX22_SPREADSHEET (.xlsx), SPDX22_RDF (.rdf)
    • SPDX 2.3: SPDX23 (.spdx), SPDX23_JSON (.json), SPDX23_SPREADSHEET (.xlsx), SPDX23_RDF (.rdf)
    • SPDX 3.0: SPDX30_JSON (.json)
    • CycloneDX: CycloneDX14, CycloneDX15, CycloneDX16 (.json)
    • SWID: SWID (.zip)
    • NIS SBOM: NIS_CSV (.csv), NIS_PDF (.pdf), NIS_JSON (.json)
  • sbomCreatorUsername SBOM 생성자

  • sbomCreatorEmail SBOM 생성자 이메일

웹취약점 분석 옵션

  • crawlerTargetSeedUrls 분석 대상 URL 분석할 URL이며 하나만 입력할 수 있습니다.

    분석 대상 URL을 입력할 때는 해당 URL에 외부 인터넷이 접근할 수 있는지, 해당 서버에 방화벽이 동작하고 있지 않은지 확인해야 합니다.

  • commonRecordsLogin 로그인 기록 파일 목록 로그인 기록 파일은 이벤트 클립보드에서 저장한 .ecl 형식의 파일로써 특정 URL에서 사용자의 동작이 기록되어 있습니다. 주로 사용자가 특정 URL에서 로그인하는 데 사용한 ID 및 비밀번호 정보를 저장하여 URL을 수집하거나 분석할 때 사용합니다.

    로그인 기록 파일을 첨부하는 경우 URL 수집 및 분석 중에 이벤트 클립보드의 기록이 시작된 URL에 도달하면 해당 파일에 저장된 사용자의 동작을 그대로 재현하게 됩니다. 이러한 방법으로 로그인 페이지에서 필요한 인증을 통과할 수 있습니다.

  • crawlerTargetContainEntireSeed 하위 경로만 수집 하위 경로만 수집은 프로젝트에 입력한 분석 대상 URL을 모두 포함하는 경로만 수집하는지를 의미하며 true, false로 구분합니다.(기본값: true) 이 옵션을 true로 설정하면 분석 대상 URL을 포함한 하위 경로만 분석하게 됩니다. 이 옵션을 false로 설정하면 프로젝트의 분석 대상 URL에 포함된 상위 경로도 분석하게 됩니다.

  • crawlerRequestAcceptLanguage 클라이언트 언어 분석 대상인 웹 애플리케이션이 표시되는 브라우저에서 어떤 언어를 설정했고, HTTP 클라이언트가 어떤 언어를 이해할 수 있는지 설정합니다. 언어_지역으로 표시되는 로케일 형식으로 입력할 수 있습니다.(기본값: ko_KR)

  • crawlerCrawlMaxUrl 최대 수집 URL 수

    최대 수집 URL 수는 분석에서 수집할 수 있는 URL 수의 최대 개수입니다. 너무 많은 URL이 수집될 경우 분석 결과가 정확하지 않을 수 있습니다. 따라서 이 옵션에서 수집할 URL의 최대 개수를 지정하는 것이 좋습니다.(기본값: 0)

    이 옵션에 입력된 값이 클수록 수집할 수 있는 URL의 개수가 늘어나지만 수집을 위한 분석 시간도 증가할 수 있습니다. 이 옵션에 입력된 값이 적을수록 수집할 수 있는 URL 개수가 줄어들어 분석 시간도 줄어듭니다. 아무것도 입력하지 않는 경우 옵션의 기본값은 0이며 이 경우에 수집할 수 있는 URL의 개수를 제한하지 않게 됩니다.

  • crawlerCrawlTimeout 최대 수집 시간

    최대 수집 시간은 분석에서 URL을 수집할 수 있는 최대 시간입니다. 너무 많은 시간이 걸리는 경우 분석 결과가 정확하지 않을 수 있습니다. 따라서 이 옵션에서 수집 시간을 지정하는 것이 좋습니다.(단위: 분, 기본값: 0)

    이 옵션에 입력된 값이 클수록 수집을 위한 분석 시간이 증가하고 수집할 수 있는 URL의 개수도 늘어날 수 있습니다. 이 옵션에 입력된 값이 적을수록 분석 시간이 감소하고 수집할 수 있는 URL의 개수가 줄어들 수 있습니다. 아무것도 입력하지 않는 경우 옵션의 기본값은 0이며 이 경우에 수집할 수 있는 시간을 제한하지 않게 됩니다.

  • analyzerAnalyzeTimeout 최대 분석 시간

    최대 분석 시간은 분석에서 URL을 분석할 수 있는 최대 시간입니다. 너무 많은 시간이 걸리는 경우 분석 결과가 정확하지 않을 수 있습니다. 따라서 이 옵션에서 분석 시간을 지정하는 것이 좋습니다.(단위: 분, 기본값: 0)

    이 옵션에 입력된 값이 클수록 분석 시간이 증가하고 분석의 결과도 늘어날 수 있습니다. 이 옵션에 입력된 값이 적을수록 분석 시간이 감소하고 분석의 결과도 줄어들 수 있습니다. 아무것도 입력하지 않는 경우 옵션의 기본값은 0이며 이 경우에 분석할 수 있는 시간을 제한하지 않게 됩니다.

  • crawlerSkipUrl 제외할 수집 URL

    제외할 수집 URL은 URL에 특정 단어가 포함된 경우 해당 URL을 수집하지 않고 건너뛰는 문자열 목록을 가리킵니다. 하나 이상의 문자열을 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.

    이 옵션에 입력한 목록에 해당하는 단어가 하나라도 수집하려는 URL에 포함되었다면 해당 URL을 수집하지 않게 됩니다. 단, URL을 수집하기 직전에 건너뛰기 때문에 브라우저가 해당 URL에 방문할 수 있습니다.

  • analyzerSkipUrl 제외할 분석 URL

    제외할 분석 URL은 URL에 특정 단어가 포함된 경우 해당 URL을 분석하지 않고 건너뛰는 문자열 목록을 가리킵니다. 하나 이상의 URL을 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.

    이 옵션에 입력한 목록에 해당하는 단어가 하나라도 분석하려는 URL에 포함되었다면 해당 URL을 분석하지 않게 됩니다.

    Tip: URL로 표시되는 페이지 전체가 아니라 페이지의 동작을 분석에서 제외하려는 경우 아래에 있는 이벤트 수행 제외 요소 옵션을 사용하세요.

  • crawlerSkipUrlSuffix 제외할 URL 접미사

    제외할 URL 접미사는 URL의 끝에 특정 단어나 확장자가 포함된 경우 해당 URL을 수집하지 않고 건너뛰는 접미사 목록을 가리킵니다. 마침표(.)로 시작하는 확장자 형식으로 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.(기본값: .js .jsx .ts .tsx .css .xml .jpg .jpeg .gif .bmp .png .ico .wma .wav .mp3 .wmv .avi .mp4 .mov .exe .zip .tar .tar.gz .7z .doc .xls .ppt .docx .xlsx .pptx .pdf .txt .csv .jar .eot .woff2 .woff .ttf .otf .apk .hwp .svg .msi)

    이 옵션에 입력한 목록에 해당하는 단어가 하나라도 수집하려는 URL의 끝에 포함되었다면 해당 URL을 수집하지 않게 됩니다. URL로 이동하기 전에 HTML 요소의 속성 값 등을 보고 건너뛰기 때문에 해당 URL에 방문하지 않으므로 파일 다운로드 등을 수행하기 전에 건너뛸 수 있습니다.

  • crawlerExcludeCssSelector 이벤트 수행 제외 요소 (CSS 선택자)

    이 옵션에 입력한 목록에 해당하는 CSS 선택자가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하게 됩니다. 하나 이상의 제외할 CSS 선택자를 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.

    이 옵션에 입력한 목록에 해당하는 CSS 선택자가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하지 않게 됩니다. 이러한 방법으로 페이지에서 로그아웃 버튼을 클릭하지 않도록 설정할 수 있습니다.

  • crawlerIncludeCssSelector 이벤트 수행 추가 요소 (CSS 선택자)

    이 옵션에 입력한 목록에 해당하는 CSS 선택자가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하게 됩니다. 하나 이상의 추가할 CSS 선택자를 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.

    이 옵션에 입력한 목록에 해당하는 CSS 선택자가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하게 됩니다. 이러한 방법으로 페이지에서 이벤트에 포함되지 않는 태그와 같은 요소를 수행할 수 있습니다.

  • crawlerExcludeXpath 이벤트 수행 제외 요소 (XPath)

    이 옵션에 입력한 목록에 해당하는 XPath가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하지 않게 됩니다. 이러한 방법으로 페이지에서 로그아웃 버튼을 클릭하지 않도록 설정할 수 있습니다. 하나 이상의 제외할 XPath를 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.

    이 옵션에 입력한 목록에 해당하는 XPath가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하지 않게 됩니다. 이러한 방법으로 페이지에서 로그아웃 버튼을 클릭하지 않도록 설정할 수 있습니다.

  • crawlerIncludeXpath 이벤트 수행 추가 요소 (XPath) 이 옵션에 입력한 목록에 해당하는 XPath가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 하위 HTML 요소의 이벤트를 모두 수행하게 됩니다. 하나 이상의 추가할 XPath를 입력하고 엔터 또는 쉼표(,)로 구분할 수 있습니다.

    이 옵션에 입력한 목록에 해당하는 XPath가 하나라도 페이지에 포함되었다면 해당하는 HTML 요소와 그 하위 HTML 요소의 이벤트를 모두 수행하게 됩니다. 이러한 방법으로 페이지에서 이벤트에 포함되지 않는 태그와 같은 요소를 수행할 수 있습니다.

  • crawlerRequestCustomHeaders 사용자 정의 HTTP 헤더

    사용자 정의 HTTP 헤더는 URL을 수집할 때 전송할 HTTP 요청에 포함되는 헤더의 이름과 값의 목록을 가리킵니다. 이 옵션에 헤더의 이름과 값을 입력하면 해당 헤더를 모든 HTTP 요청 메시지에 추가하게 됩니다. 추가하기 버튼을 클릭하여 하나 이상의 헤더를 추가하고 휴지통 아이콘을 클릭하여 삭제할 수 있습니다.

    이 옵션에는 HTTP 요청에 반드시 필요한 헤더를 입력해야 합니다. 이로 인해 브라우저에 프록시를 설정하므로 수집 속도가 느려질 수 있습니다.

    Cookie 헤더를 제외하고 동일한 이름의 헤더를 여러 개 입력한 경우 그 중 하나만 적용됩니다. 따라서 여러 값을 입력해야 하는 경우 헤더 값을 ;로 구분하여 입력하세요. 같은 이름의 헤더가 이미 있는 경우 해당 헤더를 지우고 커스텀 헤더가 추가됩니다. 커스텀 헤더를 사용하려면 분석 대상 URL의 호스트가 localhost 또는 127.0.0.1로 설정되면 안됩니다. 로컬에 있는 웹 애플리케이션을 분석하려는 경우 로컬 IP 주소를 입력해야 합니다.

  • crawlerLimitUrlDepthDegree URL 수집 깊이 URL 수집 깊이는 수집할 URL이 시작 URL에서부터 얼마나 멀리 떨어져 있는지를 의미하며 high, medium, low로 구분합니다. URL이 멀수록 시작 URL에서 특정 URL에 도달하기 위해 페이지 이동 등 수행해야 하는 최소한의 동작이 많아집니다.(기본값: medium)

    이 옵션을 high로 설정하면 시작 URL에서부터 멀리 있는 URL까지도 수집하게 되지만 수집하는 시간이 오래 걸립니다. 이 옵션을 low로 설정하면 프로젝트에서 URL을 수집하는 시간은 짧아지지만 멀리 있는 URL은 수집하지 않게 됩니다.

  • crawlerLimitDomDepthDegree DOM 수집 깊이 DOM 수집 깊이는 수집할 DOM이 동일한 URL에서 생성된 첫 번째 DOM으로부터 얼마나 멀리 떨어져 있는지를 의미하며 high, medium, low로 구분합니다. DOM이 멀수록 첫 번째 DOM에서 동일한 URL의 특정 DOM에 도달하기 위해 수행해야 하는 최소한의 동작이 많아집니다.(기본값: medium)

    이 옵션을 high로 설정하면 URL로 이동할 때 생성되는 첫 DOM에서부터 멀리 있는 DOM까지도 수집하게 되지만 수집하는 시간이 오래 걸립니다. 이 옵션을 low로 설정하면 프로젝트에서 DOM을 수집하는 시간은 짧아지지만 멀리 있는 DOM은 수집하지 않게 됩니다.

  • crawlerBrowserExplicitTimeout 이벤트 대기 시간 이벤트 대기 시간은 이벤트를 수행할 때마다 이벤트 수행 결과가 DOM에 반영되기를 기다리는 시간을 가리킵니다. 0 이상 5000 이하의 숫자를 입력할 수 있으며 옵션을 입력하지 않은 경우 기본값은 300입니다.(단위: 밀리초, 기본값: 300)

    이 옵션에 입력된 값이 클수록 수행한 이벤트를 DOM에 반영하는데 시간이 걸리는 웹 애플리케이션의 URL을 수집할 수 있지만 수집하는 속도가 느려집니다. 이 옵션에 입력된 값이 적을수록 URL을 수집하는 속도는 향상되지만 DOM이 변경될 때 시간이 필요한 웹 애플리케이션의 URL을 수집하지 않게 됩니다.

  • crawlerRequestCountPerSecond HTTP 요청 횟수 HTTP 요청 횟수는 URL을 수집할 때 1초에 전송할 수 있는 HTTP 요청의 개수를 가리킵니다. -1 이상 10000 이하의 숫자를 입력할 수 있으며 옵션을 입력하지 않는 경우 기본값은 -1이며 이 경우에 전송할 수 있는 HTTP 요청의 개수를 제한하지 않게 됩니다.(단위: 개, 기본값: -1)

    이 옵션에 입력된 값이 클수록 1초에 전송할 수 있는 HTTP 요청의 개수가 늘어나서 URL을 수집하는 속도가 빨라지지만 트래픽량이 늘어나 분석 대상 웹 애플리케이션 서버에 부하도 늘어날 수 있습니다. 이 옵션에 입력된 값이 적을수록 트래픽량이 낮아져 분석 대상 웹 애플리케이션 서버의 부하도 줄어들지만 URL을 수집하는 속도가 늦어집니다.

  • crawlerClientTimeout HTTP 클라이언트 대기 시간 HTTP 클라이언트 대기 시간은 HTTP 클라이언트가 분석을 수행하기 위해 웹 서버에 연결하고, HTTP 요청을 보내고, HTTP 응답을 받는 과정에서 지연이 발생했을 때 기다리는 최대 시간을 가리킵니다. 0 이상 30000 이하의 숫자를 입력할 수 있으며 옵션을 입력하지 않은 경우 기본값은 3000 입니다.(단위: 밀리초, 기본값: 3000)

    이 옵션에 입력된 값이 클수록 웹 서버와의 네트워크 연결 상태가 좋지 않아 지연이 발생한 경우에도 분석이 정상적으로 진행됩니다. 단, 웹 서버와의 연결 끊김이 지속적으로 발생하면 분석 시간이 늘어날 가능성이 높습니다. 이 옵션에 입력된 값이 적을수록 분석 속도는 빨라지지만 웹 서버와의 네트워크 연결 상태가 좋지 않아서 지연이 발생한 경우 URL을 분석하지 못할 가능성이 있습니다.