# 서버 성능

서버 성능은 WCPOS 애플리케이션의 속도와 반응성에 직접적인 영향을 미칩니다. POS는 많은 REST API 호출을 수행하므로 **서버 응답 시간이 주요 병목 지점**이며, POS 속도는 호스팅 품질에 크게 좌우됩니다. 이 가이드는 내장된 메트릭과 문제 해결 기술을 사용하여 서버 성능을 모니터링, 진단 및 최적화하는 데 도움이 됩니다.

## 최소 서버 요구 사항[​](#minimum-server-requirements "최소 서버 요구 사항으로 직접 링크")

프로덕션 환경에서 반응성이 좋은 POS를 위해 최소한 다음을 권장합니다:

CPU

<!-- -->

: CPU 코어 4개 이상

RAM

<!-- -->

: 4GB 이상

PHP

<!-- -->

: PHP 7.4 이상 (8.x 권장)

Database

<!-- -->

: MySQL 8.0 이상 또는 MariaDB 11.x

Storage

<!-- -->

: SSD 또는 NVMe

SSL

<!-- -->

: HTTPS는 필수입니다 — WooCommerce REST API는 HTTPS 없이는 작동하지 않습니다

공유 호스팅은 종종 충분하지 않습니다

공유 호스팅은 많은 동시 API 호출을 수행하는 POS 워크로드에 비해 PHP 워커가 너무 적고 메모리가 부족한 경우가 많습니다. 프로덕션 POS 사용에는 **VPS 또는 관리형 WordPress 호스트**를 강력히 권장합니다. `WordPress.com` 관리형 호스팅은 REST API 호환성 문제가 있는 것으로도 알려져 있으며(일부 사용자는 대용량 카탈로그에서 9\~10개의 상품만 표시됨), 완전한 호환성을 위해서는 자체 호스팅 `WordPress.org`를 권장합니다.

### 커뮤니티 검증 최적화 스택[​](#community-validated-optimisation-stack "커뮤니티 검증 최적화 스택으로 직접 링크")

사용자들은 다음 조합에서 최고의 POS 성능을 보고합니다:

* **MariaDB 11.4** (WooCommerce 워크로드에서 MySQL보다 빠름)
* **HPOS 활성화** (아래 참조)
* **LiteSpeed 또는 Redis** 객체 캐싱
* **NVMe** 스토리지
* **PHP OPcache** 활성화

## 503 오류[​](#503-errors "503 오류으로 직접 링크")

503 오류는 항상 서버 측 문제입니다

`503 Service Unavailable`은 **POS 버그가 아닙니다** — 서버가 요청을 처리할 수 없음을 의미합니다. 다음을 확인하세요:

1. 서버 부하 및 가용 리소스
2. PHP 워커 (소진되었을 수 있음)
3. PHP 메모리 제한 — **256MB 이상**으로 증가
4. 웹 호스트의 서버 로그(호스트에 문의하세요. 애플리케이션이 볼 수 없는 것을 확인할 수 있습니다)

## WooCommerce 버전 호환성[​](#woocommerce-version-compatibility "WooCommerce 버전 호환성으로 직접 링크")

