HTML이 가지는 라인들에 대한 설명을 나열하겠다.

<!DOCTYPE html>  :  문서형식 선어. 여기서는 현재 문서가 HTML 5 문서임을 명시.

<html> : HTML 문서의 루트(ROOT) 요소를 정의한다.

<head> : HTML 문서의 메타데이터가 정의되는 곳. 웹브라우저에 표현되지 않으나, 사전 정의되는 것

    <title> : 문서 제목 (사용용도 : 툴바에 표시됨. 즐겨찾기할때 표시됨, 검색엔진의 페이지 제목이보통 표시됨)

    <style>: css 코드를 써서 스타일을 정의함. style 태그를 굳이 안쓰고 css를 통채로 불러올 수 있음.
예) <style>CSS 코드...</style>

    <meta> : 웹사이트가 어떤정보를 담고있는지 더 자세히 알려줌. 링크 보낼때 밑에 뜨는 간략 설명
          예) <meta name="description" content = "내용">

    <link> : 다른곳에 저장된 파일을 이 페이지에 불러와라. 
              예) <link href="파일위치" rel="파일종류" type="파일 타입" />

    <script> : 

    <base> : 

<body> </body> : 웹브라우저에 보이는 내용

텍스트 관련 태그들

<h1></h1>~<h6></h6> : 제목(heading)을 나타냄. 글자 크기
<b></b> : 굵은글씨
<i></i> : 기울임 글씨
<p> : 단락(문단)을 나타냄

미디어 관련 태그들

<img src="이미지주소" /> : 이미지 삽입
<video src="비디오주소" controls /> : 비디오 삽입. controls는 컨트롤 아이콘을 넣어줌

링크

<a herf="사이트주소" target="_blank">글자</a> : 새창을 띄워서 사이트주소로 이동

테이블

<table border="1">
    <thread> : 헤더, 칼럼이 갯수와 이름이 정의됨
        <tr>
            <th>칼럼1제목</th> 
            <th>칼럼2제목</th>
        </tr>
    </thread>
    <tbody>
        <tr>
            <td>행1열1내용</td>
            <td>행1열2내용</td>
        </tr>
        <tr>
            <td>행2열1내용</td>
            <td>행2열2내용</td>
        </tr>
    </tbody>
  </table>

목록태그

<ol> : ordered list
    <li>1번내용</li>
    <li>2번내용</li>
</ol>
<ul> : unordered list
    <li>1번내용</li>
    <li>2번내용</li>
</ul>

구역을 나누는 태그

<div class="CSS스타일이름">상단</div> : 줄 전체 공간을 차지 BLOCK ELEMENT
<div class="CSS스타일이름">중단</div>
<div class="CSS스타일이름">하단</div>

<span class="CSS스타일이름">좋아요</span> : 내용물 만큼의 공간만 차지 INLINE ELEMENT
<span class="CSS스타일이름">구독</span>

인풋태그

<input type="text" /> : 텍스트
<input type="checkbox" /> : 체크박스
<input type="radio" /> : 라디오
<input type="color" /> : 색깔

<textarea></tesxtarea> : 여러문장

<select name="name"> : 드랍다운
    <option value="옵션1">옵션1</option>
    <option value="옵션2">옵션2</option>
</select>
<form>
    <input type="email" placeholder="최초에들어갈 텍스트" />
    <input type="password" palceholder="최초에 들어갈 텍스트" />
    <button type="submit">로그인</button>
</form>

<!-- 주석내용 --> : 주석 표시

워드프레스에서 자식테마를 만들었을경우,
자식테마에 있는 CSS파일과 PHP 파일은
부모테마에 있는 파일들보다 우선순위로 홈페이지에 표현된다.

하지만, JS파일의 경우 자식테마 폴더에 JS파일이 존재하더라도 있더라도,
부모테마 폴더에 있는 JS파일을 참조하며, 자식테마 폴더에 있는 JS파일은 무시한다.

이와같은 문제가 발생하는 이유는 JS파일 참조 위치를 수정해주지 않아서다.
JS파일을 바꾸기 위해서는 JS파일을 자식테마에 새로 만드는것 뿐만아니라,
JS파일 참조 경로를 변경해야 한다.

