---
sourceDocument: 호주 판매 고객 관계 관리
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/order-management

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 판매 고객 관계 관리

ft:clusterId :

    - omgmt

bundleId :

    - omgmt

workflow :

    - Customer and Industry


---

# 스크립팅에 대한 일반 지침

# 스크립팅에 대한 일반 지침 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 5분

JavaScript와 유사한 언어를 사용하여 효율적인 스크립트를 작성합니다. 이름, 변수 및 테이블 액세스에 대한 다음 일반 가이드라인을 따르십시오.

이 가이드는 JavaScript와 유사한 언어를 사용할 때 CPQ 효율적이고 안정적인 스크립트를 작성하기 위한 일반적인 지침을 안내합니다. 이러한 지침을 따르면 유지 관리가 가능하고 읽기 쉬우며 성능이 우수한 코드를 만드는 데 도움이 됩니다.

## 간략한 요약 {#cpq-scripting-best-practicws__section_oys_xwl_rgc}

* 맨 위에 선언 배치
* 신중하게 설명하십시오.
* 들여쓰기 대괄호
* 설명이 포함된 변수 이름 사용
* 변수에 일관성 있는 이름 지정
* '신규' 피하기
* 느슨한 동등성 방지("==")
* "let" 앞에 "const"를 사용하고 "var" 위에 "let"을 사용하십시오.
* 테이블 조회 최소화
{#cpq-scripting-best-practicws__ul_uky_d1m_rgc}

## 맨 위에 선언 배치 {#cpq-scripting-best-practicws__section_k5x_ywl_rgc}

변수 및 함수 선언을 스크립트의 맨 위에 배치하면 가독성이 향상되고 예기치 않은 변수 호이스팅 문제를 방지할 수 있습니다.

    1 // Declare and initiate at the beginning
    2 let firstName = "";
    3 let lastName = "";
    4 let price = 0;
    5 let discount = 0;
    6 let fullPrice = 0,
    7 const myArray = [];
    8 const myMap= {};

## 신중하게 설명하십시오. {#cpq-scripting-best-practicws__section_i1h_3xl_rgc}

주석을 사용하여 코드의 복잡한 논리, 가정 또는 명확하지 않은 동작을 설명합니다. 단순히 코드를 반복하는 중복 주석을 피하십시오.

## 들여쓰기 대괄호 {#cpq-scripting-best-practicws__section_uwp_cxl_rgc}

코드를 적절하게 들여쓰면 시각적 구조가 개선되고 특히 중첩된 블록을 처리할 때 이해하기가 더 쉬워집니다.

    1 // Good
    2 if (condition) {
    3 // ...
    4 if (nestedCondition) {
    5 // ...
    6 }
    7 }
    8
    9 // Bad
    10 if (condition) {
    11 // ...
    12 if (nestedCondition) {
    13 // ...
    14 }
    15 }

## 설명이 포함된 변수 이름 사용 {#cpq-scripting-best-practicws__section_ecf_hxl_rgc}

의미 있고 변수 또는 함수의 목적을 설명하는 이름을 선택합니다. 이렇게 하면 코드가 자체 문서화되고 다른 사람이 더 쉽게 이해할 수 있습니다.

    1 //Good
    2 let quoteId = cfgRequest.partner.quote.id.value;
    3 let lineID = cfgRequest.partner.quote.lineId.value;
    4 let currencyISO = cfgRequest.partner.quote.currencyIsoCode.value;
    5 let priceBookID = cfgRequest.partner.quote.pricebookId.value;
    6
    7 if (quoteId != null) {
    8 cfgRequest.quoteIDTest.set("value", quoteId);
    9 }
    10
    11 if (lineID != null) {
    12 cfgRequest.lineIDTest.set("value", lineID);
    13 }
    14
    15 if (currencyISO != null) {
    16 cfgRequest.currencyISOCodeTest.set("value", currencyISO);
    17 }
    18
    19 if (priceBookID != null) {
    20 cfgRequest.pricebookIDTest.set("value", priceBookID);
    21 }
    22
    23 //Bad
    24 let x1= cfgRequest.partner.quote.id.value;
    25 let x2= cfgRequest.partner.quote.lineId.value;
    26 let x3= cfgRequest.partner.quote.currencyIsoCode.value;
    27 let x4= cfgRequest.partner.quote.pricebookId.value;
    28
    29 if (x1 != null) {
    30 cfgRequest.quoteIDTest.set("value", x1);
    31 }
    32
    33 if (x2 != null) {
    34 cfgRequest.lineIDTest.set("value", x2);
    35 }
    36
    37 if (x3 != null) {
    38 cfgRequest.currencyISOCodeTest.set("value", x3);
    39 }
    40
    41 if (x4 != null) {
    42 cfgRequest.pricebookIDTest.set("value", x4);
    43 }

## 변수에 일관성 있는 이름 지정 {#cpq-scripting-best-practicws__section_vq4_bxl_rgc}

일관된 명명 규칙은 코드 가독성과 유지 관리 용이성을 향상시킵니다. camelCase 또는 snake_case 선택하고 이를 고수하십시오. Logik 필드 변수 이름은 대소문자를 사용하므로 대부분의 조직에서는 가독성을 위해 이 규칙을 따릅니다.

    1 // camelCase
    2 let firstName = "JohnDoe";
    3
    4 // snake_case
    5 let last_name = "Smith";

## '신규' 키워드 피하기 {#cpq-scripting-best-practicws__section_czq_zwl_rgc}

`new` 키워드를 사용하면 더 많은 자원이 사용되고 메모리 누수가 발생하며 의도하지 않은 동작이 발생할 수 있습니다. 가능하면 개체 생성에 리터럴 표기법을 대신 사용합니다.

* `new String( )` 대신 `" "` 사용
* `새 숫자( )` 대신 `( )`를 사용하십시오.
* `new Boolean( )` 대신 `false`를 사용하세요
* `new Map( )` 대신 `{ }` 사용
* `new Array( )` 대신 `[ ]` 사용
{#cpq-scripting-best-practicws__ul_gyx_zyl_rgc}

## 느슨한 동등성 방지("==") {#cpq-scripting-best-practicws__section_epf_1xl_rgc}

느슨한 동등 연산자는 예기치 않은 형식 강제 적용으로 이어질 수 있습니다. 정확한 비교를 위해 엄격한 동등 연산자(`===)`를 사용하십시오.

    1 // Good
    2 if (count === 5) {
    3 // ...
    4 }
    5
    6 // Bad
    7 if (count == "5") {
    8 // ...
    9 }

## "let" 앞에 "const"를 사용하고 "var" 위에 "let"을 사용하십시오. {#cpq-scripting-best-practicws__section_ksz_dxl_rgc}

범위 및 가변성 요구 사항에 따라 변수 선언을 선택합니다. 재할당되지 않는 변수에는 `const` 를 사용하고 변경되는 변수에는 `let` 을 사용하십시오. `var` 도 허용되지만 이전 버전의 JavaScript에서 유지됩니다.

    1 // Using const for unchanging values
    2 const TAX_RATE = 0.15;
    3
    4 // Using let for mutable values
    5 let itemCount = 5;

## 테이블 조회 최소화 {#cpq-scripting-best-practicws__section_zfp_gxl_rgc}

과도한 테이블 쿼리는 성능에 영향을 줄 수 있습니다. 필요한 데이터를 한 번 가져와 변수에 저장하여 쿼리를 최소화합니다.

`조회` 함수 사용에 대한 일반적인 지침에 대한 자세한 내용은 다음 문서를 참조하십시오[테이블 쿼리 최소화](https://servicenow-prod.fluidtopics.net/SBHeVD_E_DNi7dTfSMwKdg "쿼리를 최소화하여 성능을 최대화하는 방법을 알아봅니다.").
**관련 개념**   

* [스크립트 작성](https://servicenow-prod.fluidtopics.net/BDBeWAnlN5uDCaeEx49Adg "스크립팅 인터페이스를 사용하여 고급 함수를 작성하는 방법에 대해 알아봅니다.")  
**관련 참조**   

* [CPQ 스크립팅 언어 참조](https://servicenow-prod.fluidtopics.net/iIB~W0l4WUHTMkYE2G6GQQ "형식 변환, 형식 검사, 지원되지 않는 작업에 대한 대체 스크립트 및 개체 속성 액세스에 대한 정보와 함께 지원하는 연산자, 객체 및 키워드 CPQ 를 봅니다.")