WooCommerce 업데이트가 가끔 POS를 손상시킬 수 있습니다. 항상 [스테이징 사이트](/ko/support/troubleshooting/plugin-conflicts.md#before-you-start-use-a-staging-site)에서 먼저 WooCommerce를 업데이트하고, 최신 호환성 수정 사항이 포함되도록 WCPOS를 최신 상태로 유지하세요.

알려진 문제:

* **WooCommerce 10.5.0** — POS에서 상품 로딩이 손상됨(증상: 약 10개 상품만 표시됨, 바코드 스캔 및 검색이 작동 중지) 및 **postmeta 부풀림**과 메모리 소진을 유발할 수 있는 실험적 상품 캐시를 도입함. **해결책:** WCPOS를 최신 버전으로 업데이트(수정 사항 및 정리 마이그레이션 포함)하거나 WooCommerce를 [10.4.3](https://downloads.wordpress.org/plugin/woocommerce.10.4.3.zip)으로 롤백하세요.

WooCommerce 업데이트가 POS를 손상시키는 경우, WooCommerce를 이전 버전으로 롤백(플러그인의 WordPress.org 페이지에서 **Advanced** 탭을 통해)하고 보고하세요.

## 서버 메트릭 이해하기[​](#understanding-server-metrics "서버 메트릭 이해하기으로 직접 링크")

WCPOS는 각 데이터 가져오기 작업(제품, 주문, 고객 등)마다 서버 성능 메트릭을 자동으로 수집합니다. 이 메트릭은 [로그](/ko/support/logs.md) 화면에서 확인할 수 있습니다.

### 일반적인 서버 메트릭[​](#typical-server-metrics "일반적인 서버 메트릭으로 직접 링크")

```
{

  "total": "24692",

  "execution_time": "76.64 ms",

  "server_load": "[15.20605469,16.16357422,16.76806641]"

}
```

**세부 사항:**

* **`total`** - 처리된 레코드 수 (24,692 제품 ID)
* **`execution_time`** - 작업 완료에 소요된 시간 (76.64 밀리초)
* **`server_load`** - 1, 5, 15분 동안의 서버 부하 평균

## 서버 부하 설명[​](#server-load-explained "서버 부하 설명으로 직접 링크")

서버 부하는 다양한 시간 동안의 평균 시스템 부하를 나타냅니다:

* **첫 번째 값** - 1분 평균 (15.21)
* **두 번째 값** - 5분 평균 (16.16)
* **세 번째 값** - 15분 평균 (16.77)

### 부하 해석[​](#load-interpretation "부하 해석으로 직접 링크")

서버 부하 값은 오해의 소지가 있으며 주의 깊게 해석해야 합니다:

부하 값은 오해의 소지가 있을 수 있음

서버 부하 평균이 성능과 직접적으로 연관되지 않는 경우가 있습니다. 높은 부하 값(15+)을 가진 서버도 충분한 리소스가 있고 잘 최적화되어 있다면 매우 반응적일 수 있습니다. **부하 값만 보지 말고 실행 시간에 중점을 두세요.**

**일반 지침:**

* **CPU 코어에 대한 부하** - 8코어 서버의 8.0 부하는 완전 활용을 의미합니다.
* **지속적 vs. 일시적** - 짧은 급증은 정상이며, 지속적인 높은 부하는 문제를 나타낼 수 있습니다.
* **성능이 더 중요함** - 높은 부하의 반응적인 서버가 낮은 부하의 느린 서버보다 낫습니다.

**주목해야 할 사항:**

* **시간이 지남에 따라 증가하는 실행 시간**
* **설명 없이 지속적으로 증가하는 부하**
* **높은 부하와 느린 실행 시간이 함께 나타나는 경우**

## 성능 기준선[​](#performance-benchmarks "성능 기준선으로 직접 링크")

### 실행 시간 지침[​](#execution-time-guidelines "실행 시간 지침으로 직접 링크")

| 작업              | 우수    | 허용 가능 | 보통     | 치명적 |
| ----------------- | ------- | --------- | -------- | ------ |
| **제품 가져오기** | < 100ms | 100-500ms | 500ms-2s | > 2s   |
| **주문 생성**     | < 200ms | 200-800ms | 800ms-3s | > 3s   |

### 레코드 수 고려사항[​](#record-count-considerations "레코드 수 고려사항으로 직접 링크")

실행 시간은 레코드 수에 따라 합리적으로 증가해야 합니다:

```
// Good scaling examples

{"total": "100", "execution_time": "15.2 ms"}    // 0.15ms per record

{"total": "1000", "execution_time": "89.4 ms"}   // 0.09ms per record

{"total": "10000", "execution_time": "234.1 ms"} // 0.02ms per record



// Poor scaling examples

{"total": "100", "execution_time": "500.0 ms"}   // 5.0ms per record

{"total": "1000", "execution_time": "8000.0 ms"} // 8.0ms per record
```

## 성능 문제 진단하기[​](#diagnosing-performance-issues "성능 문제 진단하기으로 직접 링크")

### 단계 1: 로그 모니터링[​](#step-1-monitor-the-logs "단계 1: 로그 모니터링으로 직접 링크")

1. 내비게이션 창에서 **로그**를 엽니다.
2. 느린 작업을 수행합니다(제품 동기화, 주문 생성 등).
3. 해당 로그 항목을 찾습니다.
4. 메트릭을 보기 위해 컨텍스트를 확장합니다.

### 단계 2: 메트릭 분석[​](#step-2-analyse-the-metrics "단계 2: 메트릭 분석으로 직접 링크")

**높은 실행 시간 + 높은 서버 부하 = 서버 리소스 문제**

```
{

  "total": "5000",

  "execution_time": "3500.0 ms",

  "server_load": "[12.45, 11.23, 10.87]"

}
```

*해결책: 서버 리소스를 늘리거나 서버 구성 최적화*

**높은 실행 시간 + 정상 서버 부하 = 플러그인/데이터베이스 문제**

```
{

  "total": "1000",

  "execution_time": "2800.0 ms",

  "server_load": "[1.23, 1.45, 1.67]"

}
```

*해결책: 느린 플러그인을 식별하거나 데이터베이스 쿼리 최적화*

**정상 실행 시간 + 높은 서버 부하 = 일반적인 서버 과부하**

```
{

  "total": "2000",

  "execution_time": "150.0 ms",

  "server_load": "[8.90, 9.12, 8.45]"

}
```

*해결책: 다른 프로세스에서 서버 부하를 줄이거나 리소스를 업그레이드*

## 일반적인 성능 문제[​](#common-performance-problems "일반적인 성능 문제으로 직접 링크")

### 1. 불충분한 서버 리소스[​](#1-insufficient-server-resources "1. 불충분한 서버 리소스으로 직접 링크")

**증상:**

* 지속적으로 높은 서버 부하 (대부분의 서버에서 > 4.0)
* 모든 작업에서 긴 실행 시간
* 빈번한 타임아웃

**해결책:**

* **CPU 업그레이드** - 더 많은 코어가 동시 요청을 더 잘 처리
* **RAM 증가** - 디스크 I/O 감소 및 캐싱 개선
* **SSD 스토리지 사용** - 데이터베이스 성능을 극적으로 향상
* **PHP 설정 최적화** - `memory_limit`, `max_execution_time` 증가

### 2. 느린 데이터베이스 쿼리[​](#2-slow-database-queries "2. 느린 데이터베이스 쿼리으로 직접 링크")

**증상:**

* 정상 서버 부하에서 높은 실행 시간
* 특히 느린 제품/주문 가져오기
* 로그에서 데이터베이스 관련 오류 코드

**해결책:**

* **WooCommerce HPOS 활성화** - 가장 큰 데이터베이스 성능 개선
* **객체 캐싱 사용** - 호스트에서 사용할 수 있으면 Redis 또는 Memcached
* **WordPress 업데이트 유지** - 코어 업데이트에는 종종 데이터베이스 최적화가 포함됩니다.
* **게시물 수정 제한** - wp-config.php에 `define('WP_POST_REVISIONS', 3);` 추가

### 3. 플러그인 간섭[​](#3-plugin-interference "3. 플러그인 간섭으로 직접 링크")

**증상:**

* 플러그인 업데이트 후 갑작스러운 성능 저하
* 특정 작업이 다른 작업보다 훨씬 느림
* 정상 서버 부하에서 높은 실행 시간

**문제 해결:**

1. **스테이징에서 테스트** - WooCommerce와 WCPOS를 제외한 모든 플러그인 비활성화
2. **기준 측정** - 최소한의 플러그인으로 실행 시간 기록
3. **점진적으로 활성화** - 플러그인을 하나씩 추가하여 원인을 식별
4. **플러그인 훅 확인** - WooCommerce 작업에 연결된 플러그인 확인

**문제가 발생하기 쉬운 플러그인:**

* 제품 작업 중 무거운 SEO 플러그인
* 복잡한 재고 관리 시스템
* 실시간 분석/추적 플러그인
* 잘못된 코드의 사용자 정의 플러그인

### 4. WordPress/WooCommerce 구성[​](#4-wordpresswoocommerce-configuration "4. WordPress/WooCommerce 구성으로 직접 링크")

**증상:**

* 일관되지 않은 성능
* 로그에서 메모리 관련 오류
* 느린 관리자 대시보드

**최적화 체크리스트:**

* **PHP 버전** - 더 나은 성능을 위해 PHP 8.0+ 사용
* **WooCommerce HPOS** - 고성능 주문 저장 활성화(아래 참조)
* **WordPress 캐싱** - 사용 가능한 경우 객체 캐싱 활성화
* **WooCommerce 설정** - 제품 이미지 크기 최적화

### WooCommerce 고성능 주문 저장소(HPOS)[​](#woocommerce-high-performance-order-storage-hpos "WooCommerce 고성능 주문 저장소(HPOS)으로 직접 링크")

가장 큰 성능 향상

**HPOS는 WooCommerce를 위해 할 수 있는 가장 중요한 성능 개선 중 하나입니다.** 주문을 WordPress 게시물 테이블이 아닌 사용자 지정 데이터베이스 테이블에 저장하여 다수의 주문을 가진 상점의 성능을 극적으로 개선합니다.

**이점:**

* **빠른 주문 쿼리** - 최적화된 데이터베이스 구조에 저장된 주문
* **데이터베이스 부하 감소** - 게시물/페이지와 주문을 분리합니다.
* **더 나은 확장성** - 대량의 주문을 효율적으로 처리
* **개선된 관리자 성능** - 빠른 주문 관리 화면

**활성화 방법:**

1. `WooCommerce > Settings > Advanced > Features`로 이동
2. "High-performance order storage" 활성화
3. 마이그레이션 프로세스를 따릅니다.

**자세히 알아보기:**

* [WooCommerce HPOS 문서](https://woocommerce.com/document/high-performance-order-storage/)
* [HPOS 마이그레이션 가이드](https://woocommerce.com/document/high-performance-order-storage/#section-3)

## 서버 모니터링 모범 사례[​](#server-monitoring-best-practices "서버 모니터링 모범 사례으로 직접 링크")

### 1. 정기적인 성능 점검[​](#1-regular-performance-checks "1. 정기적인 성능 점검으로 직접 링크")

* **주간 검토** - 성능 트렌드를 위해 로그 확인
* **기준 측정** - 정상 실행 시간 기록
* **피크 시간 모니터링** - 트래픽이 많은 동안 모니터링

### 2. 성능 경고 설정[​](#2-set-performance-alerts "2. 성능 경고 설정으로 직접 링크")

다음 경고 신호를 모니터링합니다:

* 실행 시간이 지속적으로 > 1000ms
* 서버 부하가 장기간 > 5.0인 경우
* 로그에서 빈번한 타임아웃 오류

### 3. 용량 계획[​](#3-capacity-planning "3. 용량 계획으로 직접 링크")

성장 추세 추적:

* **레코드 수 성장** - 제품, 주문, 고객
* **성능 저하** - 실행 시간이 어떻게 확장되는지
* **리소스 활용** - CPU, 메모리, 디스크 사용량

## 서버 최적화 전략[​](#server-optimisation-strategies "서버 최적화 전략으로 직접 링크")

### 1. WordPress/WooCommerce 모범 사례[​](#1-wordpresswoocommerce-best-practices "1. WordPress/WooCommerce 모범 사례으로 직접 링크")

**HPOS 활성화:**

* WooCommerce를 위한 가장 영향력 있는 성능 향상
* 위의 HPOS 섹션을 참조하여 자세한 내용 확인

**PHP 구성 (호스트에 문의):**

```
memory_limit = 512M

max_execution_time = 300

max_input_vars = 3000
```

**WordPress 구성:**

```
// In wp-config.php - limit post revisions

define('WP_POST_REVISIONS', 3);



// Enable WordPress debug logging if needed

define('WP_DEBUG_LOG', true);
```

### 2. 호스팅 수준 최적화[​](#2-hosting-level-optimizations "2. 호스팅 수준 최적화으로 직접 링크")

**객체 캐싱:**

* Redis 또는 Memcached 사용 가능 여부를 호스트에 문의
* 많은 관리형 WordPress 호스트는 이를 자동으로 제공합니다.

**PHP 버전:**

* 상당한 성능 향상을 위해 PHP 8.0+ 사용
* 대부분의 호스트는 PHP 버전 전환을 쉽게 허용합니다.

**서버 리소스:**

* 적절한 RAM(최소 1GB, 가능하면 2GB 이상) 확보
* SSD 스토리지는 기존 드라이브보다 데이터베이스 성능을 훨씬 향상시킵니다.

## 호스팅별 참고 사항[​](#hosting-specific-notes "호스팅별 참고 사항으로 직접 링크")

일부 호스트와 CDN은 POS가 WooCommerce REST API에 도달할 수 있도록 구성이 필요합니다:

| 호스트 / 서비스   | 문제                                                                                         | 해결책                                                                                         |
| ----------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| **GoDaddy**       | 웹사이트 방화벽이 `/wp-json/` REST API 호출을 차단함(\_"Received 'undefined'"\_와 같은 오류) | `Website Security > Firewall > Settings > Access Control > Allow URL Paths` → `/wp-json/` 추가 |
| **WP Engine**     | REST API를 명시적으로 활성화해야 함                                                          | REST API 활성화; 필요한 경우 방화벽에서 API 엔드포인트 허용 목록에 추가                        |
| **Cloudflare**    | REST API 요청을 차단할 수 있으며 API 응답을 캐시할 수 있음                                   | 방화벽 규칙 확인; `/wp-json/*`에 대해 **캐시 우회** 페이지 규칙 추가                           |
| **WordPress.com** | REST API / 상품 로딩 호환성 문제(상품 9\~10개만 표시됨)                                      | 완전한 호환성을 위해 자체 호스팅 WordPress.org 사용                                            |
| **공유 호스팅**   | 동시 POS 호출에 비해 PHP 워커가 너무 적거나 메모리가 부족함                                  | VPS 또는 관리형 WordPress 호스트로 이전                                                        |

보안 플러그인(Wordfence 등)도 비슷한 방식으로 REST API를 차단할 수 있습니다. 전체 목록과 해결책은 [플러그인 충돌](/ko/support/troubleshooting/plugin-conflicts.md)을 참조하세요.

### HTTP 414 — URI Too Long[​](#http-414-uri-too-long "HTTP 414 — URI Too Long으로 직접 링크")

대용량 장바구니나 체크아웃 URL에 포함된 액세스 토큰이 서버의 URL 길이 제한을 초과할 수 있습니다(체크아웃 요청은 `GET`을 사용함). 이는 브라우저별로 다를 수 있으며 브라우저 캐시에 의해 악화될 수 있습니다.

**해결 방법:** 먼저 브라우저 캐시를 지운 다음 서버의 URL 길이 제한을 늘리세요:

* **Apache:** `httpd.conf`에 `LimitRequestLine 65536`
* **Nginx:** `nginx.conf`에 `large_client_header_buffers 4 65536;`
* 구성에 액세스할 수 없는 경우 호스팅 제공업체에 조정을 요청하세요.

## 도움을 요청해야 할 때[​](#when-to-seek-help "도움을 요청해야 할 때으로 직접 링크")

다음과 같은 경우 호스팅 제공업체 또는 WordPress 개발자에게 문의하십시오:

* 최적화 노력에도 불구하고 **서버 부하가 지속적으로 > 8.0**
* 간단한 작업에 대해 **실행 시간이 > 5000ms**
* 로그에서 **메모리 오류**가 자주 발생하는 경우
* **데이터베이스 쿼리가 > 2초** 이상 지속적으로 소요되는 경우

다음 정보를 제공하십시오:

* 로그의 서버 메트릭
* 활성 플러그인 목록
* 서버 사양 (CPU, RAM, 스토리지 유형)
* WordPress 및 WooCommerce 버전

## 관련 문서[​](#related-documentation "관련 문서으로 직접 링크")

[로그서버 메트릭에 접근하고 해석하는 방법](/ko/support/logs.md)

[결제 성능결제 프로세스 최적화](/ko/support/performance/checkout.md)

[오류 코드성능 관련 오류 코드 이해하기](/ko/error-codes/.md)

[문제 해결일반적인 문제 해결 가이드](/ko/category/troubleshooting.md)
