본 포스팅은 특정업체와 상관없으며 특정업체를 광고하기 위한 포스팅이 아님을 밝힙니다. 특정업체에서 어떠한 대가도 받지 않았으며, 개인적으로 확인 및 사용하고 검토한 결과를 바탕으로 작성한 포스팅입니다. 

웹호스팅 선택의 잣대 - 비용


워드프레스를 사용한 웹호스팅뿐아니라 일반적인 다른 웹사이트를 운영할 때 고려해야 할 사항은 여러가지가 있습니다.
사용자들이 일반적으로 가장 많이 고려하는 것은 호스팅 비용입니다.

웹호스팅에 대한 설명과 국내에서 일반 사용자들이 많이 사용하는 카페24, 가비아, 닷홈에 대한 호스팅 비교는 아래 포스팅을 참고바랍니다.


만약 자신의 웹사이트가 호스팅 서버의 사양이 그리 중시되지 않는다면 위의 업체 비교 내용만 확인하고 호스팅 업체를 선정해도 괜찮습니다.
그렇지만 자신이 사용하고자 하는 웹호스팅 서버의 사양이 높아야 된다면, 상황은 조금 달라집니다.


그렇다면 호스팅 사양에 대한 문제는?


호스팅 사양에 대한 문제는 다음과 같은 상황에서 발생합니다. 워드프레스 개발을 예로 들겠습니다.
개발자는 자신의 로컬컴퓨터에서 오토셋을 활용해서 워드프레스를 개발합니다.
문제는 개발이 완료된 워드프레스 화일을 호스팅 업체의 운영서버에 이관할 때 오류 발생으로 나타납니다.



개발자는 자신의 로컬컴퓨터에서는 모든 테스트를 끝냈지만, 운영서버에 반영하는 시점에서 MySQL과 PHP 버전이 상이함으로 인해서 운영계 데이터베이스인 MySQL에 데이터가 제대로 이관되지 않거나 때에 따라서는 데이터베이스에는 제대로 이관이 되지만 웹브라우져에서 웹사이트 구동이 제대로 되지 않고 화면이 깨지는등 오류가 발생합니다.

개발자 입장에서 가장 좋은 방법은 자신의 로컬컴퓨터의 개발환경을 운영서버환경과 맞추는 것입니다. 로컬컴퓨터 호스팅 업체의 운영서버인 아파치, PHP, MySQL 버전과 동일하게 유지한 상태에서 워드프레스 개발을 한다면 문제는 발생하지 않을 것입니다. 그렇지만 현실은 그렇지 못합니다.




워드프레스 개발환경과 운영서버환경의 버전 차이


워드프레스를 개발하기 위해서 요즈음에 국내에서 일반적으로 사용하는 로컬 개발환경 도구는 오토셋입니다.
많이 사용하는 오토셋 버전은 오토셋8이나 오토셋9 입니다. 오토셋8과 오토셋9은 워드프레스 4.2 버전을 지원하고 있으며 워드프레스 4.2 버전을 설치하면 자동으로 데이터베이스인 MySQL은 5.6 버전이 설치됩니다.

따라서 워드프레스 4.2 버전을 사용해서 설치해서 개발을 하게되면 데이터베이스인 MySQL의 데이터베이스 캐릭터섹(Charset)은 utf8mb4로 저장됩니다.
이미 모든 개발을 완료하였다면, 모든 데이터는 utf8mb4 형태로 저장되어 있는 것입니다.

utf8mb4는 MySQL 5.5.3 버전부터 새롭게 지원되는 DB캐릭터셋으로 기존의 utf8에 비해서 모든 유니코드를 저장할 수 있는 이점이 있는 대신에 MySQL 버전이 5.5.3 이상이 되어야 하므로 그 보다 낮은 버전에서는 에러가 발생하게 됩니다.
그렇다고 처음부터 낮은 MySQL 버전으로 개발을 다시하는 것은 무리가 있습니다


MySQL 5.5.3 이상을 지원하는 가성비 웹호스팅 찾기


제일 좋은 방법은 MySQL 5.5.3 이상을 지원하면서 비용도 저렴한 가성비 높은 호스팅을 찾는 것입니다.

그렇지만 아직까지 국내 호스팅 업체들이 기본적으로 MySQL 5.5.3 이상 버전을 지원하는 경우는 많지 않습니다.
일반적으로 호스팅 업체에서는 MySQL 버전을 MySQL 5.x 로 표기하곤 합니다. 그렇지만 5.x 로 표시한 경우 5.0, 5.1 버전인 경우가 대부분이며 5.x 버전은 5.5 이하인 경우라 보면 됩니다.

MySQL 5.x로 표시되어도 추가 비용을 지불하면 상위버전으로 업그레이드가 가능합니다. 그렇지만 기본적으로 MySQL 5.6 을 제공하는 업체를 찾는다면 더욱 좋을 것입니다.
MySQL 5.6 버전을 지원하는 것 관련해서 모든 업체를 다 찾아볼 수도 없어서 제가 평소에 관심을 가지고 있던 호스팅 업체들 위주로 알아보았습니다.

확인해본 업체는 카페24, 닷홈, 가비아, 후이즈, 아이비호스팅입니다.
업체 선정의 기준은 연간 서비스 비용이 2만원 내외이면서 MySQL 5.6을 지원하는 호스팅 업체입니다. 그럼 한 업체씩 확인해보도록 하겠습니다.


카페24 호스팅


국민 호스팅인 카페24의 경우에는 일반형이 11,000원으로 제가 찾으려는 가격대의 서비스입니다.



그렇지만 MySQL 버전은 5.x 로 표기됩니다. 기본적으로 MySQL 5.6 버전을 지원하지 않습니다.








닷홈 호스팅


닷홈의 경우 64bit 웹 1.5G 서비스가 가격대에 적합합니다.




