WordPress 자동화
Guest
STAGE 1 · Lv.1

WordPress 설치와 초기 세팅

수동 설치, 자동 설치, Docker 방식의 WordPress 설치법과 wp-config.php 설정, 시간대, 퍼머링크, 읽기/쓰기 설정을 마스터합니다.

WordPress 설치 전 준비사항

시스템 요구사항

WordPress를 설치하기 전에 서버가 최소 요구사항을 충족하는지 확인해야 합니다. WordPress.org에서 공식적으로 권장하는 요구사항은 다음과 같습니다:

PHP 7.4+
PHP 8.2 이상 권장
🗃
MySQL 5.7+
MariaDB 10.4+ 권장
🌐
Apache/Nginx
mod_rewrite 필수
🔒
HTTPS
SSL 인증서 권장

호스팅 선택 가이드

WordPress 호스팅은 크게 네 가지 유형으로 나눌 수 있습니다:


공유 호스팅(Shared Hosting): 여러 사이트가 하나의 서버를 공유합니다. 가장 저렴하지만 성능이 제한적입니다. 초보자에게 적합합니다. (월 3,000~10,000원) 예: Bluehost, SiteGround, 카페24


VPS(Virtual Private Server): 가상 서버를 독립적으로 사용합니다. 더 높은 성능과 자유도를 제공합니다. 중급 사용자에게 적합합니다. (월 10,000~50,000원) 예: Vultr, DigitalOcean, AWS Lightsail


전용 서버(Dedicated Server): 물리 서버 전체를 독점적으로 사용합니다. 최고의 성능을 제공하지만 비용이 높습니다. 대규모 사이트에 적합합니다. (월 100,000원~)


관리형 WordPress 호스팅: WordPress에 최적화된 전문 호스팅입니다. 자동 업데이트, 백업, 보안, 캐싱 등을 제공합니다. (월 30,000~100,000원) 예: WP Engine, Kinsta, Flywheel

💡 호스팅 선택 팁
처음 시작하는 분이라면 공유 호스팅으로 시작해도 충분합니다. 트래픽이 늘어나면 VPS나 관리형 호스팅으로 업그레이드할 수 있습니다. 한국 사용자라면 카페24 같은 국내 호스팅도 좋지만, 글로벌 서비스를 할 계획이라면 Cloudways, Vultr, AWS Lightsail 등을 추천합니다.

방법 1: 수동 설치 (FTP/SSH)

가장 기본적인 설치 방법

수동 설치는 WordPress의 동작 원리를 가장 잘 이해할 수 있는 방법입니다. 서버에 직접 파일을 올리고 데이터베이스를 연결하는 과정을 통해 WordPress의 구조를 체감할 수 있습니다.

  1. WordPress 다운로드: wordpress.org에서 최신 버전을 다운로드합니다. 한국어 버전은 ko.wordpress.org에서 받을 수 있습니다. zip 또는 tar.gz 파일로 제공됩니다.
  2. 데이터베이스 생성: MySQL/MariaDB에서 WordPress용 데이터베이스와 사용자를 생성합니다. phpMyAdmin이나 CLI를 사용할 수 있습니다.
  3. 파일 업로드: 다운로드한 WordPress 파일을 웹 서버의 document root(보통 /var/www/html/ 또는 public_html/)에 업로드합니다. FTP, SFTP, 또는 SSH를 사용합니다.
  4. wp-config.php 설정: wp-config-sample.php를 wp-config.php로 복사한 후, 데이터베이스 정보를 입력합니다.
  5. 설치 마법사 실행: 브라우저에서 도메인에 접속하면 5분 설치 마법사가 실행됩니다. 사이트 제목, 관리자 계정 등을 설정합니다.

데이터베이스 생성 (MySQL CLI)

# MySQL 접속
mysql -u root -p

-- 데이터베이스 생성
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 사용자 생성 및 권한 부여
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '강력한비밀번호123!@#';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

