# 7장. 쿼리 커스터마이징



# 쿼리 커스터마이징 개념

다보리 컴포저블에서는 `weberp_queries`에 표준화된 쿼리 구조가 적용되어 있습니다. 표준 쿼리는 다양한 ERP 및 PRO 기능을 체계적으로 지원하며, 각 분류별로 구조화되어 있습니다. 테마별로 쿼리를 커스터마이징하여 사용할 수도 있지만, 기본적인 표준 쿼리의 구조와 위치를 유지하는 것이 중요합니다.

#### 표준 쿼리 구조

`weberp_queries` 는 표준화된 쿼리들이 구축되어 있으며, 각 쿼리는 특정 기능과 연관된 디렉토리 구조를 따릅니다. 예를 들어, `erp/list/list-type1/download/post` 디렉토리에는 `pro_post` 테이블의 다운로드 기능을 구현하는 쿼리 파일이 포함되어 있습니다.

#### 커스터마이징 지침

- **디렉토리 구조 유지**: 테마 디렉토리의 `qry` 안에 쿼리를 커스터마이징할 때는 `weberp_queries`의 구조와 위치를 동일하게 유지해야 합니다.
- **표준 쿼리 참조**: 필요한 쿼리의 구조와 위치를 `weberp_queries`에서 확인한 후, 테마 디렉토리의 `qry`에 동일한 구조로 구현합니다.
- **쿼리 커스터마이징**: `select` 절, `조건` 절, `from` 절 등 쿼리의 세부 내용을 필요에 따라 다양하게 커스터마이징할 수 있습니다.

#### 예시

`weberp_queries`의 디렉토리 구조 예시:

- `weberp_queries/erp/list/list-type1/download/post`

테마 디렉토리의 커스터마이징된 쿼리 구조 예시:

- `themes/your_theme/qry/erp/list/list-type1/download/post`

커스터마이징 쿼리를 구축할 때는 반드시 `weberp_queries`를 참조하여 필요한 쿼리의 구조와 위치를 확인하고, 동일한 디렉토리 구조로 구현해야 합니다. 이를 통해 표준 쿼리의 체계를 유지하면서도 필요한 부분을 커스터마이징할 수 있습니다.

# New Page



# 커스터마이징 예제

pro 테마중 kbgolf에 적용된 쿼리 커스터마이징 예제를 살펴보겠습니다.

#### **디렉토리 구조 설정**

먼저 `kbgolf` 테마의 `qry` 디렉토리로 이동합니다. 예제에서 `kbgolf/qry` 디렉토리 구조는 다음과 같습니다.

[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-07/scaled-1680-/image.png)](https://manual.dabory.com/uploads/images/gallery/2024-07/image.png)


#### **표준 쿼리 디렉토리와 일치**

백엔드 서버에서 SQL 파일을 인식하기 위해서는 `main_api` 서버의 디렉토리 구조와 동일하게 만들어야 합니다.

`weberp_queries` 의 디렉토리를 참고하여 동일한 디렉토리를 구축합니다.

[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-07/scaled-1680-/NrDimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-07/NrDimage.png)

`weberp_queries` 디렉토리 구조 예시:

[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-07/scaled-1680-/VzVimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-07/VzVimage.png)

커스터마이징 쿼리의 디렉토리 구조 예시

#### **QueryVars 작성**

프론트엔드에서 쿼리를 호출하기 위한 파라미터를 작성합니다. `QueryVars`에 테마명을 포함하여 작성합니다:

```
"QueryVars": {
        "QueryName": "kbgolf::post/sise",
        "FilterName": "",
        "FilterValue": "",
        "FilterDate": "",
        "SimpleFilter": ""
    },
```

<div id="bkmrk-queryname%3A-kbgolf%3A%3Ap"><div>  
</div><div>`QueryName`: `kbgolf::post/sise`와 같이 테마명을 포함시켜줍니다. 테마명이 포함되지 않으면 서버에서 표준 쿼리를 찾게 되어 에러가 발생할 수 있습니다.</div></div><div id="bkmrk--3"></div>#### **서버 반영**

<div id="bkmrk--4"></div><div id="bkmrk-%ED%8C%8C%EB%9D%BC%EB%A9%94%ED%84%B0-%EC%9E%91%EC%84%B1%EC%9D%B4-%EC%99%84%EB%A3%8C%EB%90%98%EC%97%88%EC%9C%BC%EB%A9%B4-%ED%95%B4%EB%8B%B9-%ED%85%8C">파라메터 작성이 완료되었으면 해당 서버에 반영해야 합니다.</div><div id="bkmrk--5"></div><div id="bkmrk-%EC%B0%B8%EA%B3%A0%EC%82%AC%ED%95%AD%ED%85%8C%EB%A7%88-%EC%84%9C%EB%B2%84%EC%97%90-%EB%B0%98%EC%98%81-%EB%B0%A9%EB%B2%95"><details><summary>참고사항</summary>

[테마 서버에 반영 방법](https://manual.dabory.com/books/quick-start/page/7a614)

</details></div><div id="bkmrk--6"></div><div id="bkmrk--7"></div><div id="bkmrk--8"></div><div id="bkmrk--9"></div><div id="bkmrk-%5B%EC%A0%95%EB%A6%AC%5D"></div>