닷홈 역시 카페24와 마찬가지로 MySQL 을 4.x, 5.x 버전을 지원합니다. 따라서 5.6 버전을 기본적으로 지원하지 않습니다.




가비아 호스팅


가비아의 경우에는 워드프레스 전용호스팅이 MySQL 5.6을 지원합니다. 그렇지만 월 사용료가 9,500원으로 년간 할인가로 95,000원을 지불해야 합니다.
저의 예상 비용을 초과합니다.





가비아는 MySQL 5.6을 지원을 명기하고 있습니다.



후이즈 호스팅


후이즈는 비용이 저렴하지 않습니다. 가장 저렴한 요금도 년 14만원선을 지불해야 합니다.



후이즈는 MySQL 5.1을 지원합니다.




아이비호스팅


아이비호스팅은 IVY 2G의 경우에 년간 12,000원의 저렴한 비용에도 불구하고 MySQL 5.6 버전을 제공하고 있습니다.
MySQL 뿐아니라 아이비호스팅은 SSD 계정용량도 넉넉하고 저렴한 가격에도 고사양을 지향하고 있습니다.




가성비 웹호스팅 비교 정리표


마지막으로 가성비 웹호스팅 업체를 조사한 것을 표로 정리해보았습니다. 가성비 웹호스팅 선정에 참고바랍니다.


카페24
닷홈
가비아
후이즈
아이비호스팅
연간 서비스 비용
13,200원
10,200원
95,000원
141,600원
12,000원
MySQL 버전
MySQL 5.x
MySQL 4.x, MySQL 5.x
MySQL 5.6
MySQL 5.1
MySQL 5.6
가성비 호스팅 추천





워드프레스와 구글 애널리틱스 연동시키기


웹사이트의 지속성을 유지하기 위해서는 웹사이트분석의 유용한 도구인 구글 애널리틱스를 사용하는 것이 좋습니다. 구글 애널리틱스는 구글 애널리틱스 사이트에 들어가서 바로 사용할 수 있습니다. 그렇지만 워드프레스를 사용한다면 굳이 구글 사이트에 방문하지 않고 자신의 워드프레스 사이트에 플러그인을 설치해서 웹사이트 현황을 확인할 수 있습니다.

구글 애널리틱스 플러그인 중에서 많이 사용하는 플러그인 중의 하나는 Google Analytics by Yoast 플러그인입니다.





Google Analytics by Yoast 플러그인 설치하기


구글 애널리틱스 플러그인을 설치하기 위해서 관리자 메뉴의 왼쪽 사이드바에서 플러그인 추가하기 메뉴를 클릭합니다.



플러그인 검색화면에서 Google Analytics by Yoast 를 입력하고 검색합니다. 첫번째 플러그인의 치금 설치하기 버튼을 클릭합니다.





Google Analytics by Yoast 플러그인 연결하기


Google Analytics by Yoast  플러그인을 설치하면 관리자 화면에 다음과 같은 메뉴가 생성된 것을 확인할 수 있습니다. Analytics > Settings 메뉴를 클릭합니다.



구글 애널리틱스 by Yoast의 설정화면이 나타납니다. 구글 애널리틱스 계정에 인증하기 위해서 General 메뉴에서 Authenticate with your Google accout 버튼을 클릭합니다.



Authenticate with your Google accout 버튼을 클릭하면 구글 계정 로그인 팝업이 뜹니다.



이곳에 자신의 구글 계정을 입력하고 다음 버튼을 클릭해서 로그인을 진행합니다.



구글의 권한요청 내용의 팝업 화면이 나타납니다. 워드프레스 플러그인인 Google Analytics by Yoast에서 구글 애널리틱스의 데이터를 조회하기 위한 권한 요청 확인 팝업입니다. 하단의 동의 버튼을 클릭합니다.




동의 버튼을 클릭하면 인증코드가 나타납니다. 아래 인증코드를 드래그해서 복사해둡니다.



그리고 워드프레스 관리자 화면으로 와서 아래 입력란에 복사한 구글 인증코드를 붙여넣습니다.




구글 인증코드를 워드프레스에 붙여넣은다음에 Save authentication code 버튼을 클릭합니다.



구글 인증코드가 정상적으로 저장되고 연결되면 아래와 같이 설정화면이 변경되고 기존의 인증버튼이 Re-autenticate with your Google account 버튼으로 변경된 것을 확인할 수 있습니다. 이제는 분석을 위한 프로파일을 선택할 차례입니다.




Analytics profile 항목에서 Select a profile 선택박스를 클릭합니다.




profile 에서 전체 웹사이트 데이터를 선택합니다.



프로파일에서 분석할 웹사이트 데이터 항목이 선택되어진 상태에서 저장버튼을 클릭합니다. 이렇게 하면 구글 애널리틱스와 연결이 된 것입니다.



워드프레스 콘텐츠 작성시 페이지(Page)와 글(Post)을 구분해서 사용하자


워드프레스를 사용해서 글을 작성할 때 워드프레스 콘텐츠 타입을 크게 본다면 두 가지로 생각할 수 있습니다.
두 가지는 하나는 페이지(Page)이고 하나는 글(Post)입니다.
일반적으로 페이지(Page)는 회사 소개등 정적인인 내용을 구성할 때 사용하고, 동적인 블로그성 내용은 글(Post)로 작성하는 것이 좋습니다.




페이징 기능이란?


페이징 처리 기능은 아래 그림을 보면 바로 이해가 갈 것입니다. 페이징 처리 기능은 구글 화면과 같이 클릭을 해서 다음 페이지로 넘어가는 기능을 이야기합니다. 페이징 처리기능이란 용어는 페이지 네비게이션으로 IT 업계에서는 명명하기도 합니다.




요즈음에는 여러 블로그 시스템에서 페이징 기능을 특정 아이콘이나 이미지를 클릭해서 페이징 기능을 두는 대신에 스크롤을 내리면 동적으로 다음 블로그 내용들이 보여지는 방식으로 서비스를 구현하고 있습니다.