SSH를 이용한 WordPress 다운로드 및 설치

# 웹 서버 디렉토리로 이동
cd /var/www/html/

# WordPress 최신버전 다운로드
wget https://wordpress.org/latest.tar.gz

# 압축 해제
tar -xzf latest.tar.gz

# 파일 이동 (도메인 루트에 설치할 경우)
mv wordpress/* .
rmdir wordpress
rm latest.tar.gz

# 소유권 및 권한 설정
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
chmod -R 775 /var/www/html/wp-content/

# wp-config.php 생성
cp wp-config-sample.php wp-config.php
nano wp-config.php
⚠ 보안 주의사항

1. 데이터베이스 비밀번호는 반드시 강력하게 설정하세요 (영문 대소문자 + 숫자 + 특수문자 조합, 16자 이상).

2. root 계정 대신 전용 데이터베이스 사용자를 만들어 사용하세요.

3. 데이터베이스 사용자에게는 해당 WordPress 데이터베이스에만 권한을 부여하세요.

4. wp-config.php 파일의 권한은 600 또는 640으로 설정하는 것이 안전합니다.

방법 2: 자동 설치 (cPanel/Softaculous)

원클릭 설치의 편리함

대부분의 공유 호스팅에서는 Softaculous, Installatron, Fantastico 등의 자동 설치 도구를 제공합니다. cPanel 기반 호스팅에서 가장 많이 사용되는 Softaculous를 기준으로 설명합니다.

  1. cPanel 접속: 호스팅 업체에서 제공한 cPanel URL(보통 yourdomain.com:2083)에 로그인합니다.
  2. Softaculous 찾기: cPanel 대시보드에서 "Softaculous Apps Installer" 또는 "WordPress" 아이콘을 클릭합니다.
  3. WordPress 선택: Softaculous에서 WordPress를 찾아 "Install" 또는 "Install Now" 버튼을 클릭합니다.
  4. 설치 옵션 설정: 프로토콜(https://), 도메인, 디렉토리, 사이트 이름, 관리자 계정 정보를 입력합니다. 데이터베이스는 자동으로 생성됩니다.
  5. 고급 옵션: 테이블 접두사(보안을 위해 wp_ 대신 다른 접두사 권장), 자동 업데이트 설정, 백업 설정 등을 구성합니다.
  6. 설치 완료: "Install" 버튼을 클릭하면 몇 분 내에 설치가 완료됩니다. 관리자 URL이 표시됩니다.
💡 자동 설치 팁
Softaculous 설치 시 "Disable WordPress Cron"을 체크하지 마세요. WordPress Cron은 예약 발행, 플러그인 업데이트 확인 등에 필수적입니다. 또한 "Auto Upgrade" 옵션을 활성화하면 보안 업데이트가 자동으로 적용되어 편리합니다.

방법 3: Docker를 이용한 설치

컨테이너 기반 WordPress

Docker를 사용하면 개발 환경을 완전히 격리하여 WordPress를 실행할 수 있습니다. 로컬 개발, 테스트, CI/CD 파이프라인에서 매우 유용합니다. Docker Compose를 사용하면 WordPress와 MySQL을 한 번에 설정할 수 있습니다.

# docker-compose.yml
version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: mypassword
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content
    depends_on:
      - db

  db:
    image: mariadb:10.11
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: mypassword
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
# Docker Compose로 실행
docker-compose up -d

# 브라우저에서 접속
# http://localhost:8080

# 중지
docker-compose down

# 데이터 포함 완전 삭제
docker-compose down -v
💡 Docker 활용 팁
Docker 볼륨을 사용하면 컨테이너를 삭제해도 데이터가 유지됩니다. wp-content 디렉토리를 호스트에 마운트하면 테마와 플러그인 파일을 직접 편집할 수 있어 개발 시 편리합니다. 프로덕션 환경에서는 Docker보다 일반적인 서버 설치를 권장합니다.

wp-config.php 완전 가이드

WordPress의 두뇌: wp-config.php

wp-config.php는 WordPress의 핵심 설정 파일입니다. 데이터베이스 연결 정보, 보안 키, 디버그 설정, 파일 시스템 설정 등 WordPress의 동작에 관한 모든 중요한 설정이 이 파일에 담겨 있습니다. 이 파일을 제대로 이해하고 설정하는 것이 WordPress 관리의 기본입니다.

// 데이터베이스 설정 (필수)
define('DB_NAME', 'wordpress_db');   // DB 이름
define('DB_USER', 'wp_user');     // DB 사용자
define('DB_PASSWORD', '비밀번호');  // DB 비밀번호
define('DB_HOST', 'localhost');    // DB 호스트
define('DB_CHARSET', 'utf8mb4');   // 문자 인코딩
define('DB_COLLATE', '');         // 정렬 규칙

// 테이블 접두사 (보안상 기본값 변경 권장)
$table_prefix = 'mysite_';  // 기본값 'wp_' 대신

// 보안 키 (api.wordpress.org/secret-key에서 생성)
define('AUTH_KEY', '고유한 긴 문자열...');
define('SECURE_AUTH_KEY', '고유한 긴 문자열...');
define('LOGGED_IN_KEY', '고유한 긴 문자열...');
define('NONCE_KEY', '고유한 긴 문자열...');
define('AUTH_SALT', '고유한 긴 문자열...');
define('SECURE_AUTH_SALT', '고유한 긴 문자열...');
define('LOGGED_IN_SALT', '고유한 긴 문자열...');
define('NONCE_SALT', '고유한 긴 문자열...');

// 디버그 설정 (개발 시에만 활성화)
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);

// 추가 보안 설정
define('DISALLOW_FILE_EDIT', true);  // 관리자에서 파일 편집 차단
define('FORCE_SSL_ADMIN', true);   // 관리자 SSL 강제

// 메모리 제한
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

// 자동 업데이트 설정
define('WP_AUTO_UPDATE_CORE', 'minor'); // 마이너 버전만 자동 업데이트
⚠ 반드시 변경해야 할 것

보안 키(Salt Keys)를 반드시 고유한 값으로 변경하세요! api.wordpress.org/secret-key/1.1/salt/에 접속하면 랜덤한 키를 자동으로 생성해줍니다. 이 값을 그대로 복사해서 wp-config.php에 붙여넣으면 됩니다. 보안 키는 쿠키 암호화, 세션 보안 등에 사용되며, 유출되면 사이트 보안이 위험해집니다.

WordPress 5분 설치 마법사

설치 마법사 단계별 안내

wp-config.php 설정이 완료되면 브라우저에서 사이트에 접속하여 설치 마법사를 진행합니다. WordPress가 유명한 "5분 설치(Famous 5-minute Install)"의 시작입니다.

🌐
언어 선택
📝
사이트 정보
👤
관리자 계정
설치 완료
  1. 언어 선택: "한국어"를 선택합니다. 언어는 나중에 설정 > 일반에서 변경할 수 있습니다. 다국어 사이트를 만들 계획이라면 영어로 설치한 후 WPML이나 Polylang 플러그인을 사용하는 것도 방법입니다.
  2. 사이트 제목 입력: 사이트의 이름을 입력합니다. SEO에 영향을 주므로 신중하게 선택하세요. 나중에 변경 가능합니다.
  3. 관리자 사용자명: "admin"은 절대 사용하지 마세요! 해커들이 가장 먼저 시도하는 사용자명입니다. 고유한 사용자명을 설정하세요.
  4. 관리자 비밀번호: WordPress가 생성하는 강력한 비밀번호를 사용하거나, 직접 강력한 비밀번호를 만드세요. 영문 대소문자, 숫자, 특수문자를 모두 포함하는 16자 이상의 비밀번호를 권장합니다.
  5. 이메일 주소: 관리자 이메일을 입력합니다. 비밀번호 재설정, 업데이트 알림 등에 사용되므로 실제 사용하는 이메일을 입력하세요.
  6. 검색엔진 노출: 사이트가 아직 준비 중이라면 "검색엔진이 사이트를 색인하지 못하게 합니다"를 체크하세요. 사이트가 완성되면 해제합니다.

초기 세팅: 일반 설정

설정 > 일반

WordPress 설치 후 가장 먼저 해야 할 것이 일반 설정입니다. 관리자 대시보드의 설정 > 일반에서 다음 항목들을 확인하고 수정합니다:


사이트 제목: 브라우저 탭과 검색 결과에 표시되는 사이트 이름입니다. 브랜드명이나 핵심 키워드를 포함하세요.


태그라인: 사이트를 한 줄로 설명하는 문구입니다. "또 하나의 WordPress 사이트"가 기본값인데, 반드시 변경하세요. SEO에 도움이 되는 문구를 작성합니다.


WordPress 주소(URL): WordPress가 설치된 실제 URL입니다. 잘못 변경하면 사이트에 접속할 수 없게 되므로 주의하세요.


사이트 주소(URL): 방문자가 접속하는 URL입니다. 보통 WordPress 주소와 동일합니다.


관리자 이메일: 관리 관련 알림을 받을 이메일입니다.


회원 가입 허용: 누구나 회원가입할 수 있게 할지 여부입니다. 커뮤니티 사이트가 아니라면 비활성화를 권장합니다.


새 사용자 기본 역할: 회원가입 시 기본 역할입니다. 반드시 "구독자"로 설정하세요. "관리자"로 설정하면 보안에 큰 위험이 됩니다.

시간대(Timezone) 설정

올바른 시간대 설정은 예약 발행, 로그 기록, 사용자 활동 추적 등에 필수적입니다.


설정 위치: 설정 > 일반 > 시간대


한국 사이트라면 "서울" (UTC+9)를 선택합니다. "UTC+9"로 선택해도 되지만, 도시명으로 선택하면 서머타임 등이 자동 처리됩니다.


날짜 형식: 한국에서는 "Y년 n월 j일" 또는 "Y-m-d" 형식이 적합합니다.


시간 형식: 24시간 형식(H:i)이 한국에서 일반적이지만, 12시간 형식(a g:i)도 선택 가능합니다.


한 주의 시작: 한국에서는 보통 "월요일"로 설정합니다.

💡 시간대 설정 팁
시간대를 잘못 설정하면 예약 발행이 의도한 시간에 게시되지 않습니다. 예를 들어 UTC로 설정된 상태에서 한국 시간 오전 9시에 발행을 예약하면, 실제로는 한국 시간 오후 6시에 발행됩니다. 설치 직후 반드시 확인하세요.

퍼머링크(고유주소) 설정

SEO의 시작: 퍼머링크

퍼머링크(Permalink)는 각 포스트와 페이지의 고유한 URL 구조를 말합니다. WordPress 설치 후 반드시 첫 번째로 변경해야 할 설정입니다. 기본값인 "일반(?p=123)" 구조는 SEO에 매우 불리합니다.


설정 위치: 설정 > 고유주소(퍼머링크)

구조 예시 SEO
기본 ?p=123 나쁨
날짜와 이름 /2024/03/15/제목/ 보통
월과 이름 /2024/03/제목/ 보통
숫자 /archives/123 나쁨
글 이름 /제목/ 최고
사용자 정의 /%category%/%postname%/ 좋음
/%postname%/
가장 권장되는 퍼머링크 구조 (글 이름 기반)

퍼머링크 구조 태그 레퍼런스

사용자 정의 구조에서 사용할 수 있는 태그들입니다:


%year% - 발행 연도 (4자리, 예: 2024)

%monthnum% - 발행 월 (예: 03)

%day% - 발행 일 (예: 15)

%postname% - 포스트 슬러그 (URL에 사용되는 이름)

%post_id% - 포스트 ID 번호

%category% - 카테고리 슬러그

%author% - 작성자 슬러그

⚠ 퍼머링크 변경 시 주의
이미 운영 중인 사이트의 퍼머링크를 변경하면 기존 URL이 모두 404 에러를 반환합니다. 검색엔진에 색인된 URL도 깨집니다. 퍼머링크 변경 시에는 반드시 리다이렉트 설정(Redirection 플러그인)을 함께 해주세요. 사이트 초기에 한 번 설정하고 바꾸지 않는 것이 가장 좋습니다.

읽기 설정

설정 > 읽기

읽기 설정은 사이트의 첫 화면과 콘텐츠 표시 방식을 결정합니다.


홈페이지 표시:

- "최근 글": 블로그 형태로 최신 포스트가 메인 페이지에 표시됩니다.

- "정적인 페이지": 특정 페이지를 홈으로 설정합니다. 기업 사이트나 랜딩 페이지에 적합합니다.


페이지당 표시할 최대 글 수: 기본값 10개. 너무 많으면 로딩이 느려지고, 너무 적으면 페이지네이션이 과다해집니다. 10~15개가 적절합니다.


RSS 피드 글 수: RSS 구독자에게 보여줄 글 수입니다.


피드에서 표시: "요약"을 선택하면 RSS로 전체 콘텐츠가 유출되는 것을 방지할 수 있습니다.


검색엔진 가시성: "검색엔진이 이 사이트를 색인하지 못하도록 합니다"를 체크하면 noindex 메타 태그가 삽입됩니다. 사이트 개발 중에만 체크하고, 공개 시 반드시 해제하세요.

쓰기 설정

설정 > 쓰기

기본 글 카테고리: 포스트 작성 시 카테고리를 지정하지 않으면 이 카테고리가 자동 적용됩니다. "미분류" 대신 의미 있는 카테고리를 만들어 설정하세요.


기본 글 형식: 일반적으로 "표준"을 유지합니다.


이메일로 글쓰기: 이메일을 보내서 포스트를 발행하는 기능입니다. 보안상 사용하지 않는 것을 권장합니다.


업데이트 서비스: 새 글을 발행하면 핑(ping)을 보내는 서비스 URL입니다. 기본값인 rpc.pingomatic.com으로 충분합니다.

토론 설정

설정 > 토론 (댓글 관리)

댓글 관련 설정은 스팸 방지와 커뮤니케이션 관리에 중요합니다:


기본 글 설정:

- "새 글에 대해 다른 블로그에서의 알림 허용" (핑백/트랙백) - 스팸의 원인이 될 수 있으므로 비활성화 권장

- "사람들이 새 글에 댓글을 남길 수 있도록 허용" - 목적에 따라 설정


댓글 표시 전 조건:

- "댓글은 수동으로 승인되어야 합니다" - 스팸 방지를 위해 활성화 권장

- "댓글 작성자가 이전에 승인된 댓글이 있어야 합니다" - 유용한 옵션


댓글 관리:

- 링크가 포함된 댓글을 보류 대기열에 추가하는 옵션 (스팸 방지에 효과적)

- 금지 단어 목록으로 특정 키워드가 포함된 댓글을 자동 차단


아바타: Gravatar 서비스를 통해 댓글 작성자의 프로필 이미지를 표시합니다.

💡 스팸 방지 팁
WordPress 설치 시 기본으로 포함된 Akismet 플러그인을 활성화하세요. 무료로 스팸 댓글을 자동 필터링해줍니다. 추가로 reCAPTCHA를 댓글 폼에 적용하면 더욱 효과적입니다.

설치 후 필수 체크리스트

  1. 퍼머링크 설정: 설정 > 고유주소에서 "글 이름(/%postname%/)"으로 변경합니다. 이것은 설치 후 가장 먼저 해야 할 작업입니다.
  2. 시간대 설정: 설정 > 일반에서 시간대를 "서울"로 변경합니다.
  3. 태그라인 변경: "또 하나의 WordPress 사이트"를 의미 있는 문구로 변경합니다.
  4. 기본 콘텐츠 삭제: "Hello world!" 포스트, "샘플 페이지", 기본 댓글을 삭제합니다.
  5. 불필요한 플러그인 삭제: Hello Dolly 플러그인을 삭제합니다. Akismet은 활성화하세요.
  6. SSL/HTTPS 설정: 사이트 URL을 https://로 변경합니다. Really Simple SSL 플러그인이 도움이 됩니다.
  7. 관리자 프로필 업데이트: 사용자 > 프로필에서 닉네임과 표시 이름을 설정합니다. 로그인 사용자명이 사이트에 노출되지 않도록 합니다.
  8. 핑백/트랙백 비활성화: 설정 > 토론에서 핑백을 비활성화합니다.
  9. 검색엔진 노출 확인: 설정 > 읽기에서 "검색엔진이 이 사이트를 색인하지 못하게 합니다"가 해제되어 있는지 확인합니다 (사이트 공개 시).
  10. wp-config.php 보안: DISALLOW_FILE_EDIT을 true로 설정하고, 보안 키가 고유한 값인지 확인합니다.

WP-CLI: 커맨드라인 설치 & 관리

고급: WP-CLI로 WordPress 관리하기

WP-CLI는 WordPress를 커맨드라인에서 관리할 수 있는 공식 도구입니다. 서버에 SSH 접속이 가능하다면 WP-CLI를 사용하면 관리 작업을 훨씬 빠르게 수행할 수 있습니다.

# WP-CLI 설치
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

# WordPress 다운로드 & 설치 (한 번에!)
wp core download --locale=ko_KR
wp config create --dbname=wordpress --dbuser=wp_user --dbpass=password
wp core install --url=example.com --title="내 사이트" \
  --admin_user=myadmin --admin_password=StrongPass123! \
  --admin_email=admin@example.com

# 기본 설정 변경
wp option update timezone_string "Asia/Seoul"
wp rewrite structure "/%postname%/" --hard
wp option update blogdescription "나의 사이트 설명"

# 기본 콘텐츠 정리
wp post delete 1 --force  # Hello World 삭제
wp post delete 2 --force  # 샘플 페이지 삭제
wp comment delete 1 --force
wp plugin delete hello
💡 WP-CLI 활용
WP-CLI는 특히 여러 WordPress 사이트를 관리하거나 자동화 스크립트를 작성할 때 매우 유용합니다. 플러그인 설치, 테마 변경, 데이터베이스 검색-치환, 백업 등 거의 모든 WordPress 작업을 CLI에서 수행할 수 있습니다. 자동화 마스터를 목표로 한다면 WP-CLI는 반드시 익혀야 할 도구입니다.

이 레슨의 핵심 정리

기억해야 할 것들

1. WordPress 설치 방법은 수동(FTP/SSH), 자동(Softaculous), Docker 세 가지가 있습니다.


2. wp-config.php는 WordPress의 핵심 설정 파일입니다. 보안 키, DB 정보, 디버그 설정을 관리합니다.


3. 퍼머링크를 /%postname%/로 설정하는 것이 SEO에 가장 유리합니다.


4. 시간대를 "서울(Asia/Seoul)"로 설정하세요. 예약 발행에 영향을 줍니다.


5. 설치 후 기본 콘텐츠(Hello World, 샘플 페이지) 삭제와 보안 설정을 반드시 수행하세요.


6. WP-CLI를 사용하면 커맨드라인에서 빠르게 WordPress를 관리할 수 있습니다.

다음 레슨에서 계속!
WordPress가 설치되었으니, 다음 레슨에서 관리자 대시보드를 완전 정복합니다.
다음: 관리자 대시보드 완전 정복 →
필수 이 레슨의 난이도는 어땠나요?
난이도를 선택해주세요
이전 강의 목록 다음 강의
로그인하고 XP 받기