---
url: https://docs.ogmabox.com/ko/app/match-replace.md
description: Ogma 찾아 바꾸기 규칙으로 캡처된 HTTP 및 WebSocket 트래픽을 자동 수정합니다.
---

# 찾아 바꾸기 {#match-replace}

찾아 바꾸기는 프록시를 통과하는 트래픽을 자동 수정합니다. 트래픽을 멈추거나 요청마다 수동 작업을 할 필요가 없습니다.

## 규칙 동작 방식 {#how-rules-work}

각 규칙은 찾을 내용과 처리 방법을 정의합니다. 요청이나 응답이 조건과 일치하면 규칙의 변환이 즉시 적용됩니다.

규칙은 목록에 표시된 순서로 적용됩니다. 두 규칙이 같은 헤더를 대상으로 하면 먼저 일치한 규칙이 먼저 적용되며, 이후 규칙은 변경 결과를 참조합니다.

## 규칙 필드 {#rule-fields}

| 필드 | 설명 |
| --- | --- |
| 이름 | 규칙 라벨입니다. 목적을 알 수 있는 이름을 사용하세요. |
| 방향 | 규칙을 요청, 응답 또는 둘 모두에 적용할지 지정합니다 |
| 작업 | 수행할 변환입니다(아래 작업 표 참조) |
| 일치 모드 | 작업에 따라 문자열, 정규식 또는 전체 내용을 사용합니다 |
| 일치 값 | 찾을 문자열 또는 패턴 |
| 대체 값 | 바꿔 넣을 값 |
| 활성화됨 | 삭제하지 않고 규칙을 켜거나 끄는 스위치 |
| 필터 | 적용 대상을 제한하는 선택적 메서드, 호스트, 경로, HTTPQL 조건 |

### 작업 {#operations}

| 작업 | 동작 |
| --- | --- |
| 헤더 추가 | 고정된 이름과 값으로 새 헤더를 추가합니다 |
| 헤더 제거 | 이름으로 헤더를 삭제합니다 |
| 헤더 바꾸기 | 기존 헤더의 값을 바꿉니다 |
| 본문 바꾸기 | 일치 값을 사용하여 본문의 일부를 바꿉니다 |
| 경로 / 쿼리 / 쿼리 매개변수 | 요청 경로나 쿼리 값을 변경합니다 |
| 요청 / 응답 행 | 선택한 HTTP 시작 행의 구성 요소를 변경합니다 |
| 상태 코드 | 응답 상태를 변경합니다 |
| 메시지 원문 | HTTP 시작 행, 헤더, 본문을 함께 변환합니다 |
| WebSocket 페이로드 | 일치하는 클라이언트/서버 메시지 내용을 바꿉니다 |
| 워크플로 | 선택한 내용에 활성화된 변환 워크플로를 실행합니다 |

## 일치 모드 {#match-modes}

**문자열**은 정확한 문자열과 일치시킵니다. 고정 토큰, 헤더 이름, 특정 값에 사용하세요.

**정규식**은 정규 표현식으로 일치시킵니다. 대상이 바뀌는 경우에 사용하세요. 예를 들어 세션마다 바뀌는 토큰을 찾거나 그룹을 캡처하여 대체 값에 재사용할 수 있습니다.

정규식 치환에서는 `$1`, `$2` 등의 캡처 그룹으로 일치한 부분을 대체 값에서 참조합니다.

**전체**는 부분 문자열을 찾는 대신 선택한 내용 전체를 변환에 전달합니다. 이름이 지정된 헤더의 추가/제거 등 일부 작업은 문자열 이름을 사용하며 모든 모드를 제공하지 않습니다.

## 응답 본문 전체 변환 {#transforming-a-complete-response-body}

1. **변환** 워크플로를 만들고 활성화한 뒤 테스트 입력으로 검증합니다.
2. 방향이 **응답**, 작업이 \*\*워크플로(본문)\*\*인 찾아 바꾸기 규칙을 만듭니다.
3. **전체** 일치 모드를 선택하고 워크플로를 지정합니다.
4. HTTPQL 필터로 규칙의 대상을 좁힙니다. 예:

```text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")
```

워크플로는 본문 전체를 받으며 출력으로 해당 본문을 교체합니다. \*\*워크플로(헤더)\*\*는 이름이 지정된 헤더를 변환하고, \*\*워크플로(헤더 원문)\*\*은 헤더 블록을 변환합니다. 이 입력들은 응답 본문과 다릅니다.

HTTPQL 필터는 사용 가능한 요청/응답 컨텍스트에서 평가됩니다. 요청 방향의 규칙은 아직 도착하지 않은 응답에 의존할 수 없습니다. 규칙 실행량이 많으면 워크플로 로깅을 끄고, 변환 문제를 진단할 때만 일시적으로 켜세요.

## 규칙 순서 변경 {#reordering-rules}

규칙 행을 끌어 목록 내 위치를 바꿉니다. 같은 요청이나 응답의 겹치는 부분을 수정하는 규칙에서는 순서가 중요합니다.

## AI 지원 {#ai-assist}

규칙 편집기의 **AI로 입력**을 클릭하고 변경할 내용을 자연어로 설명합니다. Ogma가 설명을 바탕으로 규칙 필드를 생성합니다. 규칙을 켜기 전에 생성된 값을 검토하고 조정하세요.

효과적인 프롬프트 예:

* "모든 응답에서 X-Frame-Options 헤더를 제거해 줘"
* "Authorization 헤더 값을 테스트용 토큰으로 바꿔 줘"
* "모든 요청에 이름이 X-Debug이고 값이 true인 헤더를 추가해 줘"

## 규칙 테스트 {#testing-a-rule}

실제 트래픽에 규칙을 적용하기 전에 샘플 요청으로 테스트하세요.

1. 규칙 편집기를 엽니다.
2. **테스트** 패널에 HTTP 요청 원문을 붙여 넣습니다.
3. **규칙 적용**을 클릭합니다. 패널에 결과와 적용된 규칙이 표시됩니다.
4. 출력이 예상과 일치하는지 확인합니다.
5. 규칙을 활성화합니다.

테스트 패널에는 상태, 헤더, 본문을 입력하는 **응답** 대상도 있습니다. 적용된 규칙 목록을 확인하세요. 이 테스트는 편집기의 개별 필드만 검사하는 것이 아니라 적용 가능한 규칙을 테스트합니다.

## 찾아 바꾸기와 가로채기 {#match-replace-vs-intercept}

**찾아 바꾸기**는 자동으로 동작합니다. 규칙을 켜면 사용자 작업 없이 일치하는 모든 요청과 응답을 변환합니다.

**가로채기**는 트래픽을 멈추고 수동 결정을 기다립니다. 요청별 컨텍스트를 평가해야 올바른 변경을 결정할 수 있으면 가로채기를 사용하세요. 검토 없이 매번 같은 변환을 적용하려면 찾아 바꾸기를 사용하세요.

## 일반적인 용도 {#common-uses}

* 모든 요청의 세션 쿠키를 바꾸어 다른 계정으로 테스트합니다.
* 디버그 또는 관리자 모드를 켜는 헤더를 추가합니다.
* 응답의 보안 헤더를 제거하여 클라이언트 측 동작을 평가합니다.
* 리디렉션 응답에 하드코딩된 호스트를 바꿉니다.
* 요청 경로 접두사를 다시 작성합니다.

## 관련 페이지 {#related-pages}

* [가로채기](./intercept.md)
* [HTTP 기록](./http-history.md)
* [워크플로](./workflows.md)