워드프레스 페이징 기능 적용의 묘(妙)


워드프레스의 페이징 기능은 여러가지 상황을 고려해 보아야합니다. 워드프레스의 버전과 어떤 테마를 사용하는지에 따라서 페이징 기능을 적용하는 방법이 다르기 때문입니다.

워드프레스의 태생은 작은 블로그 프로그램에서 시작이 되었습니다. 태생이 블로그이기 때문인지 과거 워드프레스 버전에서는 기본적으로 페이징 처리 기능이 페이지번호가 보이는 방식이 아니라 이전, 이후 정도의 페이지 기능 정도만 제공하고 있었습니다.

그래서 숫자가 보이는 페이징 기능을 구현하기 위해서는 페이징 플러그인으로 유명한 WP-PageNavi 플러그인을 설치해서 사용하는 경우가 많았습니다.
전세계적으로 백만건이상 설치된 WP-PageNavi 플러그인은 지금도 워드프레스에서 페이지 네비게이션 기능을 구현할 때 가장 많이 사용하는 플러그인입니다.




그렇지만 아래 화면과 같이 WP-PageNavi 플러그인을 설치한다고 해서 모든 일이 해결되는 것은 아닙니다.
WP-PageNavi 플러그인을 설치한 뒤에 자신의 워드프레스 테마 소스에서 functions.php 나 index.php 등 php 소스를 뒤져서 next_posts_link() 함수를 찾아서 아래 그림과 같이 변경해 주어야 했습니다.





테마가 변경될 때마다 페이징 소스를 수정해야하는 번거로움


워드프레스 설치시 기본적으로 제공되는 TwentyThiteen, TwentyFourteen 테마가 있습니다.
TwentyThiteen 테마까지는 그래도 아래 화면과 같이 next_posts_link 로 검색해서 찾으면 function.php 화일에 동일한 함수명으로 존재를 하였으나
TwentyFourteen 테마에서는 함수 이름마저 변경되었을 뿐아니라 작동 방식이 변경되었습니다.

[ TwentyThiteen 테마 fuctions 소스 ]





TwentyFourteen 테마에서는 functions.php 안에 페이징 기능의 소스가 있는 것이 아니라 template-tags.php 라는 별도의 파일로 inc 폴더안에 존재하게 됩니다. 



소스코드나 함수명도 변경되었습니다.



페이징 기능은 워드프레스 4.2.2와 TwentyFourteen 테마 조합으로


워드프레스 버전을 4.2.2이상 사용하고 기본 테마인 TwentyFourteen 테마를 사용한다면 WP-PageNavi나 별도의 페이징 플러그인을 설치하거나 PHP 소스코드를 수정하지 않아도 간단하게 설정이 가능합니다.


페이징 처리 실습하기


페이징 기능 실습환경은 워드프레스 버전은 4.2.2이상이고 테마는 TwentyForteen 로 구성하였습니다.
페이징 기능 사용을 위해서 관리자 화면의 왼쪽 사이트바 메뉴에서 설정 > 읽기 메뉴를 클릭합니다.



읽기 메뉴를 클릭하면 읽기 설정 화면이 나타납니다. 전면 페이지 표시 항목은 전면 페이지를 표시할 때 최근 글의 리스트를 보여주거나 정적인 페이지를 선택하는 기능입니다. 일단 테스트를 위해서 최근 글 항목에 체크합니다.

페이지당 보여줄 글의 수 항목은 기본적으로 10으로 세팅되어 있습니다. 한 페이지에서 몇 개의 블로그 글(POST)를 보여줄 것인지 설정하는 것입니다. 여기에 입력하는 숫자에 따라서 해당 숫자만큼의 글(POST)를 보여주고 나머지는 자동으로 페이징 표시가 화면에 디스플레이됩니다.




전면 페이지 표시 항목은 최근 글로 선택한 상태에서 페이지당 보여줄 글의 수 항목을 1로 변경하고 저장버튼을 클릭합니다.



저장버튼을 클릭한 뒤에 슈만의 웹사이트로 접속하면 아래와 같이 페이징 처리 기능이 나타나는 것을 확인할 수 있습니다.





가입형 워드프레스에서는?


현재 기준으로 확인하였을 때에 가입형 워드프레스 서비스인 워드프레스닷컴에서는 TwentyFourteen 테마에서 아래와 같이 동일하게 설정하지만 나타나는 페이징 결과는 다르게 나타납니다.

아래 화면은 설치형 워드프레스와 동일하게 페이지당 보여줄 글의 수를 1로 설정한 상태입니다. 페이지당 보여줄 글의 수를 1로 설정했기 때문에 페이지당 한 개의 블로그만 나타날 것입니다.



아래 화면을 보면 가입형에서는 설치형 워드프레스에서 나타난 것과 같이 페이지 번호는 나타나지 않고 이전글 버튼이 나타나는 것을 알 수 있습니다. 머지않아 가입형 워드프레스인 워드프레스 닷컴의 경우에도 버전업이 된다면 페이징 기능이 구현될 것입니다.






설치형 워드프레스 4.2.2 버전과 기본테마 TwentyThirteen의 조합은?


워드프레스 4.2.2 버전과 TwentyThirteen 테마의 조합으로는 페이징 기능이 다음과 같이 나타납니다.
여기에서는 페이지당 보여줄 글의 수를 2개로 설정하였습니다.



기본테마인 TwentyThirteen 테마 역시 페이징 기능이 페이지 번호로 출력되지 않고 이전 글로만 나타납니다. 이렇게 페이징 기능은 워드프레스 버전과 테마와 관계가 있습니다.





마지막으로 쓰는 비장의 방법은?