아래와 같은 순서로 간단히 자식테마의 js파일을 홈페이지에 적용할 수 있다.

 

0. 자식폴더에서 사용할 JS파일을 자식폴더에 복사하기

우선! 자식테마 폴더에 수정된 js파일이 위치해야한다.
편의를 위해 js파일 위치는 부모테마폴더의 위치와 동일한 방식으로 만드는 것이 좋다.
-부모테마 폴더에서의 js파일 위치 : ../theme/js/
-자식테마 폴더에서의 js파일 위치 : ../theme_child/js/

1. JS파일 위치를 정의하는 PHP파일 찾기

js파일은 그냥 동일한 폴더에 있는다고 참조가 되는것이 아니다.
경로를 지정해주는 php파일이 분명히 존재할 것이다.
grep 명령어로 쉽게 검색해보자. (※ 윈도우 창에서 검색할경우 검색이 잘 되지 않더라..)

예) 만일 theme라는 부모테마폴더에서 tie-scripts.js 라는 파일을 참조하는  php파일을 찾을 경우
     ../theme# grep -rn "tie-scripts.js"

2. 자식테마에 PHP파일 복사해서 수정하기

grep 명령어로 찾은 php파일 안에 들어가면, tie-scripts.js라는 파일을 참조하는 부분이 있을 것이다.
그 부분을 자식테마의 위치로 변경하자

예) common-scripts.php 파일 안에 /js/tie-scripts.js 라고 정의되어 있다
     → common-scripts.php 파일을 theme-child에 복사한 후
        /js/tie-scripts/js 부분을 ../theme-child/js/tie-scripts.js 로 수정한다. 

 

위와같은 방법대로 진행한다면, 부모테마에 영향 없이 자식테마에서 간단히 js파일을 새로 적용할 수 있다.
※주의 : js파일을 수정하더라도 홈페이지에 반영되는 시간은 다소 걸릴 수 있다.(2~3분)

아마존 라이트세일을 통해 워드프레스로 홈페이지를 제작하게되면
우측하단에 "Bitnami" 배너(아이콘)이 자동으로 생성된다.
Bintnami 배너는 Sticky(Floating) 아이콘처럼 페이지를 스크롤 하는동안에도 항상 우측하단에 남아있어서
여간 신경쓰이는게 아니다. 

Bitnami 배너

처음에는 이 배너를 수정해서 홈페이지의 floating 버튼으로 활용할까 했지만,
floating 버튼을 지원하는 다양한 플러그인이 있기 때문에
Bitnami 배너는 일단 지우기로 했다.

지우는 방법은 홈페이지 서버의 콘솔창에서 명령어 하나만 입력하면 된다.

1. 서버 콘솔 창 진입

아마존 라이트세일(AWS) 홈화면

AWS에서 로그인을 한 첫 화면에서 진입하고자하는 서버의 콘솔 아이콘을 선택한다.
진입하면 검은 콘솔창이 뜬다.
(※콘솔창이 떴으나, 입력이 안되는경우가 있다.
   그럴경우에는 AWS에서 로그아웃 한 후 다시 로그인해서 콘솔창을 열면 된다.)

2. 명령어 입력

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner1
sudo /opt/bitnami/ctlscript.sh restart apache

(※ 주의할점 : disable 옵션이 가능한 bnconfig 파일은 bitnami 폴더 안이 아닌 wordpress 폴더에 있다.)

두개만 입력하면 말끔히 제거된다.

 

워드프레스로 홈페이지를 만들기 위해 가장 먼저 해야하는 일은, 테마를 구입하는 것이다.
(일부 사용자의 경우 테마를 직접 제작하기도 하지만 이는 논외로 한다.)

테마를 구입한 후 그 테마를 그대로 사용하기에는 많은 아쉬움이 따른다.
주로 범용목적으로 만들어진 테마가 많을 뿐더러, 자신에게 딱 맞는 테마를 찾는다고해도 막상 사용해보면 아쉬운부분이 많다.
따라서, 테마를 수정할 줄 알아야 한다!

