섹션 설정·기사 목록
현재 테마의 섹션을 불러오는 중입니다.
섹션 조회 완료 · 섹션 설정과 기사 목록을 각각 저장해주세요. 공개 화면 연결은 별도입니다.
API 요청 중 섹션 필드 또는 API가 없다는 오류가 발생했습니다. 입력은 유지되며, 백엔드 반영 후 다시 요청할 수 있습니다.
섹션을 불러오거나 저장하지 못했습니다. API 연결 상태를 확인하고 다시 불러오기를 눌러주세요.
다른 창에서 변경된 섹션입니다. 입력 내용을 보관하고 다시 불러와주세요.
일부만 저장되었거나 저장 결과를 확인하지 못했습니다. 중복 등록을 막기 위해 저장을 멈췄습니다. 입력 내용을 보관하고 다시 불러와주세요.
저장 오류 확인 정보: {details}
섹션명, 섹션번호, 표시 개수와 광고 위치를 확인해주세요.
이 섹션을 변경할 권한이 없습니다. 권한이 있는 기존 메뉴에서 다시 열어주세요.
뉴스 섹션 메뉴의 작업 권한이 없습니다. 기존 메뉴에서 열거나 관리자에게 권한을 요청해주세요.
메뉴 권한을 확인하지 못했습니다. 연결 상태를 확인한 후 다시 불러오기를 눌러주세요.
저장할 행의 기사를 선택하거나 직접 링크의 제목과 올바른 주소를 입력해주세요.
한 섹션에는 최대 100개 항목을 연결할 수 있습니다.
처리할 행의 체크박스를 선택해주세요. 일괄 수정은 저장된 행에 적용됩니다.
새로 추가한 행을 먼저 저장한 후 순서를 변경해주세요.
기사
직접 링크
찾기
비우기
저장
표시하지 않는 섹션
선택한 연결을 삭제할까요? 기사·미디어 원본은 삭제하지 않습니다.
저장했습니다.
DB 저장은 완료했지만 캐시 갱신을 확인하지 못했습니다. 캐시 반영을 다시 실행해주세요.
미디어 라이브러리를 준비하고 있습니다. 잠시 후 다시 열어주세요.
미디어 라이브러리를 열지 못했습니다. 잠시 후 다시 시도해주세요.
사진을 설정할 섹션을 다시 선택해주세요.
선택한 미디어의 이미지 주소를 확인해주세요.
섹션명 변경
데이블 광고 추가
광고 설정·위치 변경
광고 삭제
데이블 광고
자동 광고번호: {number}
기준 섹션과 위·아래 위치를 선택하면 광고번호가 자동으로 표시됩니다.
광고번호: {number}
설정을 저장하면 광고번호가 자동 생성됩니다.
광고번호는 영문으로 시작하는 21자 이내의 영문·숫자·하이픈·밑줄로 입력해주세요.
실제 데이블 연결 정보는 나중에 설정할 수 있습니다.
광고
기준 섹션 위에 표시
기준 섹션 아래에 표시
위
아래
{section} · {position}
데이블 광고가 배치될 영역
관리자용 위치 미리보기 · 실제 광고는 송출하지 않습니다.
위젯 ID: {id}
서비스: {name}
기준 영역이 없어 위치를 다시 지정해야 합니다.
기준 섹션을 선택하세요.
이 데이블 광고 섹션을 삭제할까요? 기존 뉴스 섹션은 유지됩니다.
데이블 광고 배치를 저장했습니다.
데이블 광고 섹션을 삭제했습니다.
광고 이름, 기준 섹션, 위치와 미리보기 높이(80~800px)를 확인해주세요. 연결 정보를 입력했다면 발급 ID와 서비스명 형식도 확인해주세요.
이 페이지에 같은 데이블 위젯 ID가 이미 등록되어 있습니다.
편집 화면에는 페이지당 최대 20개의 광고 배치를 저장할 수 있습니다.
광고 섹션을 찾을 수 없습니다. 입력 내용을 보관한 후 새로고침해주세요.
공통
공통 영역 미리보기를 불러오지 못했습니다. 페이지를 새로고침해 주세요.
섹션번호는 영문으로 시작하는 21자 이내의 영문·숫자·하이픈·밑줄로 입력해주세요. 공통영역만 비워둘 수 있습니다.
이 페이지의 다른 영역에서 사용 중인 섹션번호입니다.
사진 설정
리스트 설정
사진을 등록해주세요
등록 {count}개 · 화면 표시 {limit}개
저장하지 않은 변경사항을 버릴까요?
위로 이동
아래로 이동
제외
추가
선택됨
기사 또는 직접 입력한 항목을 추가해주세요.
현재 사이트에서 검색된 뉴스 기사가 없습니다.
기사를 검색하고 있습니다.
섹션을 저장하고 있습니다.
섹션을 저장했습니다.
사진을 업로드하고 있습니다.
사진을 확인한 후 이 섹션 저장을 눌러주세요.
섹션명, 표시 개수, 사진 주소와 리스트 항목을 확인해주세요.
한 섹션에는 최대 100개 항목을 등록할 수 있습니다.
5MB 이하의 JPG, PNG, GIF, WebP 사진을 선택해주세요.
현재 테마가 변경되었습니다. 내용을 보관한 후 페이지를 새로 열어주세요.
다른 창에서 먼저 저장했습니다. 변경 내용을 보관한 후 새로고침해주세요.
현재 사이트에서 사용할 수 없는 기사가 포함되어 있습니다. 리스트를 확인해주세요.
섹션을 저장하지 못했습니다. 변경 내용은 유지됩니다. 잠시 후 다시 시도해주세요.
기사 목록을 불러오지 못했습니다. API 연결과 권한을 확인해주세요.
사진을 업로드하지 못했습니다. 다시 시도해주세요.
요청을 처리하지 못했습니다. 다시 시도해주세요.
로그인이 만료되었습니다. 변경 내용을 보관한 후 다시 로그인해주세요.
(*)필수항목 생략
작업 실패
상태에서는 삭제할 수 없습니다
삭제 확인
삭제 후 복구할 수 없습니다
삭제
계속하기
취소
복사할 수 없는 상태입니다
상태를 붙여넣을 수 없습니다.
데이터가 없습니다
작업 완료
현재 .env로 .env-sites/{theme}/.env를 덮어쓰시겠습니까?
.env를 테마 폴더에 복사했습니다.
유효한 테마명을 입력해주세요.
현재 .env 파일이 없습니다.
대상 .env-sites 테마 폴더가 없습니다.
.env 파일을 복사하거나 확인하지 못했습니다.
API 요청이 실패했습니다. 확인해주세요
오브젝트 스토리지 연결에 실패했습니다. 버킷 이름과 접근 권한을 확인해주세요.
.env 설정을 저장하지 못했습니다. 입력값과 파일 쓰기 권한을 확인해주세요.
.env 설정을 저장했습니다.
index 캐시를 삭제했습니다.
index 캐시를 삭제하지 못했습니다.
미확인
연결 확인 중
연결 성공
연결 실패
자체 DB 또는 로깅 안 함은 Cloud 연결 테스트가 필요하지 않습니다.
D1 요청에 실패했습니다. 로그용 설정과 테이블 준비 여부를 확인해주세요.
D1 테스트 로그 테이블을 준비했습니다.
테스트 로그를 D1에 저장했습니다.
D1에서 최근 로그를 조회했습니다.
저장된 테스트 로그가 없습니다.
파일 업로드 중 오류가 발생했습니다.
KeywordHostSites는 10개까지 입력 가능합니다.
web-tracking 설정을 찾을 수 없습니다.
토큰이 존재하지 않습니다.
마지막 항목 라인에서 편집을 완료합니다.
상태에서는 위아래로 움직일 수 없습니다
작업을 수행하려면 해당 라인의 확인란을 클릭하세요.
마지막 항목 라인이 제거되었습니다.
숫자를 입력하세요
AgentToken이 만료되었거나 비어 있습니다.
친구키등록목록에 친구목록 정보를 등록해주세요
SeqNo가 중복되었습니다. 작업 실패
복사할 항목을 선택하세요.
REPORT_SERVER_URL이 구성되지 않아 PDF를 생성할 수 없습니다.
이메일 주소를 입력해주세요.
문자 수신번호를 입력해주세요.
문자 제목과 본문을 입력해주세요.
문자 제목을 입력해주세요.
문자 본문을 입력해주세요.
이 이메일을 사용할 수 있습니다.
이 이메일은 이미 사용 중입니다.
닉네임을 입력해주세요.
사용 가능한 닉네임입니다.
이미 사용 중인 닉네임입니다.
유니멤버와 패밀리사이트에서 모두 사용 가능한 닉네임입니다.
유니멤버에서 이미 사용 중인 닉네임입니다.
패밀리사이트에서 이미 사용 중인 닉네임입니다.
유니멤버와 패밀리사이트에서 모두 사용 중인 닉네임입니다.
닉네임 중복확인에 실패했습니다.
닉네임 중복확인을 완료해주세요.
휴대전화 인증을 완료해주세요.
회원필수 정보가 변경되었습니다.
패밀리사이트의 닉네임으로도 복사하고 변경하시겠습니까?
유니멤버와 패밀리사이트의 회원필수 정보가 변경되었습니다.
유니멤버 정보는 변경되었으나 패밀리사이트 정보 변경에 실패했습니다.
회원필수 정보 변경에 실패했습니다.
비밀번호가 변경되었습니다.
비밀번호 변경에 실패했습니다.
다보리에서 전송된 이메일의 인증번호를 확인하세요.
인증 메일 전송에 실패했습니다.
이메일 인증이 완료되었습니다.
이메일 인증을 완료해주세요.
이메일과 인증번호를 입력해주세요.
이메일 인증번호를 다시 발송해주세요.
이메일 인증번호를 다시 확인해주세요.
확인
성함을 입력해주세요.
휴대전화 번호를 입력해주세요.
휴대전화 인증번호를 전송했습니다.
휴대전화 인증번호 전송에 실패했습니다.
휴대전화 번호와 인증번호를 입력해주세요.
인증번호를 다시 발송해주세요.
휴대전화 인증번호를 다시 확인해주세요.
휴대전화 인증이 완료되었습니다.
비밀번호를 입력해주세요.
비밀번호 확인을 입력해주세요.
비밀번호와 비밀번호 확인이 일치하지 않습니다.
자리 이상으로 입력해주세요.
특수 문자를 포함해주세요.
대문자를 포함해주세요.
해당 지점에는 재고가 없습니다.
쿠폰 지원 예정(홈페이지 보류)
상품 상세페이지 URL을 입력해주세요.
쿠폰을 받으실 이메일 주소를 입력해주세요.
쿠폰 적용 약관에 동의하셔야 합니다.
CAPTCHA에서 로봇이 아닙니다를 확인해주세요.
라우터 생성 및 블로그/상품 구분 연결 확인
현재 테마 라우터를 생성한 뒤 메인메뉴의 블로그/상품 구분 연결을 확인하시겠습니까?
표시할 메뉴가 없습니다.
메뉴 트리를 불러오지 못했습니다.
폴더 경로를 입력해주세요.
폴리싱을 실행하시겠습니까? 원본 파일은 -polishing-ori로 보관됩니다.
복구를 실행하시겠습니까? -polishing-ori 파일이 원래 파일명으로 복구됩니다.
작업 중입니다. 완료될 때까지 기다려주세요.
이미지 폴리싱 작업이 완료되었습니다.
이미지 폴리싱 작업이 완료되었지만 일부 오류가 있습니다. 로그를 확인해주세요.
다운로드할 로그가 없습니다.
이미지 폴리싱 요청이 실패했습니다.
폴더 목록을 불러오지 못했습니다.
하위 폴더가 없습니다.
오늘 청구 대상 구독을 결제 큐에 생성하시겠습니까?
오늘 구독결제 큐 생성 쿼리가 실행되었습니다.
구독결제 큐 생성에 실패했습니다. list-type1-insert API, subscription/subs-queue 쿼리와 GateToken 권한을 확인해주세요.
선택한 티켓플로우를 찾지 못했습니다.
메타코어가 비어있습니다.
메타플로우 전개 확인
메타플로우 전개를 하시겠습니까?
선택한 프로젝트를 찾지 못했습니다.
이미 등록된 담당자입니다.
토스 결제수단 인증창을 열지 못했습니다. 잠시 후 다시 시도해주세요.
토스 테스트 키 형식을 확인했습니다.
ClientKey와 SecretKey에 토스 테스트 키를 입력해주세요.
KCP 설정 형식과 인증서·개인키 일치를 확인했습니다. 실제 결제 승인 테스트는 수행하지 않았습니다.
입력한 KCP 정보와 개인키 비밀번호를 확인해 주세요.
개인키 형식을 확인해 주세요. PRIKEY.pem 파일의 BEGIN부터 END까지 전체 내용을 입력해야 합니다.
개인키를 열 수 없습니다. PRIKEY.pem 전체 내용과 발급 시 지정한 비밀번호를 확인해 주세요. 서버의 암호화 형식 지원 문제일 수도 있습니다.
서버에서 개인키의 암호화 알고리즘을 지원하지 않습니다. 서버의 PHP/OpenSSL 지원 설정을 확인해 주세요.
RSA 개인키가 아닙니다. KCP에서 발급받은 PRIKEY.pem 파일인지 확인해 주세요.
개인키는 정상적으로 열렸지만 인증서와 짝이 맞지 않습니다. 같은 발급 건의 CERT.pem과 PRIKEY.pem을 입력해 주세요.
설정은 저장했지만 결제 설정 갱신을 확인하지 못했습니다. 잠시 후 다시 저장해 주세요.
반복 과금조건 저장에 실패했습니다. item-recur-act API 등록과 권한을 확인해주세요.
반복 과금조건 저장 응답에서 ID를 확인할 수 없습니다.
반복 과금조건 저장 후 재조회에 실패했습니다. item-recur-page API를 확인해주세요.
강의 정보 저장에 실패했습니다. item-class-act API 등록과 권한을 확인해주세요.
강의 정보 저장 응답에서 ID를 확인할 수 없습니다.
강의 정보 저장 후 재조회에 실패했습니다. item-class-page API를 확인해주세요.
PNG 이미지 파일만 업로드할 수 있습니다.
택소 이미지 업로드에 실패했습니다.
먼저 게시글을 저장해주세요.
저장할 관련기사가 없습니다.
검색 중입니다.
업로드 폴더와 R2 목록을 확인 중입니다.
파일 변경 여부를 비교 중입니다.
새 파일과 변경된 파일을 R2에 업로드 중입니다.
변경된 파일이 없어 업로드를 생략했습니다.
R2 폴더 업로드가 완료되었습니다.
R2 폴더 업로드에 실패했습니다.
업로드 {uploaded}개 · 동일 파일 {skipped}개 · 전체 {total}개
MediaDisk를 R2로 선택하고 공개 MediaUrl과 버킷·키를 입력해주세요.
회원 업로드 검증 또는 반영을 완료하지 못했습니다. 권한과 연결 상태를 확인하고 다시 검사하세요.
현대 회원 업로드 메뉴 권한이 없습니다. 검사에는 사용·목록·조회, 업로드에는 생성, 정리에는 삭제 권한도 필요합니다.
중복 정리를 완료하지 못했습니다. 다시 검사하여 현재 상태를 확인하세요.
중복 검사 요청이 실패했습니다. 이 검사 요청은 데이터를 삭제하지 않습니다.
정리 완료 여부를 확인하지 못했습니다. 삭제를 바로 반복하지 말고 다시 검사하여 현재 상태를 확인하세요.
로그인 세션 또는 보안 토큰이 유효하지 않습니다. ERP에 다시 로그인하고 화면을 새로 고침한 뒤 검사하세요.
중복 정리 요청 경로를 찾을 수 없습니다. 관리자에게 hdunix ERP 라우트 배포와 라우트 캐시 확인을 요청하세요.
요청 값이 올바르지 않거나 검사 결과가 유효하지 않습니다. 화면을 새로 고침하고 다시 검사하세요.
짧은 시간에 요청이 너무 많았습니다. 잠시 기다린 뒤 다시 검사하세요.
서버에서 요청을 처리하지 못했습니다. 관리자에게 이 HTTP 상태와 member-maintenance 요청 경로를 전달해 서버 배포·연결 상태를 확인하세요.
서버 응답을 받지 못했습니다. 네트워크 연결을 확인한 뒤 다시 검사하세요.
서버 응답이 중복 정리 데이터 형식이 아닙니다. 로그인 화면으로 이동했거나 배포가 불완전할 수 있습니다. 다시 로그인한 후에도 같으면 관리자에게 요청 경로의 배포 상태를 확인하세요.
중복 고객
회원·고객 연결 확인 필요
중복 교육 주문
삭제 대상
전체 회원과 연결 데이터를 검사 중입니다. 아직 삭제하지 않았습니다.
남길 ID와 정리 대상, 병합 후 완료 수, 제외 사유를 확인하세요. 확인란을 체크하고 정리하면 기존 학습 기록·답안을 합친 뒤 자동 백업 없이 중복 주문을 삭제합니다.
현재 .env.dabory API로 고객·교육 주문 중복을 조회했습니다. 표시된 ID는 검토 대상이며 삭제 대상 확정이 아닙니다. 수료·진도·전체 연결 검증과 일괄 삭제 API가 연결되지 않아 자동 삭제는 비활성화됩니다. 데이터는 변경하지 않았습니다.
안전하게 자동 삭제할 중복이 없습니다. 표시된 제외 사유가 있으면 별도 확인이 필요합니다.
실제 완료 기록·진도·답안을 보존 주문에 합친 뒤 표시된 중복 주문을 여러 차례로 나누어 자동 백업 없이 삭제할까요? 확인한 대상만 차례로 처리합니다. 완료될 때까지 창을 닫지 마세요.
최신 자료를 재검사하고 학습 기록·답안을 병합·검증한 뒤 중복을 정리 중입니다. 창을 닫지 마세요.
:batch차 분할 정리를 진행 중입니다.
확인한 정리 대상 중 남은 중복: :count건
삭제 확인 누계
:batch차까지 완료한 정리는 반영되었습니다. 아래는 삭제가 확인된 누계이며, 다음 정리는 중단했습니다.
확인된 중복 정리가 완료되었습니다. 제외 건은 별도 확인하고 기존 회원 로그인은 다시 로그인하세요.
서버에 보관된 암호화 백업 파일
입력값을 확인하세요. 안전한 이미지·링크 주소와 올바른 콘텐츠를 입력해야 합니다.
이미지 주소 형식이 올바르지 않습니다. 대표이미지 또는 위젯 이미지를 확인하세요.
링크 주소 형식이 올바르지 않습니다. http(s) 또는 /로 시작하는 주소를 입력하세요.
전체 배치
공통
등록된 콘텐츠가 없습니다. 섹션 설정에서 추가하세요.
기사 목록은 공개 페이지에서 자동으로 불러옵니다.
등록된 이미지가 없습니다.
품목코드 (Enter 검색)
품목 검색
미디어 선택
전체 선택
저장
품목 추가
위젯·링크 추가
입력한 번호·코드로 검색한 후 콘텐츠를 선택하세요.
연결할 콘텐츠를 불러오지 못했습니다. 입력 내용을 보관하고 다시 시도하세요.
이미 이 섹션에 연결된 콘텐츠입니다.
등록
화면 표시
순서
콘텐츠
이미지·링크·설명
순서·삭제
다른 창에서 변경되었습니다. 입력 내용을 보관하고 페이지를 다시 연 뒤 저장하세요.
이 섹션을 편집할 권한이 없습니다. 메뉴 권한을 확인하세요.
로컬 섹션 데이터를 처리하지 못했습니다. 입력 내용을 보관하고 다시 시도하세요.
현재 테마가 변경되었습니다. 메뉴를 다시 열어주세요.
저장하지 않은 변경 내용을 버릴까요?
콘텐츠는 한 섹션에 최대 100개까지 등록할 수 있습니다.
로컬 테스트 데이터를 저장했습니다. 공개 사이트에는 반영되지 않습니다.
섹션 데이터를 처리하지 못했습니다. 입력 내용을 보관하고 다시 불러와주세요.
반환 상태
API 응답 원문
원인
관련 필드
DB에 필요한 컬럼이 없습니다. 테이블 스키마와 API 모델을 확인해주세요.
API가 조회하는 DB에 테이블이 없습니다.
요청한 API 경로를 찾지 못했거나 등록되지 않았습니다.
API 접근 권한 또는 인증 토큰 오류입니다.
고유값이 중복되어 저장이 거절되었습니다.
필수 필드 값이 누락되었습니다.
필드 형식 또는 허용 길이가 맞지 않습니다.
저장 요청의 입력 검증에서 거절되었습니다.
API 응답 대기시간을 초과했습니다.
API 서버에 연결하지 못했습니다.
API 내부 DB 쿼리 오류입니다.
API가 오류를 반환했습니다. 반환 상태와 서버 로그를 확인해주세요.
응답에 Page 필드가 없습니다. API 응답 형식을 확인해주세요.
Page가 null이고 조회 건수 0도 확인되지 않아 빈 목록으로 처리할 수 없습니다.
Page가 목록 형식이 아닙니다.
응답 행 수가 편집기의 조회 한도를 초과했습니다.
API 응답에 필수 필드가 빠졌습니다. 새 테이블의 API 모델 매핑을 확인해주세요.
응답 레코드의 ID, 종류 또는 저장 범위가 올바르지 않습니다.
저장된 JSON 설정을 해석하지 못했습니다.
API 호출 중 통신 예외가 발생했습니다. 연결 및 응답시간을 확인해주세요.
섹션 데이터를 불러오지 못했습니다. 아래 API 오류 정보를 확인해주세요.
일부만 저장되었거나 결과를 확인하지 못했습니다. 중복 등록을 막기 위해 저장을 멈췄습니다. 입력 내용을 보관하고 페이지를 다시 불러와주세요.
이전 저장에서 콘텐츠 종류 변경이 완료되지 않았습니다. 맞지 않는 행을 삭제한 후 콘텐츠를 다시 선택하고 저장해주세요.
저장된 섹션과 콘텐츠를 불러왔습니다.
섹션 설정과 콘텐츠를 저장했습니다.
로컬 데이터를 불러왔습니다. 섹션 설정과 콘텐츠를 편집해 테스트할 수 있습니다.
현재 테마 index의 섹션 표식을 사용합니다. 콘텐츠 저장은 로컬 테스트입니다.
테마 index가 없어 표준 pro index를 사용합니다. 콘텐츠 저장은 로컬 테스트입니다.
현재 테마에 품목·위젯 전시 연결이 없어 표준 전시 구조의 테스트 섹션을 표시합니다.
뉴스는 기존 저장소를 유지하고 공통 푸터만 로컬에서 테스트합니다.
수동으로 등록한 섹션과 로컬 예시 콘텐츠를 사용합니다.
nsh01m62b01x의 기본 섹션 구성을 사용합니다.
게시번호
품목코드
위젯번호
테스트 콘텐츠 찾기
콘텐츠 선택
이미지
검색 조건에 맞는 테스트 콘텐츠가 없습니다.
콘텐츠 추가
새 섹션
새 광고
이 섹션과 등록된 콘텐츠를 삭제할까요? 연결된 광고가 있으면 광고를 먼저 이동하거나 삭제해주세요.
섹션을 삭제했습니다.
연결된 광고를 다른 섹션으로 옮기거나 삭제한 후 이 섹션을 삭제해주세요.
콘텐츠 종류를 바꾸면 현재 목록을 비우고 새로 등록합니다. 계속할까요?
광고 배치 미리보기 · 실제 광고 요청 없음
데이블
구글 애드센스
이미지 배너
직접 입력 HTML
테마 index는 있지만 편집할 섹션 표식이 없습니다. 디자이너가 data-section-key 등의 표식을 연결해야 합니다. 공통 푸터만 편집할 수 있습니다.
섹션 설정·콘텐츠 목록
위젯 설명 · 메모필드 입력
완료
섹션 설정
표시하지 않음
데이블 설정 미리보기 · 실제 광고 요청 없음
데이블 광고
데이블 광고는 페이지당 최대 20개까지 등록할 수 있습니다.
이 데이블 광고 설정을 삭제하시겠습니까?
데이블 광고 설정을 삭제했습니다.
위로
아래로
행 삭제
테스트 품목 ID
미디어 ID
표시 제목
연결 URL
이미지 URL
설명
레이어 JSON · 코드 보관용
Video UID가 없습니다.
동영상 상태 확인에 실패했습니다. 잠시 후 다시 재생해주세요.
동영상 준비 시간이 길어지고 있습니다. 잠시 후 다시 재생해주세요.
동영상 재생 준비를 확인 중입니다.
잠시만 기다려 주십시요. 동영상 재생을 위하여 인코딩 작업중입니다...
워드프레스 유지보수
- Home
- 워드프레스 유지보수
[홈페이지제작][워드프레스] 속도 측정 - 모니터링과 진단
안녕하세요 ?
국내 유일의 무료 워드프레스 쇼핑몰 "우커머스 교실"에서 사용하고 있는, 워드프레스 속도 최적화 측정 방법에 대해 알아 보도록 하겠습니다.
다른 국가 사람들과 비교되는 한국인의 가장 중요한 문화 코드는 '빨리빨리'입니다. 그러한 '빨리빨리 문화'는 부작용도 많았지만 한국의 경제를 단 시간내에 세계 14위의 경제 규모로 키워낸 원동력이 되었습니다. 이런 환경의 인터넷 사용자는 웹사이트가 1~2초 안에 페이지가 뜨지 않으면 느리다면서 창을 닫는 경우가 많습니다.
그런데 워드프레스는 블로그, CMS(Contents Management System 저작물 관리 시스템) 중에서도 콜백함수(Callback function) 이라는 방법을 많이 사용하므로 해당 함수를 더 많이 사용할수록 속도가 느려지는 특성을 가지고 있습sl다. 유연한 프로그램 개발을 위한 플러그인의 장점인 콜백이 결국 속도 저하의 원인 제공을 하게 된 것이지요.
오늘 포스팅할 내용은 "워드프레스 속도가 느려지면 이러이러한 플러그인을 설치해봐라"라는 무책임한 제안이 아닌 속도 저하의 원인과 그 해결 방법을 찾아갈 수 갈 수 있도록 길잡이를 제시하는 것입니다.
실제 웹사이트 방문자들이 체감하는 웹사이트 속도는 크게 2가지의 요소로 정리합니다.
(1) 다운로드 속도
웹사이트 다운로드 속도란 페이지 로딩 속도라고도 하는데 웹사이트의 이미지 화일을 포함하는 정적인 컨텐츠( Static Contents ) 인 Html, Javascript, Css 화일이 다운 로드되는 속도를 말합니다. 웹페이지를 웹브라우져에 로딩하는 시간입니다. 가장 큰 영향을 미치는 이미지와 Html이나 Javascrip, css 가 웹브라우져에서 다운로드 되는 속도와 관계됩니다.
(2) 웹서버 부하 감소
웹사이트의 동적인 요소인 데이터베이스 쿼리와 쿼리된 데이터를 조작해서 Html로 보여주는 일련의 과정에서 서버의 부하가 일어납니다. 결국 서버 부하의 대부분은 Mysql 이라는 데이터베이스에서 쿼리하는 데이터의 량과 속도에 영향을 받습니다.
일단 다운 로드의 경우 속도 측정을 어떤 요소가 속도에 영향을 미치고 있는가가 중요한 요소입니다. 잘 알려진 속도 측정 사이트를 소개합니다.
(1) 핑덤
핑덤은 전 세계적으로 사이트 속도 측정을 위해 가장 많이 이용되는 사이트 중 하나이며, 측정했던 기록이 남기 때문에, 보완 후 다시 측정 했을 때 얼마나 효과가 있었는지도 확인 가능 합니다. 핑덤 테스트 바로가기
(2) 구글 페이지 스피드
웹사이트의 다운 로드 속도를 즉정하는 도구로써는 Google 의 PageSpeed 가 있습니다. 구글 스피드 인사이트는 구글에서 제공하는 측정 사이트로, 속도 측정 결과와 함께 수정 해야할 사항들을 표시해 줍니다. 구글 페이지 스피드 인사이트바로가기
(3) GT 매트릭스
GT 매트릭스는 고정된 위치(IP)가 아닌 각 국가의 위치에서 속도를 측정해줍니다. 즉, 글로벌 유저를 표적고객으로 하는 웹사이트에를 테스트 하기에 적절한 사이트 입니다. GT 매트릭스
해당 웹사이트들은 대부분의 웹사이트 측정을 하는 웹사이트는 다운 로드 속도 이상을 측정해주지는 않습니다. 그 이유는 웹사이트 다운로드 속도 측정은 웹서버 내부의 Database 엑세스와 Apache 나 NginX와 같은 Php와 같은 동적으로 컨텐츠를 구성하는 과정을 측정해내지는 못하기 때문입니다.
또한 이미지 최적화에 대한 수준도 이미지실제 사이즈와 웹페이지상의 사이즈를 비교하여 실제 썸네일의 이미지 화일이 제대로 축소된 썸네일 화일로 보여지고 있는가를 측정해서 보여주기 때문에 CDN을 통한 네트워크 부하 감소 및 서버 부하 감소를 측정해주지는 않습니다.
따라서 위에 언급한 사이트들을 이용하여 다운로드 속도의 상대적인 기준으로 평가하되 절대적 기준으로 정하지는 않으셔야 합니다.
이미지 최적화의 고급 기술 중 Image Polishing 이라는 이미지의 화질이 떨어지지 않므면서 이미지의 크기를 축소하여 웹브라우즈에 다운로드하는 기술이 있는데 이런 방법을 채용하면 최대 80%까지 이미지 다운로드량을 압축할 수 있습니다. https://www.symphonysoft.co.kr는 이미지 압축 기술인 Polishing 기술이 웹사이트에 적용되어 실시간으로 적용되어 압축된 이미지가 네임 서버에서 직접 다운로드되는 방식을 취하고 있어 다운로드 속도가 타 우커머스 사이트에 비할 수 없이 빠릅니다.
웹서버 부하 측정으로 들어가면 이제 양상은 상당이 복잡해지기 시작합니다. 워드프레스 기술 구조중 가장 강점 중에 하나인 유연한 플러그인(Plugin) 개발 기법은 워드프레스를 통한 무한한 기능 확장이 용이하게 될 수 있도록 만들어져서 워드프레스를 전 세계 CMS 툴 분야에서 사실상을 표준을 만들수 있는 일등공신이 되었습니다. 하지만 강점이 있으면 그것으로 인한 약점도 생기는 법이지요. 워드프레스 플러그인에서 주로 사용하는 Calllback 함수 (보통 Hook이라고 부르기도 합니다.)가 특성상 미리 로직을 로딩하여 컴파일 해둔 상태에서 한 페이지가 실행되는 상황에 따라 사용 여부를 결정하는 방식이므로 자연적으로 서버 부하가 상대적으로 많이 발생하는 구조입니다.
사실은 그리고 각 플러그인들은 대부분의 메인 페이지는 웹사이트의 root 폴더의 index.php에 모두 include되어 컴파일되는 방식으로 만들어져 있으므로 플러그인 개발자가 플러그인 개발시 최적화에 공을 들이지 않으면 하나의 플러그인이 웹서버 부하를 크게 발생시켜 버립니다. 또한 개별 웹 페이지가 실행될 때 마다 각 플러그인의 세팅 정보를 읽어 내어야 하는데 그 개별 정보 하나 하나가 wp-options라는 하나의 테이블 한 레코드에 저장되도록 구성되어 있으므로 많은 수의 Mysql Query를 발생시켜 버립니다.
대체적으로 워드프레스에서 한 페이지를 보여줄 때 80~200개 정도의 쿼리가 발생되는데 MySql에서 데이터를 가져오는데 이 숫자가 많을수롤 서버 부하는 증가되는 것입니다. 그래서 워드프레스의 속도는 사실 이 쿼리의 갯수를 최대한 적게하고, 쿼리 속도를 최대한 빠르게 만드는 것이 가장 중요한 관건이 되는 것입니다. 그래서 Mysql를 워드프레스에 적합하도록 튜닝하는 것이 중요한 이슈가 되지만 실제 그럴만한 기술를 가진 사람을 찾기란 힘든 상황입니다. 대체적으로 Php Version 5.x 대에서 Php 7으로 업그레이드 한 경우라도 만족스러운 결과가 나오지 않는 것은 근본적으로 워드프레스가 Mysql을 혹사시키고 있다고 예상되기 때문입니다.
지금까지 다보리에서 워드프레스로 개발된 웹사이트를 호스팅하면서 발견된 재미있는 사항을 서버 사양을 높힌다 하여도 한번 잘못 개발된 플러그인을 사용하고 있는 경우 특별한 개선책이 나오지 않았다는 것입니다. 따라서 가장 고질적인 문제인 서버 부하의 감소를 위하여 플러그인과 테마의 효율성을 확보하는 것에 다름아닌 것입니다.
일단 플러그인의 속도 진단은 되어야 하므로 플러그인 속도 진단 플러그인을 소개합니다.
P3(Plugin Performance Profiler 설치
P3 (Plugin Performance Profiler) 플러그인을 사용하면 플러그인에 대한 진단 문제를 쉽게 해결 가능한데 자세히 살펴보면 제작사가 GoDaddy라는 미국의 가장 큰 웹호스팅사로 되어 있습니다. 다른 곳도 아닌 웹호스팅사가 뭐가 답답해서 이런 것을 만들었을까요 ? 이것은 웹호스팅사가 워드프레스 호스팅 때문에 많은 골머리를 앓고 있다는 것을 명백히 보여주는 것입니다. 공통으로 사용하는 웹서버에 서버 부하를 심하게 가져가는 워드프레스 웹호스팅이 그렇게 환영받지 못한다는 것입니다.
실제 미국의 내노라하는 웹호스팅사가 워드프레스 전용 웹호스팅 상품을 공격적으로 영업하지 않는 이유가 이런 문제점이 있기 때문이 아닐까 하고 생각해 보았습니다.
![[Wordpress Optimization]_P3-Plugin-Performance-Profiler-Result](https://www.symphonysoft.co.kr/wp-content/uploads/2016/09/Wordpress-Optimization_P3-Plugin-Performance-Profiler-Result.png)
▲ P3 (Plugin Performance Profiler) 스캔시 부하의 퍼센티지와 실행시간을 보여주므로써 어떤 플러그인에서 많은 부하가 발생하는지를 보여줍니다.
5. P3로 측정한 다보리-통합 플러그인의 효율성
아래를 살펴보면 우커머스와 다보리-통합 플러그인 간의 비교치가 나옵니다. 다보리 통합-플러그인은 14 정도의 플러그인이 통합된 결과물로써 해당 플러그인의 총합보다 3/4 정도 서버 부하량을 줄여주고 있습니다.
--p3-다이아그램 이미지--
그래서 이 도표는 다보리에서 영리하게도 우커머스용 플러그인을 통합함으로서 얻을 수 있었던 속도 개선 효과를 잘 보여주고 있다고 할 수 있습니다.
| 구분 | 다보리 플러그인에 통합된 기능 |
|---|
다보리 개발 필수 플러그인 | (1)다보리-멤버스 II (2)한국형 주소 찾기 (3)소셜 로그인/휴면 계정관리 (4)국가별 보안차단 (5)네이버 블로그 자동등록
|
다보리 개발 우커머스 필수 플러그인 | (6)신용카드 PG 결제 페이앱, LGU+, 카카오페이, KCP, 이니시스, 나이스정보. JT-Net, 올더게이트 (7)배송 추적 (8)바로구매 버튼 (9)다보리 SMS (10)무통장입금 자동 등록 (11)굿스플로 배송장 자동 출력 기능
|
Query Monitor 디버깅 플러그인 이긴 하지만 용도에 따라 훌륭한 쿼리 분석기가 될 수 있으며 워드프레스 사이트의 성능 개선을 위한 Intuition을 제공합니다. 예를 들면 플러그인 설치후 Php warning 와 Slow Query 를 분석하여 추가된 플러그인이나 기능 또는 웹폰트 추가 등으로 사이트가 늦어지는 이유에 대한 영감을 얻을 수 있습니다

뉴렐릭은 소프트웨어와 웹, 모바일 중심으로 급격히 변화한 서비스 구조를 가장 쉽고 효과적으로 모니터링하고 선제대응(Proactive) 할 수 있는 데이터를 제공하는 모니터링 플랫폼입니다. 뉴렐릭을 통하여 웹 서비스, 모바일 애플리케이션의 성능 개선과 문제점 확인, 복잡한 서버단의 구성요소들을 효과적으로 모니터링 할 수 있습니다.
뉴렐릭은 어플리케이션 레이어에서부터 서버단의 소프트웨어 레이어까지 복잡하고 다양한 주체들을 웹 기반의 통합 모니터링 도구를 이용하여 한 눈에 확인할 수 있도록 서비스를 제공하고 있습니다. 뉴렐릭은 웹서버단에 설치된 플러그인과 W3TC Plugin 과 통합된 개발한 워드프레스 플러그인을 통하여 지원할 수 있도록 되어 있습니다.
뉴렐릭은 서버단에서 플러그인이 설치 되어야 하므로 일반적인 웹호스팅 회사에서 제공되는 호스팅 서비스로는 사용할 수 없습니다. 다보리 워드프레스 웹호스팅에서는 2016년이내에 워드프레스에서의 뉴렐릭 모니터링 서비스를 제공하도록 하겠습니다.
1. MySQL Analysis


2. Monitoring the Performance of Third Party Plugins and APIs.

3. Ajax and JavaScript

Monitoring Your WordPress Performance
▶ 개인정보의 수집 및 이용목적
- 서비스 이용에 따른 본인식별, 실명확인, 가입의사 확인, 서비스이용
- 신규 서비스 등 최신정보 안내 및 개인맞춤서비스 제공을 위한 자료
- 기타 원활한 양질의 마케팅 서비스 제공 등
▶ 수집하는 개인정보의 항목
- 이름, 이메일, 핸드폰번호, 그 외 선택항목
▶ 개인정보의 보유 및 이용기간
- 원칙적으로 개인정보의 수집 또는 제공받은 목적 달성 시 지체 없이 파기합니다.
- 다만, 원활한 서비스의 상담을 위해 상담 완료 후 내용을 1년간 보유할 수 있으며 소비자보호에 관한 법률 등 타법률에 의해 보존할 필요가 있는 경우에는 일정기간 보존합니다.
댓글쓰기