요즈음 개발되는 테마는 페이지 기능이 내장되어 있는 것도 있습니다.
그렇지만 자신의 워드프레스 버전과 테마가 지원을 하지 않는다면 플러그인을 설치하거나 소스코드를 수정해야 합니다.
플러그인 설치가 필요하다면 아래 플러그인을 설치해서 사용합니다.

WP-PageNavi과 WP PageNavi Style 플러그인


플러그인을 설치하기 위해서 워드프레스 관리자 화면의 왼쪽 사이드바에서 플러그인 추가하기 메뉴를 클릭합니다.


플러그인 검색화면에서 wp pagenavi를 입력하고 플러그인을 검색합니다. 검색된 플러그인에서 두 개를 설치할 것입니다.
첫번째 플러그인인 WP-PageNavi는 페이징 네비게이션 기능에 대한 플러그인이고, 두번째 WP PageNavi Style은 페이지 네이게이션의 모양 즉, 스타일을 바꾸는 플러그인입니다. 두 개를 모두 지금 설치하기 버튼을 클릭해서 설치해서 사용하면 됩니다.


WP-PageNavi 플러그인은 설정 > 페이지네비 메뉴에서 설정할 수 있습니다. 페이지네비 메뉴를 클릭합니다.




페이지 네비게이션 옵션에서 한 페이지에 보여줄 글(포스트)의 갯수를 정할 수 있습니다. 물론 이곳에서 설정을 저장한다고 WP-PageNavi 플러그인의 페이지 기능이 동작하지는 않습니다. 추가적으로 테마 소스를 수정해야 합니다. 테마 소스 수정은 아래 워드프레스 공식사이트 플러그인 설명 내용을 참고하여 수정바랍니다.





스타일은 WP PageNavi Style 플러그인에서


페이지네비의 스타일을 변경하려면 WP PageNavi Style 플러그인을 활성화해야 합니다.
플러그인을 활성화하면 왼쪽 사이드바에 PageNavi Style 메뉴가 생성됩니다. PageNavi Style을 클릭합니다.



이곳은 페이지 네이게이션의 스타일을 설정하는 화면입니다. 어떻게 사용자에게 보여지도록 하는지 디자인하는 곳이라 생각하면 됩니다.




스타일을 아래와 같이 변경해 보겠습니다. CSS3 PURPLE 항목을 선택했습니다.



아래 화면과 같이 변경된 것을 확인할 수 있습니다.




KBoard 게시판이란?


요즈음 국내에서 가장 많이 사용하는 워드프레스 게시판 중의 하나는 KBoard 입니다. KBoard 게시판을 사용하려면 KBoard 플러그인을 설치해야합니다. KBoard 게시판 플러그인은 워드프레스 공식사이트에서 다운로드 받을 수 없고 KBoard 개발사인 코스모스팜 사이트에 들어가서 다운로드 받을 수 있습니다.

KBoard 게시판에 대한 설명 및 사용법은 아래 포스팅을 참고바랍니다.



KBoard 게시판이 깨진다면?




워드프레스 KBorad 플러그인을 사용해서 게시판 기능을 이용할 때 아래와 같이 화면이 깨지는 경우가 발생할 수 있습니다.
현재 게시판 상태는 비주얼 모드 상태입니다. 모바일도 아닌데 자판이 보이고 본문을 입력하는 아래쪽에는 공백만 표시되고 있습니다. 비주얼 버튼 옆에 텍스트 버튼을 클릭합니다.



텍스트 버튼을 클릭하면 텍스트를 사용하는 편집기 화면이 나타납니다. 그렇지만 역시 화면이 온전해 보이지는 않습니다.
이런 현상이 발생할 때 소스코드를 수정하지 않고 KBoard 게시판 관리화면에서 설정 변경만으로 깨진 게시판 화면을 복구 할 수 있습니다.





KBoard 게시판이 깨질때 조치방법


워드프레스의 왼쪽 관리자 메뉴에서 KBoard > 게시판 목록을 클릭합니다.



게시판 목록에서 자신이 관리하고 있는 게시판 이름을 클릭합니다. 저의 경우 이벤트 게시판을 클릭합니다.



게시판 이름을 클릭하면 게시판을 관리하는 화면이 나타납니다. 고급설정 탭을 클릭합니다.




고급설정 화면을 아래로 내리면 특정 테마 레이아웃 깨짐방지 항목과 아이프레임으로 보기 항목이 있습니다.




아래 화면과 같이 특정 테마 레이아웃 깨짐 방지 항목은 그대로 두고 아이프레임으로 보기 항목을 활성화로 변경합니다.



아이프레임으로 보기를 활성화로 변경되면 KBoard 게시판 화면이 아래 화면과 같이 깨지않고 변경되는 것을 확인할 수 있습니다.




간혹 상황에 따라서는 특정 테마 레이아웃 깨짐 방지 항목도 활성화 해야하는 경우도 있습니다. 위의 방법으로 않된다면 특정 테마 항목도 활성화로 변경하면 됩니다.




워드프레스 테마와 구글링


워드프레스의 장점은 테마입니다. 워드프레스 테마는 여러 경로를 통해서 구할 수 있습니다. 가장 추천하는 방법은 워드프레스 공식사이트를 통해서 워드프레스 테마를 설치하는 것입니다. 그리고 유료 테마라고 하면 테마포레스트 등 검증된 유료 테마사이트를 사용하는 것이 좋습니다.
그렇지만, 요즈음에는 구글링을 통해서도 좋은 테마를 무료로 구할 수 있는 경우가 많습니다.




구글은 방대한 정보의 저장소입니다. 구글링을 통해서 많은 정보를 얻을수 있는 시대입니다. 구글링은 일을 하는데에도 큰 도움을 줍니다. 얼마나 빠른 시간에 원하는 것을 잘 찾아내느냐는 일이나 업무를 하면서 중요한 요소이며 구글링을 하면서 스스로 스킬업이 되곤 합니다.


