3. PHP 게시판 만들기, list 제작 1

2015.03.31 00:21
저자 : Kurien

주의: 본 게시판은 보안을 생각하지 않고 만들어졌으므로 실제로 사용되어서는 안되는 코드입니다.

공부할 때 게시판이 이처럼 동작한다는 정도로만 이해해주세요.


오늘은 본격적으로 게시판 제작에 들어가겠습니다.

설명하기 전에 현재까지 진행 된 코드를 올렸습니다.


20150330_project.zip


여기 있는 dbconfig.php는 더 이상 올리지 않을 생각이구요.

따라하고 계신분은 이 dbconfig.php 파일에서 DB 호스트, DB 아이디, DB 패스워드, DB 이름을 바꿔서 실행하시면 되겠습니다.


CSS의 경우 디자인을 못하기 때문에... ㅠㅠ 최소한으로만 할꺼구요.

디자인 부분은 개인적으로 만들어서 사용하시면 되겠습니다.


먼저 dbconfig.php부터 살펴보겠습니다.


<?php

$db = new mysqli('localhost', 'kurien', '********', 'kurien');


if($db->connect_error) {

die('데이터베이스 연결에 문제가 있습니다.\n관리자에게 문의 바랍니다.');

}


$db->set_charset('utf8');

?>


dbconfig.php는 짧게 만들어놨습니다.

먼저 $db에 mysql을 연결해줍니다.

저와 같이 new mysqli를 쓰던지, mysqli_connect()를 쓰던지 그 부분은 자유입니다.

개인적으로는 new mysqli()가 편하니 이걸로 진행하겠습니다.


각 항목은 위에서 말한 것처럼 DB 호스트, DB 아이디, DB 패스워드, DB 이름 순으로 나열되어있습니다.

큰 이상이 없다면 DB와 연동되었다고 생각하시면 되는데, 만약 DB가 연결되지 않는다면 오류를 출력해줍니다.


여기서 if($db->connect_error) { }는 DB 연동이 실패했을 때 예외를 처리해주는 부분입니다.

여기서는 die()함수를 통해서 메시지를 보여주고 PHP를 종료하게 됩니다.


마지막 줄의 $db->set_charset('utf8')은 해당 DB와의 연결을 어떤 인코딩으로 할지 정해줍니다.

요즘은 UTF-8을 많이 쓰므로 utf8을 적었습니다.


참고로 제가 게시판을 만들면서 제작한 모든 인코딩은 UTF-8입니다.

만약 한글이 깨진다면 인코딩 문제를 의심해주세요!


이제 dbconfig.php에 대한 설명이 끝났으니 board 폴더에 있는 index.php를 열어봅시다.


<?php

require_once("../dbconfig.php");

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>자유게시판 | Kurien's Library</title>

<link rel="stylesheet" href="./css/normalize.css" />

<link rel="stylesheet" href="./css/board.css" />

</head>

<body>

<article class="boardArticle">

<h3>자유게시판</h3>

<table>

<caption class="readHide">자유게시판</caption>

<thead>

<tr>

<th scope="col" class="no">번호</th>

<th scope="col" class="title">제목</th>

<th scope="col" class="author">작성자</th>

<th scope="col" class="date">작성일</th>

<th scope="col" class="hit">조회</th>

</tr>

</thead>

<tbody>

<?php

$sql = 'select * from board_free order by b_no desc';

$result = $db->query($sql);

while($row = $result->fetch_assoc())

{

$datetime = explode(' ', $row['b_date']);

$date = $datetime[0];

$time = $datetime[1];

if($date == Date('Y-m-d'))

$row['b_date'] = $time;

else

$row['b_date'] = $date;

?>

<tr>

<td class="no"><?php echo $row['b_no']?></td>

<td class="title"><?php echo $row['b_title']?></td>

<td class="author"><?php echo $row['b_id']?></td>

<td class="date"><?php echo $row['b_date']?></td>

<td class="hit"><?php echo $row['b_hit']?></td>

</tr>

<?php

}

?>

</tbody>

</table>

</article>

</body>

</html>


별다른 기능도 없이 길기만 한 코드입니다.

먼저 맨 위에서 require_once를 통해서 dbconfig.php를 include 시켜줍니다.