워드프레스 메뉴 중 '테마디자인>테마 편집기'에 들어가면, 테마를 바로바로 편집가능하지만, 
이 방법은 많은 전문가가 지양해야한다고 말한다.
왜냐하면 '테마디자인>테마 편집기'에서 바로 수정을하는것은 부모테마를 수정하는것이기 때문이다.
부모테마를 수정하게되면 이후 테마 업데이트가 발생할경우 수정했던 내용이 날라갈 수 있고, 더 나아가서 수정된 코드와 업데이트 내용이 충돌될 경우 일부 페이지가 완전히 깨져버릴수 있기 때문이다.글쓴이도 처음에는 알수없는 자신감으로 부모테마를 바로 편집했지만, 그 사실을 알게된 이후로는 자식테마를 만들어서 수정을 하고 있다.

이 포스트에서는 여러가지 자식테마 만드는 방법을 소개하고, 그 중 가장 좋은 방법을 추천한다.

1. Child Theme 플러그인 사용

가장 쉬운방법이다. Child Theme를 만드는 여러가지 플러그인이 있는데 그 중에 하나를 다운받아서
"Create a Child Theme" 를 실행하면 간단하게 테마가 생성된다. '테마디자인'-테마'에 자식테마가 생성 된 것을 확인할 수 있다.
가장 많이 사용되는 플러그인은 One-Click Child Theme, Child Theme Configurator, Child Theme Generator 등이 있다.
One-Click Child Theme는 한 책에서 메인으로 소개될 정도로 자식테마를 만드는데 많이 쓰였지만 지금은 더이상 업데이트되지않아 사용되지 않는것으로 보인다. 참고로 플러그인은 순환이 좀 빨라서, 대표적으로 쓰인 플러그인이라 하더라도 좀 지나고보면 더이상 업데이트 되지 않는 경우도 많다. 따라서, 그때그때 적절한 플러그인을 사용해야 한다.

2. FTP로 직접 수정

다운로드한 테마가 위치한 폴더안에 들어가서 직접 자식테마 파일을 만드는 방법이다.
테마가 설치된 위치는 조금씩 다를수 있으나, 보편적인 위치는 아래와 같다
위치 : /opt/사용자아이디/apps/wordpress/htdocs/wp-content/themes/
위 폴더에 들어가면 설치된 테마이름의 폴더가 있을것이다.

/opt/사용자아이디/apps/wordpress/htdocs/wp-content/themes/테마이름-child 폴더를 만든다.
   예) /opt/사용자아이디/apps/wordpress/htdocs/wp-content/themes/sahifa-child
② 만든 폴더 안에 style.css 파일을 만든다.
   예) .../sahifa-child/style.css
자식 테마에게 부모 테마 스타일을 로드하도록 지시하는 functions.php 파일을 만든다.
   예) .../sahifa-child/functions.php

../sahifa-child 폴더 내부모습

 

3. 테마에서 제공하는 방법으로 수정

거의 모든 테마에서는 자식테마를 만드는 방법을 별도로 제시하고 있다. 테마 제공사의 홈페이지에서 support 란에 'child theme' 라고 검색을 하면 상세한 내용을 받을 수 있다. 거의 대부분 2번의 FTP로 수정하는 방법을 제시한다.

 

※ 가장추천하는 방법은 3번이다. ㅎㅎ
   제대로 만들어진 테마라면 자식테마를 만드는방법에대해서 친절한 설명을 제공하고 있으므로, 꼭 테마에서 제공하는 방법대로 자식테마를 만들자!

 

[만든결과]

위 3가지 아무방법이나 하면 아래와같이 자식테마가 생성된다. 이제 생성된 자식테마를 활성화시키면 자식테마가 선택이 되고, 거기서 수정하면된다.

[테마디자인]-[테마]에 자식테마가 만들어진 모습

 

 

온라인 커뮤니티를 운영하기 위해서는 서버유지 비용보다

커뮤니티에서 나오는 광고수입이 더 많아야 한다. 

광고수입이 더 많으려면, 접속자 수가 많아야하는데 이는 서버유지 비용을 다시 올린다.

이러한 딜레마는 모든 서버 운영자의 공통된 고민이다.

 