구글링을 통해서 자신에게 딱 맞는 무료 테마를 찾을 수 있습니다. 그리고 구글링을 통해서 많은 사람들이 워드프레스 테마를 사용하고 있는 것 또한 사실입니다.
그렇지만 한 가지 문제점이 있습니다. 바로 워드프레스 보안에 관한 부분입니다.


당신의 워드프레스 테마는 안전합니까?


구글링을 통해서 얻은 무료 테마중에는 악의적인 목적을 가지고 정보 취득을 위한 피싱이나 광고, 또는 해킹 프로그램이 탑재된 경우가 있습니다. 아무리 테마가 좋다고 하더라도 이런 악의적인 코드가 탑재된 테마를 설치하는 것은 바람직하지 못합니다.

따라서 이런 악의적인 코드가 있는지 확인하는 것은 워드프레스 사이트를 보호하는 중요한 요소가 됩니다. 악의적인 코드를 확인하기 위해서 테마 소스코드를 모두 에디터프로그램을 열어서 확인하는 것은 쉽지 않습니다. 따라서 이때는 플러그인의 도움을 받으면 됩니다. 테마의 안정성 여부를 검증하는 플러그인으로는 Theme Authenticity Checker 일명 TAC 라는 플러그인이 있습니다.





TAC 플러그인 설치하기


TAC 플러그인을 설치하기 위해서 플러그인 추가하기 메뉴를 클릭합니다.



플러그인 검색창에서 tac를 입력하고 검색합니다. 첫번째 검색된 Theme Authenticity Checker 플러그인을 설치할 것입니다. TAC 플러그인은 10만명 이상이 설치해서 사용하고 있는 테마 검증용 플러그인입니다. 지금 설치하기 버튼을 클릭해서 설치를 진행합니다.



플러그인 설치가 완료되었습니다. 플러그인을 활성화 링크를 클릭해서 플러그인을 활성화 합니다.




TAC 플러그인으로 워드프레스 테마 안정성 검증하기


플러그인이 정상적으로 설치되면 외모 > TAC 메뉴가 생성된 것을 확인할 수 있습니다. TAC 메뉴를 클릭해서 테마의 안정성을 검토하도록 하겠습니다.




TAC 메뉴를 클릭하면 아래와 같은 테마 검증 화면이 나타납니다. 테마의 이름과 테마를 만든 저작자가 디스플레이 됩니다. 
각 각의 테마 아래에는 Theme OK 라는 녹색 버튼이 디스플레이 되어 해당 테마가 안전하다는 것을 나타냅니다.




만약 아래 테마가 안전하지 못하다면 즉, 특정 악의적인 프로그램이나 코드가 테마안에 있다면 녹색 버튼부분은 Encrypted Code Found! 라는 메시지를 나타낼 것입니다.



워드프레스의 금기사항


워드프레스를 사용할 때에 주의해야 하는 것이 있습니다.
워드프레스 시스템을 개발할 때 금기사항 두 가지는 바로 워드프레스 코어 수정과 PHP 날코딩입니다.

워드프레스는 코어와 테마, 플러그인으로 구성됩니다. 코어는 워드프레스 시스템 자체를 움직이게하는 근간이되는 소프트웨어입니다.
날코딩이란 사용하는 시스템의 프레임웍 규약이나 규정을 준수하지 않고 개인이 자신의 취향대로 프로그램 코딩하는 것을 이야기합니다.
그럼 이 두가지를 왜 사용하면 않되는지 알아보겠습니다.




워드프레스 코어는 금단(禁斷)의 열매


IT 프로젝트를 진행할 때에 개발 환경이 자바기반든 닷넷기반이든 아니면 워드프레스 프로젝트이든지 간에 고객의 특별한 요구사항은 있게 마련입니다.
고객의 특별한 요구사항이 개발 허용량을 벗어나거나 아니면 개발 비용과 기간에 중대한 영향을 미치는 것이라면 고객과의 적절한 협의는 반드시 필요합니다.




워드프레스로 시스템 구축 프로젝트를 진행할 때 간혹 고객의 요구사항에 대해서 분석을 해본경우 해당 기능을 구현한 적절한 플러그인을 찾지 못했다고 해서 워드프레스 코어 소스를 수정해서는 않됩니다. 

워드프레스 코어는 PHP 프로그램입니다. 아무리 PHP 프로그래밍을 잘 한다고 해서 코어를 수정해서 고객에게 제품을 납품하는 일은 워드프레스 프레임웍을 제대로 이해하지 못한 상황에서 취하는 임시변통의 방법입니다. 이런 임시변통의 방법은 조금 시간이 지난뒤에 고객의 큰 불만을 일으키는 요소가 됩니다.


워드프레스 코어는 보안이나 기능 이슈로 최신기능을 추가해서 자주 업데이트가 되고 있습니다. 코어를 수정한 시스템은 업데이트 시점에 치명적인 영향을 미칩니다. 또한 코어를 손댄다는 것은 코어와 연결된 각종 플러그인과 테마등에 영향을 줍니다. 잘 동작하던 시스템의 기능들이 마비될 수 있습니다.

워드프레스 업데이트로 웹사이트가 문제를 일으켰다고 해서 고객에게 워드프레스 절대 최신버전 업데이트 하면 않됩니다. 라는 말을 할 수 는 없습니다.

따라서 이럴 때는 코어를 수정하는 것이 아니라 고객이 요청한 내역에 대해서 신규 플러그인 개발을 해야하고 고객에게 그런 사실을 이야기하고 협의해 나가는 것이 좋은 방법이라 할 수 있습니다.



무엇보다 워드프레스 코어를 개발하거나 수정하는일은 워드프레스 개발사인 오토매틱(automattic)사에서 하는 일이지 우리가 하는 일이 아니라는 명확한 인식이 있어야 워드프레스의 금단의 열매에 손을 대지 않을 것입니다.





PHP 날코딩을 하지 말라