여기서 include가 아닌 require_once를 쓴 이유는 dbconfig.php가 연동되지 않는다면 이 게시판을 볼 필요조차 없기 때문이죠.

만약 include 함수를 사용하면 dbconfig.php를 include에 실패 하더라도 이 페이지를 보여줄 수 있는 만큼 보여주고,

require 함수를 사용하면 dbconfig.php를 include에 실패하면 오류를 보내고 그대로 종료합니다.


그리고 그냥 include, require과 include_once, require_once의 차이점은 include, require의 경우 같은 파일을 여러번 include 해도 실행되지만,

once가 뒤에 붙게 되면 딱 한번만 include 되고 그 뒤의 같은 파일은 무시됩니다.

이렇게 dbconfig.php를 include 시키고, 기본적인 html들을 적어줍니다.


기본적인 html이나 css부분은 넘어가고 바로 table 부분으로 넘어가겠습니다.

caption은 웹 접근성을 지켜볼까 해서 넣은건데, readHide라는 클래스를 줘서 나중에 보이지 않게 할 생각이구요.


thead 부분을 보면 게시판에서 필요한 항목 중 list 부분에 필요한 항목을 th로 출력해줬습니다.

번호, 제목, 작성자, 작성일, 조회 순으로 지정했고, 그 아래 있는 tbody 부분부터 PHP 코드가 많이 사용됩니다.


먼저 $sql에 DB에 보낼 쿼리문을 작성합니다.

select * from board_free order by b_no desc;라는 쿼리문을 DB에 보냅니다.


가장 쉬운 select 문인데다가 어려운 부분도 없습니다.

혹시 모르는 분을 위해서 설명드리자면 이전 포스팅에서 만들었던 board_free 테이블에서 *(모든 column)을 가져오는겁니다.

그리고 마지막에 있는 order by b_no desc는 내림차순을 뜻하는건데요.

만약 내림차순이 아니라면 primary key(기본 키)를 기준으로 자동으로 오름차순 정렬이 됩니다.



이 이미지를 보면 위에서부터 1, 2, 3이 나오는데 정상적인 게시판이라면 3, 2, 1 순으로 나타나게 됩니다.

오래된 글일수록 뒤로 가야하니깐요.


아래는 order by b_no desc을 적은 후의 이미지입니다.



번호를 보면 정상적으로 나오죠?

이해가 잘 안된다면 작성일을 보시면 이해가 더 쉽게 될 것 같네요.

여기서 시간(22:17:12)만 나온 부분은 오늘 날짜를 나타내는거니, 2015-03-30이라고 생각하시면 되겠습니다.

$sql을 만들었으니 $result = $db->query($sql)을 통해 query를 보내고 결과 값을 $result에 저장합니다.

만약 이 과정에서 문제가 생겼다면 $result에는 FALSE가 들어가고, 정상적으로 query가 전송되었다면 $result에 TRUE가 들어갑니다.


이제 $row = $result->fetch_assoc()을 쓰는데요.

이 부분을 반복문 while($row = $result->fetch_assoc()) { }로 나타내면 보냈던 쿼리의 행이 끝날 때까지 자동으로 반복을 실행합니다.

제 DB에는 "안녕하세요!", "안녕하세요! 2", "테스트"라는 제목을 가진 데이터 3행이 있으니 총 3번 반복해주죠.


while문 내에는 $datetime = explode(' ', $row['b_date']);가 제일 먼저 있는데요.

$row['b_date']는 위에서 $row = $result->fetch_assoc()를 통해 얻은 DB의 데이터가 $row라는 배열에 저장된 것입니다.

배열의 key(b_date)는 column의 이름을 나타내구요.


$row['b_date']를 explode 함수를 통해 ' ' 값을 기준으로 나눈 이유는 b_date의 값은 "0000-00-00 00:00:00"과 같은 형식으로 저장되는데,

공백 기준 왼쪽에 있는 일자(년월일)와 오른쪽에 있는 시간(시분초)를 따로 나눠주기 위해서였습니다.


두 값을 나누면 $datetime[0]과 $datetime[1]에 저장되고, 다시 그 값들은 $date와 $time 변수에 저장됩니다.

여기서 만약 $date의 값이 date('Y-m-d')(오늘의 날짜)와 같다면 $row['b_date']의 값을 $time으로 바꿔주고,