이 해결책은 딱 하나! "사이트를 얼마나 효율적으로 만드느냐!!!"

서버 유지비용을 낮추면서 커뮤니티사이트의 수익을 효율적으로 올리는것은 쉬운일이 아니다.

서버 비용에 대한 근본적인 원리를 알아야 할 수 있다.

하지만, 적절한 CMS를 선택하는 것도 이것을 크게 개선 시킬 수 있다.

 

커뮤니티 사이트를 만들기 위해서는 어떤 CMS를 선택해야 할까?

 

적절한 CMS를 선정하기 위해, 국내 탑 커뮤니티 사이트들은 트래픽이 어느정도인지,

트래픽이 아주 많은 국내 커뮤니티 사이트들은 어떤 CMS를 사용하고 있는지 알아보자.

 

위해 우선 실시간 커뮤니티 순위를 보자.

 

오늘의 베스트

국내 온라인 커뮤니티의 실시간 순위는?!

todaybeststory.com

오늘의 베스트라는 사이트에서는 매달 글 수, 조회수, 반응 수, 댓글 수를 기반으로 커뮤니티 순위를 매기고 있다.

 

아래 표는 2020-09-29~2020-10-05 기간동안 투비스 지표로 본 커뮤니티 사이트 순위이다.

출처 : http://todaybeststory.com/ranking_current.html

그렇다면 이 커뮤니티 사이트들은 어떤 CMS 기반으로 제작되었을까?

 

1위. XE (제로보드)

- 사용처 : 에펨코리아, 뽐뿌, 더쿠, 해연갤, 에스엘알클럽, 오늘의 유머, 82쿡, 디시인사이드

              그 외 일베, 펨코, 개드립, 딴지, 다수 대학교 커뮤니티 등에서도 사용되고 있음.

TOP 18중 8곳이 XE(제로보드)를 기반으로 제작되었다. XE는 더이상 업데이트되지 않고 있고 서비스를 거의 종료했다시피 했지만, 대부분의 사이트가 아주 오래전에 제작되었고, 그당시에는 XE의 점유율이 60%를 넘었던것을 생각하면 전혀 이상한 수치는 아니다.

8곳 모두 현재는 자체 솔루션으로 홈페이지를 새로 개편하거나, 제로보드를 많이 변형한 형태로 사용중이기 때문에 현재 제로보드를 그대로 사용하고 있는 곳은 거의 없다고 할 수 있다.

2위. 그누보드

- 사용처 : 클리앙, 이토랜드 등

가장 많이 사용되고 있다고 기대한것과는 달리 많은 곳에서 사용중이진 않았다. 아마도 커뮤니티 사이트들이 만들어진 시기에는 XE를 가장 많이 사용하고 있었고, 사이트 제작/수정/커스터마이징이 XE보다 어렵다는 점이 처음 제작할 때 큰 장벽으로 다가왔을 것 같다. 커뮤니티를 제작한 사람들이 웹개발자이기 보다는 그 분야에 관심이 많은사람인 경우가 많기 때문에 첫 시작을 그누보드로 하기에는 부담이 큰 것 같다.

그 외. 킴스큐 등

- 인스티즈 사이트는 TOP 18 중 유일하게 킴스큐로 제작되었다고 한다.

- 기타 언급되지 않은 커뮤니티 사이트는 검색으로는 알 수 없었다. (아시는분은 댓글 부탁드립니다.)

 

하지만!!! 

- TOP 18의  대부분은 현재 자체솔루션으로 제작/수정 되었다는 사실!!!

기존에 XE나 그누보드를 사용했더라도 현재는 코드를 다 뜯어고쳐서 새롭게 개편된 경우가 대다수이다. 디자인적인 요소를 개선하기 위해 바뀐경우도 많겠지만 사용자가 많아지면서 서버에 오는 과부화를 조금이라도 줄이기 위해서 코드를 효율적으로 수정한 것으로 보인다.

 

※ 위 조사는 인터넷 및 웹 개발자 커뮤니티의 개발자 의견을 근거로 함. 실제 웹사이트의 HTML을 분석한 내용이 아니므로 사실과는 차이가 있을 수 있음.

+ Recent posts