PHP 날코딩은 규정된 프레임웍과 상관없이 개발한 PHP 소스코드를 이야기합니다.
그런 코드는 워드프레스와 무관한 나홀로 코드가 됩니다. 워드프레스로 시스템을 개발할 때는 무엇보다 워드프레스 프레임웍 안에서 프로그래밍을 해야합니다. 예를 들어서 워드프레스 프레임웍 구조를 이해하였다면 PHP 나홀로 코딩이 아니라 커스텀 포스트 타입으로 PHP 프로그래밍을 하거나 해당기능을 하는 플러그인으로 구현해야 할 것입니다.


나홀로 PHP 코드는 워드프레스의 다른 기능들과 서로 연동되지 않기 때문에 역시 워드프레스 업데이트 시점마다 시스템을 추가적으로 유지 보수해야하는 비용이 들게 됩니다.

시스템 개발에 있어서 무엇보다 중요한 것은 고객과의 끈끈한 신뢰와 이해입니다. 그리고 고객이 전산시스템에 대한 이해도가 낮다고 해서 고객을 특정 이슈에 대해서 속이거나 감추고 개발하는 일은 결국 자신의 회사를 망하게 하는 지름길일 것입니다.



워드프레스 보안 지키미


워드프레스의 보안을 강화하기 위해서 여러가지 플러그인을 사용하는 것도 좋지만 하나의 플러그인으로 워드프레스의 일반적인 보안에 대한 대부분의 기능을 커버한다면 한 개의 플러그인만 설치하면 될 것입니다. 이런 기능을 하는 플러그인을 뽑으라면, 워드프레스 보안 분야에서 대표적인 플러그인인 iThemes Security 플러그인입니다. iThemes Security는 이미 70만 사이트에서 설치해서 운용하고 있을 정도로 저변과 신뢰성이 확보된 플러그인입니다.




iThemes Security 플러그인 설치하기


플러그인을 설치하기 위해서 관리자 화면 왼쪽 사이드바에서 플러그인 추가하기 메뉴를 클릭합니다.



플러그인 추가 화면의 키워드 검색 창에서 ithemes를 입력하고 검색합니다. 첫번째 검색된 iThemes Security 플러그인의 지금 설치하기 버튼을 클릭합니다.



플러그인 설치가 완료되었습니다. 플러그인을 활성화 링크를 클릭합니다.



iThemes Security 플러그인 활용하기


플러그인 설치와 활성화가 끝나면 워드프레스 관리자화면의 왼쪽 사이드바에 Security 메뉴가 생성됩니다. Security 를 클릭합니다.


Security 메뉴를 클릭하면 아래와 같은 중요사항에 대한 안내 팝업이 뜹니다. 플러그인을 사용하기 전에 먼저 해야할 일입니다.
여기에서 첫번째와 두번째 항목이 중요합니다.

첫번째는 워드프레스 사이트에 대한 빽업입니다. 보안 플러그인이기 때문에 보안 설정을 잘못하다가 관리자 자신도 로그인을 못하는 상황이 오게되면 마지막 순간에는 빽업 받은 데이터로 워드프레스 사이트를 복원하기 위함입니다.

두번째는 보안 플러그인 특성상 서버내 워드프레스 시스템 파일을 엑세스(Access)하게 됩니다. 따라서 보안 플러그인이 wp-config.php와 .htaccess 파일에 대해서 접근해서 수정할 수 있는 권한을 부여해 주는 것입니다.

이제 세부적인 기능에 대해서 하나하나 살펴보도록 하겠습니다.

첫번째 할일, 24시간동안 잠금기능 해제하기


Security > Dashboard 메뉴를 클릭합니다.



보안 플러그인을 설치해서 테스트 과정에서 관리자인 자기 자신이 로그인을 못하는 상황이 오면 않될 것입니다. Dashboard 탭에서는 자신의 IP를 24동안 잠금기능을 해제하는 기능을 설정할 수 있습니다. 아래 Temporarily Whitelist my IP 버튼을 클릭하면 자신이 보안적인 실수를 했다고 해도 관리자인 자신이 로그인을 못하게 잠그는 기능은 해제됩니다. Temporarily Whitelist my IP 버튼을 클릭합니다.



잠금 기능이 해제되면 아래 화면과 같이 자신의 IP 주소가 디스플레이되고 버튼이 변경됩니다.





워드프레스 시스템 파일 수정 권한 부여하기


iThemes Security 보안 플러그인이 정상적으로 동작하기 위해서는 워드프레스 시스템 파일에 엑세스(Access)해서 파일을 수정할 수 있는 권한을 부여해야합니다. 두번째 Settings 탭을 클릭하면 아래와 같이 Write to Files 항목이 있습니다. 이 항목에 체크를 합니다.










강력한 비밀번호 규칙을 적용해서 보안 강화하기


로그인 보안을 위해서 Settings 탭에서 비밀번호 규칙을 강화할 수 있습니다. Go to 콤보박스에서 Strong Password를 선택하면 아래 화면과 같이 강력한 비밀번호를 설정할 수 있습니다. 일단 Strong Passwords 항목에 체크를 하고 두번째 항목인 Select Role 부분은 기여자로 선택하고 저장버튼을 클릭합니다.
 
두번째 부분을 기여자로 선택하는 것은 기여자 이상인 권한 즉, 기여자, 글쓴이, 편집자, 관리자에게 강력한 비밀번호 규칙을 적용한다는 의미입니다.
구독자의 경우에는 워드프레스 사이트안에서 많은 권한이 부여되지 않기때문에 굳이 강력한 비밀번호 규칙을 적용할 필요는 없습니다.







로그인 접속 주소 변경하기