오늘과 다른 날짜라면 $row['b_date']의 값을 $date로 바꿔줍니다.


여기서 이렇게 나눠줬기 때문에 작성일이 오늘인 글은 시간이 나타나게 됩니다.


이제 목록에 내용을 뿌려줄 일만 남았네요.

여기서 반복되어야 할 부분은 <tr>~</tr> 까지입니다.


순서대로 b_no, b_title, b_id, b_date, b_hit를 출력하시면 됩니다.

데이터베이스에 입력을 안하셨다면 입력을 하신 후 진행해보세요!


여기까지 list 제작 1이였습니다.

너무 세세한 것까지 설명해드려서 너무 글이 길어졌는데, 오히려 그걸로 인해 복잡할 수도 있을 것 같네요.

지적 사항이 있거나 글이 너무 어렵다면 댓글 남겨주시구요.


현재 진행 상태는 http://kurien.dothome.co.kr에서 확인하실 수 있습니다.


  1. 이전 댓글 더보기
  2. 돌고래 2016.05.01 02:09  댓글주소  수정/삭제  댓글쓰기

    인코딩오류나는대 어떻하나요 ㅠㅠ

    • Kurien 2016.05.03 09:22 신고  댓글주소  수정/삭제

      인코딩 오류가 나는 이유는 세가지입니다.
      파일 인코딩, 프로그램 인코딩, DB 인코딩이죠.

      세개 다 동일하게 변경해보세요.

  3. 최모군 2016.06.07 14:44  댓글주소  수정/삭제  댓글쓰기

    이전 글에서 db 생성하는 코드는 어떻게 해야 db가 생성되는건가요 ㅠㅠ

    • Kurien 2016.06.10 18:08 신고  댓글주소  수정/삭제

      mysql 설치하신 후에, 해당 콘솔에서 "create database 데이터베이스_이름" 을 적어서 DB를 생성하시고, "use 데이터베이스_이름" 을 하셔서 DB에 접속하신 뒤에 말씀하신 코드를 입력하셔야합니다.

  4. 공순이 2016.06.13 21:06  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 저희는 공대 재학중인 여대생 입니다.
    과제 수행중 시험기간이 겹쳐 클래스기반 php 관리자 페이지를 만드려고 하는데 너무 어렵습니다 ㅠㅠㅠ
    우선 첫번째 단계부터 따라 가고 있는데, php, db 연결 후 (HTTP 500 error) 페이지 연결이 안되는 원인에서 해매고 있습니다. 혹시 해결방안을 아신다면 도움 부탁드립니다.

    (* 서버는 학교에서 제공하는 공용서버 호스트를 사용하고 있습니다.)

    • Kurien 2016.06.13 21:09 신고  댓글주소  수정/삭제

      어떤 주제에 관한 관리자 페이지인지 알아야 조금 더 도움 드릴 수 있을 것 같구요.

      500 error의 경우 프로그램 상의 오류가 많습니다.
      다시한번 코드에 오타가 없는지, 잘못된 부분이 없는지 확인해보세요.

  5. 공순이 2016.06.14 17:06  댓글주소  수정/삭제  댓글쓰기

    위 댓글의 공순이입니다..
    현재 db연결도 성공이고 admin에 db테이블과 insert도 성공적으로 됬는데
    자유게시판에 뜨질 않아요.. 무엇이 문제인지 네시간째 고민중입니다ㅠㅠ 도와주세요...

    혹시 괜찮으시다면 메일로 카톡 ID 보내주실수 있으세요??ㅠㅠ 곤란하시다면 정말정말 괜찮습니다!

    • Kurien 2016.06.14 17:10 신고  댓글주소  수정/삭제

      메일로 카톡 아이디 보내달라고 하셨는뎅,,, 메일은 적어주셔야 보낼텐데요 ㅎㅎ;

      https://open.kakao.com/o/gcDojOk 이 링크 눌러서 채팅방 들어오세요^^

  6. 2pro 2016.06.16 17:04  댓글주소  수정/삭제  댓글쓰기

    게시판만들기 글 너무너무 감사합니다.
    한가지 궁금한게 board 폴더에 index를 넣어준다면 아파치 httpd에서 루트폴더를 board로 잡아 주는게 맞나요? 저는 루트 폴더 안에 보드를 만들고 작성하니까 접근제한되더라구요...

  7. 2pro 2016.06.22 08:58  댓글주소  수정/삭제  댓글쓰기

    1. while($row=mysqli_fetch_assoc($result))
    2. while($row = $result->fetch_assoc());
    1번과 2번의 차이가 뭐가요?ㅜ 2번으로하면 리스트가 안나오고 1번으로하면 리스트가 잘 나오네여...이상ㅠ

    • Kurien 2016.06.22 09:03 신고  댓글주소  수정/삭제

      결과적으로는 차이가 없구요.
      단순히 순차적으로 처리되는지 객체지향적으로 처리되는지의 차이입니다.
      while($row = $result->fetch_assoc())의 윗 부분에
      "$result = $db->query($sql);"를 사용하셨다면 리스트가 나오는게 정상입니다.

      만약 $result = mysqli_query($db, $sql)을 사용하면 $row = $result->fetch_assoc()로는 결과가 나오지 않을 수도 있습니다.

    • 2pro 2016.06.23 09:15  댓글주소  수정/삭제

      답변 감사합니다.
      게시판강의는 두번정도 읽고 많은 도움 됐습니다^^
      지금은 게시판을 응용해서 다른걸 만들어보고 있어요.
      응용하려니 조금 막혀서 문제ㅠ;
      암튼 좋은하루 되시고 앞으로도 운영자님 게시판 많이 참고할게요^^

    • Kurien 2016.06.23 09:21 신고  댓글주소  수정/삭제

      하다가 막히시는 부분 있으면 질문 해주세요^^
      보는대로 답변 해드리겠습니다~

  8. ㅎㅎ 2016.07.14 22:34  댓글주소  수정/삭제  댓글쓰기

    본문에 <article id = "boardList"> 로 수정하셔야될것같아요 ㅋㅋ
    css내용하고 안맞아서 댓글답니다.

  9. 직딩1 2016.07.19 21:14  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 운영자님. 게시물들 잘 보고 있습니다.
    PHP 오늘 막 시작했는데 잘 가다가 여기서 막히네요... ㅠㅠ

    Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in ~ on line 26
    Fatal error: Call to a member function fetch_assoc() on a non-object in ~ on line 28

    line 26은 $result=$db->query($sql); 이고, line 28은 while($row=$result->fetch_assoc()) 입니다.

    몇 시간째 이것만 붙들고 있어요... 구글링도 해봤는데 영 안 나오네요. ㅠㅠ
    혹시 무슨 설정같은 게 잘못 됐을까요? 시간이 없어서 APM 설치했는데...
    답변 부탁드립니다!

    • Kurien 2016.07.21 21:53 신고  댓글주소  수정/삭제

      mysqli 모듈이 존재하는지 (phpinfo() 함수를 사용하면 확인할 수 있습니다.)를 먼저 확인해보시구요.

      존재한다면 dbconfig 부분을 다시확인해보세요.

      존재하지 않는다면 해당 모듈을 추가하시거나, mysql을 이용한 방법으로 사용하시면 됩니다.

  10. 직딩1 2016.07.22 13:39  댓글주소  수정/삭제  댓글쓰기

    답변 감사합니다.
    버전 업그레이드를 했더니 해결됐어요...
    APM을 쓰고 있었는데 버전이 너무 낮아서 그럴 수도 있다는 말을 듣고 XAMPP로 갈아탔습니다. ㅎㅎ

    추가로 CSS에 관한 것입니다만,
    운영자님께서 올리신 압축 파일 속 css 폴더와 관련 코드를 복붙했는데 이미지처럼 안 나오더라구요...
    폰트는 바뀌었지만 테이블 라인이 하나도 안 나오는데 어떻게 해야 될까요? ㅠㅠ
    이미지의 레이아웃이 너무 맘에 들어서요...
    답변 부탁드립니다.

  11. 안녕하세요 2016.10.03 02:29  댓글주소  수정/삭제  댓글쓰기

    list 만들기를 그대로 따라해봤는데요 제대로 리스트가 나오긴하는데..

    query($sql); while($row = $result->fetch_assoc()) { $datetime = explode(' ', $row['b_date']); $date = $datetime[0]; $time = $datetime[1]; if($date == Date('Y-m-d')) $row['b_date'] = $time; else $row['b_date'] = $date; ?>

    이 코드가 웹 화면에 나오네요..

    이유를 알고계신가요??

    • Kurien 2016.10.04 10:03 신고  댓글주소  수정/삭제

      맨 앞의 query($sql); 앞에 mysqli->가 아니라 mysqli?>라고 적혀있는지 확인해보시고, 그 문제가 아니라면 kurien92@gmail.com으로 전체 코드 보내주시면 확인 후 말씀 드리겠습니다.

  12. 게시판! 2016.10.17 04:06  댓글주소  수정/삭제  댓글쓰기

    저도 앞서 다른 사람들이 말한것처럼 Fatal error: Call to a member function fetch_assoc() on boolean 라고 에러가 뜨네요. if문 사용해서 어디서부터 에러가 낮는지 찾어보니깐 php에서 board_free 테이블로 연결이 안되는게 문제인것 같은데 이 문제를 해결할 방법이 있나요?

    • Kurien 2016.10.17 13:33 신고  댓글주소  수정/삭제

      phpinfo()를 확인하셨을 때 mysqli 모듈이 포함되어 있는지 확인하셔야합니다.

      mysqli 모듈이 없다면, 서버상에서 설치하시거나 호스팅이시라면 호스팅사에 문의하셔야합니다.

      모듈 없이 진행하시려면 해당 mysqli에 맞는 mysql 함수로 변경해주셔야하구요.

  13. 요요 2016.10.20 09:10  댓글주소  수정/삭제  댓글쓰기

    한번 올려보아요
    안녕하세요

    반갑습니다

  14. 요요 2016.10.27 17:57  댓글주소  수정/삭제  댓글쓰기

    한번 올려보아요
    안녕하세요

    반갑습니다

  15. Rothko 2016.11.07 23:35  댓글주소  수정/삭제  댓글쓰기

    오오 PHP 공부하면서 게시판 만들기좀 배울려고 구글링 하다가 들어왔습니다.!!
    설명 하나하나가 주옥같고, 이해도 잘 됩니다. 따라하해보기도 쉽고요!!
    감사합니다. 정말 , 덕분에 좋은 공부 할 수 있습니다.^^

  16. j 2016.11.07 23:39  댓글주소  수정/삭제  댓글쓰기

    안녕하세요

    위의 게시물을 따라 게시판을 만들고 있는 한 사람인데요

    오류가 났지만 해결을 하기 힘든 상황입니다.

    혹시 실례가 되지 않으신다면 이메일을 알려주실 수 있으신가요?

  17. 자색고구마 2016.11.18 11:26  댓글주소  수정/삭제  댓글쓰기

    와 감사합니다. 엄청난 글이군요.
    php 이제 맛 시작해볼려고하는데 이런 갓 글을 발견했네요.
    위 댓글에 어렵다고 하시는 분들 아주 기본적인 서버 세팅없이 db를 사용하시려고 한 것 같은데
    최소한 서버에 phpMyAdmin 설치는 하셨는지 의문이 가네요.

    아무튼 이제 시작인데 미리 감사감사 드립니다.
    지금 리스트 뷰 라이트 까지 했는데 아주 잘되네요 ^^
    짱짱맨

  18. 궁금 2016.11.21 16:42  댓글주소  수정/삭제  댓글쓰기

    안녕하세요? 다른 문제때문에 검색하다 여쭤볼게 있어서 질문 드려요..
    db 연결하는 코드는 dbconfig.php로 따로 만들어서 include 하셨는데
    그럼 db를 닫을때는 어떻게 하나요?
    보통 연결부터 기타 작업까지 한 문서에선
    $conn = mysql_connect($server, $user, $pass);
    으로 쓰고 닫을때는
    mysql_close($conn); 이런 식으로 하던데

    include 할때는 mysql_close(); 이런식으로도 되나요?
    왕초보라 이상한질문 죄송합니다 ^^;

    • Kurien 2016.11.24 10:40 신고  댓글주소  수정/삭제

      그냥 dbconfig.php가 인크루드 된곳 기준으로 아래의 원하는 위치 어디에서든 사용하셔도 됩니다.

      하지만 PHP의 경우에는 페이지 로드가 끝나면 자동으로 mysql_close를 해주므로 크게 신경쓰실 필요는 없습니다^^

  19. PHP좋아요 2017.10.10 12:11  댓글주소  수정/삭제  댓글쓰기

    상세히 설명해주셔서 처음 접하는 사람들에게도 쉽게 다가갈 수 있어서 좋았어요!
    다시 한 번 감사드립니다~!

  20. 안녕하세요 2019.07.14 05:40  댓글주소  수정/삭제  댓글쓰기

    잘보고 갑니다....db에 잘 저장되고 list가 잘 나옵니다..근데 하나씩 누락이 됩니다...3개의 게시글이 있으면 2개만 나오고... 하나더 작성을 하면 누락되었던 글이 추가가 되고 새롭게 작성한 글이 누락됩니다....어딜 손봐야될까요?

    • Kurien 2019.07.16 22:44 신고  댓글주소  수정/삭제

      말씀하신 내용만으로는 알 수 있는 부분이 제한적입니다.

      생각되는 부분은 $row = $result->fetch_assoc(); 해당 코드를 한군데 더 적어두신건 아니신지 확인해보시기 바랍니다.

  21. 홍보팀장 2019.11.06 10:58  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.. 개츠비홍보실장 입니다 『 www.PKD567.com 』

    놀이터 제공을 위하여 소개를 하고자 합니다

    특히 안전한놀이터를 찾으시는 유저분들이시라면 강력 추천합니다

    환전지연이벤트를 시행할 정도로 환전부분에 있어서는 최상을 자부하며

    5년간 무사고 검증업체로 다수의 커뮤니티 사이트에 배너광고까지 등록되어 있습니다 『 www.PKD567.com 』

    이벤트 또한 20여가지 이상의 각종이벤트도 시행하고 있으며
    신규이벤트 및 프로토중단으로 인한 추가 이벤트 또한 시행하고 있습니다

    그동안 이용중인 회원님께 집중하고자 이용중인 회원분들께만(지인) 코드발급을

    해드렸으나 정해진 기간동안 신규분들을 위해서 코드가 열립니다

    코드를 비싼값에 사서 들어오시는 분들이 있을 정도로 환전에 있어서는 자부합니다

    놀러오셔서 게시판 및 이벤트를 보시면 다른 놀이터와 클라스가 다르다는걸 느끼실 겁니다 『 www.PKD567.com 』

    ♣ 파격적인 신규이벤트 『 www.PKD567.com 』

    5+2 / 10+4 / 20+6 진행 (정해진 기간까지만 이벤트 참여가능)

    - 신규이벤트 참여 5만원이상 충전시에 모든이벤트 참여하시면 최소30~최대 50%의 보너스 추가지급(1회성)

    ♣ 가족방 이벤트 - 가족방 신규이벤트 및 가족방만의 특별한 이벤트 진행

    ♣ 돌발이벤트 『 www.PKD567.com 』

    - 돌발이벤트 시간동안 매충전시 20%충전포인트

    신규회사가 아닌만큼 서로 신뢰를 바탕으로 관계를 유지해야하는 믿음을 중시하
    기때문에 정상적으로 배팅하실회원님들만 가입문의 부탁드립니다.

    또한 회원님들의 개인정보와 보안성을 위해서 개별적으로 계좌발급이 되시기때문에 입/출금하시는 부분에서도 걱정안하셔도 됩니다.

    ※ 사이트 오셔서 이벤트란을 보시면 매월이벤트 및 지인추천이벤트등 더욱더 많은 이벤트들이 있습니다.『 www.PKD567.com 』

    좋은날은 회원님들께 많은 혜택을 받아보시고 즐거운 시간이 되시라고 이벤트를 준비하고있습니다.

    그럼 오늘 하루도 즐거운 배팅 되시길 바라며 건승하시기 바랍니다. 읽어주셔서 감사합니다. 『 www.PKD567.com 』

    마지막으로 당사 사칭 및 모방사이트가 여럿있으니 가입후 도메인 확인 꼭하셔서 피해 사례없으시길 부탁드립니다

    ▶ 매일 진행하는 5억 이벤트의 주인공이 되십시오.. 『 www.PKD567.com 』
    www.PKD567.com 복사하셔서 주소창에 붙혀넣기 하시면 됨니다. 』