워드프레스를 기본으로 설치하면 로그인을 하는 화면의 주소는 자신의 워드프레스 주소에 /wp-admin 이 붙은 경로가 됩니다. 예를 들어서 슈만의 사이트의 경우에는 shuman.kr/wp-admin 이 되는 것입니다. 그렇지만 로그인 영역의 접속주소가 노출되는 것은 보안에 바람직한 일은 아닙니다.
따라서 다른 사람이 유추할 수 없도록 로그인 접속 경로를 변경해 주는 것이 좋습니다.

Settings 탭에서 Hide Login Area 항목을 선택합니다.


Hide Backend 항목에 체크를 하면 Login Slug 항목이 디스플레이 됩니다. 이 항목에서 자신이 원하는 접속이름으로 변경하고 저장버튼을 크릵합니다.
변경을 완료한 뒤에는 자신의 사이트에 변경한 이름을 적용한 URL로 접속하면 됩니다.





도스 공격형 로그인 제한하기


도스형 로그인 공격은 로그인 접속 주소를 알아내고 해킹 프로그램을 활용해서 로그인 페이지에 아이디와 비밀번호를 무작위 대입해서 로그인을 시도하는 공격입니다. 이러한 유형의 공격이 감지되었을때는 자동으로 시스템에서 로그인을 제한하는 것이 좋습니다.
이러한 공격 유형을 Brute Force 라고도 하는데 아래 화면과 같이 설정하도록 합니다.

Settings 탭에서 Brute Force Fortection 항목을 선택합니다.



Enable local brute force protection 항목의 체크박스를 클릭하면 설정화면이 아래와 같이 펼쳐집니다.



Max Login Attempts Per Host 항목은 로그인을 시도한 호스트나 컴퓨터에게 로그인 시도를 5번으로 제한한다는 의미입니다.
Max Login Attemps Per User 항목은 사용자 ID 별로 로그인 시도를 10번으로 제한한다는 뜻입니다.
Minutes to Remember Bad Login (check period) 항목은 위의 로그인 제한 사항에 걸리게 되면 5분 동안 로그인 기능을 막는다는 뜻입니다.
각 항목의 시간과 횟수는 운영자가 적절하게 변경할 수 있습니다. 설정을 하였으면 저장버튼을 클릭해서 저장합니다.





404페이지 에러를 일으키는 도스형 무작위 접속공격 막기


해커는 존재하지 않는 페이지를 호출해서 시스템을 마비시키는 공격을 합니다. 이른바 404 페이지 공격입니다.
존재하지 않는 웹페이지에 접속하면 워드프레스 시스템은 존재하지 않는 페이지이기 때문에 404 페이지를 호출합니다.
해커는 자동 해킹시스템을 활용해서 이런 404 페이지를 무제한적으로 호출하는 도스형 공격을 감행합니다.
따라서 시스템은 부하를 견디지 못하고 마비되거나 다운되는 일이 발생합니다.
이른바 도스형 공격방법입니다.

iThemes Security 플러그인을 사용하면 이런 공격을 간단하게 막을 수 있습니다. Settings 탭에서 404 Detection 항목을 선택합니다.
        



404 Detection 항목에 체크해서 기능을 활성화합니다. 
활성화 체크를 하면  Minutes to Remember 404 Error (Check Period) 과 Error Threshold 두 가지 항목이 나타납니다.
Minutes to Remember 404 Error 항목은 공격 시간이고 Error Threshold 항목은 20번의 공격 회수 입니다. 
즉, 5분동안 404 페이지를 호출하는 공격은 20회 한다면 해당 공격을 제한 한다는 의미입니다. 






워드프레스 데이터베이스 테이블 접두어 바꾸기


워드프레스는 기본 데이터베이스로 MySQL을 사용합니다. 따라서 워드프레스를 설치하면 MySQL에는 워드프레스를 구동하기 위한 데이터베이스 테이블이 생성됩니다. 생성되는 테이블들의 이름은 기본적으로 wp_로 시작합니다. 따라서 보안을 위해서 테이블 접두어인 wp_ 를 변경하는 것이 좋습니다.

보안플러그인 관리 화면에서 Advanced 탭을 클릭합니다.



Change Table Prefix 항목에서 체크를 하고 Change Database Prefix 버튼을 클릭하면 보안 플러그인이 자동으로 테이블 접두어가 변경됩니다. 아래 화면과 같이 접두어 이름은 iThemes Security 플러그인이 자동으로 만들어줍니다



워드프레스 사이트의 속도와 SQL 쿼리의 관계


워드프레스를 사용해서 웹사이트를 제작해서 사용하다보면 시간이 지날수록 사이트 속도가 느려지는 경험을 하게됩니다. 워드프레스 사이트의 속도가 느려지는 문제는 여러가지가 있지만 일반적으로 가장 큰 영향을 미치는 것은 플러그인과 테마인 경우가 많습니다.


특히 운영자는 워드프레스의 가장 큰 장점인 플러그인에 매료되어 플러그인을 이것저것 설치하는 경우가 많고 플러그인의 갯수는 계속 누적됩니다.

워드프레스 플러그인이나 테마도 PHP 개발환경 속에서 동작하는 하나의 프로그램이기 때문에 플러그인과 테마가 동작을 할 때마다가 PHP 프로그램은 구동되고 데이터베이스인 MySQL의 SQL 쿼리(Query)를 수행하게 됩니다. 즉, 플러그인이 많다거나 무거운 테마를 설치했다는 것은 많은 수의 SQL 쿼리가 데이터베이스에 수행되거나 데이터베이스에 부하를 주는 쿼리가 수행되는 것을 의미합니다. 그에 따라서 자연히 시스템의 속도는 저하되게 됩니다.


SQL( Structured Query Language, 구조화 질의어)는 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. SQL은 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어이다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다.


사이트 속도가 느려졌다면?


워드프레스 사이트 속도가 느려졌다면 운영자가 취해야하는 행동은 두 가지 정도가 있습니다.
첫번째는 웹사이트 속도를 느리게하는 플러그인이나 테마를 찾아내서 제거하는 일입니다.
두번째는 워드프레스를 구동시키는 웹호스팅 서버의 하드웨어적인 상황을 점검해 보는 것입니다.

첫번째로 이야기한 웹사이트 속도를 느리게하는 원인 프로그램을 찾아내는 것은 이전에 P3 플러그인을 활용한 워드프레스 성능 최적화 방법에서 설명드렸습니다. 아래 포스팅 내용을 참고바랍니다.




웹호스팅 환경 점검은 어떻게?


위에서 언급한 첫번째 방법을 활용해서도 워드프레스 사이트 속도가 개선이 되지 않는다면 두번째 방법으로는 워드프레스 서버 환경이나 용량을 살펴보아야 합니다. 웹호스팅 서버의 환경을 점검할 때 PHP 프로그램의 함수인 phpinfo()를 사용합니다. 워드프레스는 PHP 프로그램으로 만들어진 CMS(Contents Management System) 프로그램이기 때문에 PHP 프로그램을 활용해서 서버 점검이 가능한 것입니다.




phpinfo() 함수로 웹호스팅 환경 점검하기


PHP 프로그램의 함수인 phpinfo()를 사용하기 위해서는 먼저 PHP 파일을 하나 만들어야 합니다. PHP 프로그램 파일을 만들때 일반 윈도우 메모장을 이용해도 좋지만 가능한 HTML 및 프로그램 작성이 간편한 HTML 편집기를 이용하는 것이 좋습니다. 무료로 사용가능한 에디터 프로그램은 국내 아크로소프트에서 제작한 아크로에디터(AcroEdit)나 서브라임텍스트가 있습니다. 저는 서브라임텍스트를 권장합니다. 여기에서는 서브라임텍스트를 사용하겠습니다.

서브라임텍스트는 아래 포스팅 내용중에 다운받는 곳이 설명되어있습니다. 참고바랍니다.

phpinfo.php 파일 만들기


먼저, 아래와 같이 서브라임텍스트 프로그램을 실행시킨 뒤에 File > New File 메뉴를 클릭합니다.



이제는 Ctrl+S 단축키를 눌러서 phpinfo.php 하는 이름으로 저장합니다.



아래와 같이 PHP 코드를 작성한 뒤에 Ctrl+S로 파일을 저장합니다.




웹호스팅 서버 디렉토리에 업로드 하기


phpinfo 파일이 만들어졌다면 웹호스팅 서버에 FTP 프로그램을 이용해서 서버에 업로드합니다. 서버 업로드 폴더 경로는 www로 접속한 디렉토리입니다.



웹호스팅 서버 정보 웹브라우저에서 확인하기


웹브라우져를 열고 자신의 워드프레스 사이트에 접속합니다. 자신의 사이트에 접속하려면 자시의 웹사이트 주소뒤에 다음과 같은 경로가 붙어야 합니다.



웹브라우져를 열고 접속하니 웹호스팅 정보가 아래 화면과 같이 나타납니다. 브라우져 스크롤을 하면 아래로 웹호스팅 서버 환경에 대한 정보를 확인할 수 있습니다. 맨 상단에는 PHP 버전이 나타나 있습니다. 서버의 정보를 불필요하게 노출할 필요는 없기 때문에 아래 화면은 마스킹 처리를 하였습니다.
워드프레스를 사용시 권장하는 PHP 버전은 5.24이상입니다. 5.3이상이기 때문에 PHP 버전은 문제가 없습니다.




운영자는 웹브라우저에 나타난 웹호스팅 서버 상세 정보를 검색해서 확인할 수 있습니다.

서버 메모리 용량 확인하기


웹호스팅 서버의 메모리 용량이 너무 작아서 워드프레스 속도가 느릴 수도 있습니다. 특히 64MB 정도의 용량은 부족할 수 있습니다.
메모리 용량을 확인해서 작다면 증설해야 합니다. 메모리 용량을 확인하기 위해서 웹브라우저 화면에서 Ctrl+F 로 memory_limit 로 검색합니다.

아래 화면과 같이 memory_limit 항목에 서버의 메모리가 검색되었습니다. 현재 서버의 메모리 용량은 128MB 입니다. 메모리 용량이 더크면 좋겠지만 일단 128MB 정도면 무거운 테마를 구동하지 않는 이상 기본적으로 워드프레스를 구동하는데는 문제가 없습니다. 워드프레스 메모리는 가능한 128MB 이상을 사용하는 것을 권장합니다.




서버의 MySQL 버전 확인하기


웹브라우져에서 mysql로 검색합니다. 아래 화면과 같이 MySQL 버전은 5.1입니다. 워드프레스는 MySQL 버전은 5.0이상을 권장하고 있습니다.




파일 업로드 용량 확인하기


파일 업로드 용량 설정은 기본적으로 두 가지로 설정되어있습니다. 하나는 워드프레스에서 첨부할 수 있는 파일의 최대 크기를 설정한 것이고, 또하나는 웹호스팅 서버에서 파일업로드시 최대 파일 크기를 설정한 곳입니다.

웹브라우져에서 post_max_size로 검색합니다. post_max_size는 워드프레스 시스템을 사용해서 업로드할 수 있는 최대 파일의 크기를 설정한 곳입니다. 현재는 21M로 설정되어있습니다.




웹브라우져에서 upload_max_filesize로 검색합니다. upload_max_filesize는 웹호스팅 서버에 업로드할 수 있는 최대 파일의 크키입니다. 현재는 21M입니다.




정보 확인후 파일은 삭제하기


가능한 사용한 phpinfo.php 화일은 서버에서 삭제하는 것이 좋습니다. 굳이 자신의 서버정보를 외부에 공개할 필요는 없습니다.
서버에 대한 정보를 고스란히 노출하는 것은 시스템 보안상 결코 좋은 방법은 아니기 때문입니다.



+ Recent posts