웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새
2004.11.23 02:54
오늘 할 것은
메뉴에서 게시판 아이디를 클릭했을 때 제일 처음 보이는 list.php 파일의 모양새를 보겠습니다
그후 view.php 파일의 모양새를 설명한 다음 디비에 게시판의 정보와 들어온 메모를 담을 수 있는 테이블을
생성해 보며 테스트 하기 위해 만들어진 글들이 게시판에서 잘 불러와 지는지를 보는 식으로 넘어가겠습니다
그 후 글쓰기 파일과 그 글들을 올리거나 지우는 파일 그 다음 코멘트를 만드는 식으로 넘어 가겠습니다
제가 하는 방식은 일종의 멀티형 게시판(?) 이라구 할 수 있습니다
게시판의 기본 정보는 따로 담겨지구 게시판에 들어가는 기본 정보인 글이나 글쓴이 날짜 등은 게시판 하나에
디비 테이블을 하나씩 찾이하는게 아닌 하나의 테이블에 모든 게시판의 글이 들어갑니다
디비 효율성에선 괜챦지만 양이 늘어 남으로써 불러들이는 시간이 길어지거나 혹은 코드가 늘어남으로써
더 복잡해 질 수 있습니다 게시판은 보통 일반 게시판 자료형 게시판 엘범형 게시판 메모장 방명록 정도면
왠만큼 쓸 수 있는 형태가 되리라 믿습니다
게시판 타입별로 디비 테이블을 생성할까도 했지만 가능성을 보고자 하나의 테이블에 모든 글을 담아 봤습니다
미니홈에 관심이 많으신 분은 예성님이 내 놓으신 개인 메모장을 생각하시면 됩니다
제로보드 처럼 게시판 하나에 여러개의 테이블이 생성되는게 아닌 하나의 테이블을 놓구 공유 하는게 되는거죠
차후에 불러오기가 늦다던지 그럴 경우엔 각자의 마음대로 게시판타입이나 아니면 정해 놓은 게시판 숫자에
의해 글을 담는 테이블을 늘려주면 아무래도 좀 낫겠죠
정확한 테스트는 아니지만 글을 15만개 올렸을 때 그 글을 클릭하구 게시물을 찾아오는 시간은 10초 정도
내용 찾기를 했을 때는 10초에서 15 초 정도 걸리더군요 늦어질 때는 대략 30초
이건 제대로 된 테스트가 아닌 for 문을 이용한 일방적인 글을 올렸을 때 입니다 (그림 같은 파일은 들어가지
않은 상태입니다 단순히 글 위주로 )
글을 찾아 올때는 여러가지 조건이 담기는데 그 조건들을 무시한 채 내용과 글 쓴이 날짜만으로 올린 결과 입니다
무식하게 for문만으로 글 하나를 돌려서 올려본거죠 어떤식의 결과가 나올지 궁금해서...
제가 만든 미니홈에 들어간 게시판에는 그 게시판의 고유 코드들이 몇개 있습니다 그 코드들을 무시한 채
올린 결과이구 정확한 테스트가 아니며 인덱스 키가 걸리지 않은 상태에서 일반적인 불러오기였을 때의
시간이였습니다 만약 제대로 글을 올리구 제대로 된 키 값들이 들어가며 어느 정도의 튜닝이 되었다면
최소 5초에서 최대 20초 정도는 되겠더군요 만여개의 글은 대략 3초에서8초 사이 안으로 뽑아 옵니다
만족할 만한 시간 값은 아니지만
일반 개인 홈페이지에서 십오 만여개의 글을 넘긴다는게 그리 쉽지만은 않기에 보통 사용자들은 쓰기에
큰 부담 없는 시간대가 나올듯 합니다
제대로 된글을 현재의 소스로 불러오기를 한다면 만여개의 글 까지는 그리 지루하게 기다려지는 느낌은
들지 않으리라 봅니다 게시물 중 용량을 찾이 하는 그림이 들어간 경우에는 조금 길어질 수 있습니다
추후에 좀 더 시간을 단축할수 있는 튜닝 기법을 배운다면
그 때 새로운 방법을 알려 드리겠습니다
# 다시한번 말씀드리지만 위에한 테스트는 정확한 테스트가 아닙니다 상황이나 조건을 하나도 안 맞춘거니
오해 없으시길 바랍니다
list.php의 모습입니다
<?
//제로보드 절대 상대 리브 파일 인크루드
// DB 연결
// 멤버정보 구하기
// 게시판 정보를 갖고옴;;
// $data 가 없을때, 게시판이 없을 때 에러 표시
// 선택된 메모가 있을시 데이타 뽑아오기;;
// 전체 글의 갯수
//검색 조건 있을시 전체 갯수 구하기;;
// 페이지 계산
// 데이타 뽑아오는 부분...
//$que 에 대한 정의
// 검색어 있으면 데이터 뽑기
// 페이지 계산
// 아바타 불러오기;
//게시판 접근 권한 체크
//글읽기 권한 체크
//글쓰기 권한 체크
?>
<? // 게시판이 있으면 데이터 불러오기:시작;;
if($data[no]) {
?>
<html>
자바 스크립트
--전페이지에서 쓰인 테이블 태그 시작 (배경 그림 지정)--
게시판의 맨 윗 공간 ( 게시판 이름이나 게시판 에디트 링크 혹은 게시물의 수가 들어가는 곳 )
번호 제목 글쓴이 날짜 조회 추천등 상황 판 들어가는 곳
1픽셀의 회색 가로 부분
<tr>
<?// 공통 화일문 리스트 출력
$loop_number=$total-($page-1)*$page_num;
while($data=mysql_fetch_array($result)) {
//번호 제목 글쓴이 날짜 조회 추천 이메일 홈페이지 등 기본 사항에 대한 정의
//비밀글일 때 비밀글 표시
?>
번호 제목 이름 날짜 조회 추전 들어가는 부분 (내용 부분)
</tr>
1픽셀의 아래 회색 막대 부분
<?
$loop_number--;
}
?>
글목록 글쓰기 버튼
페이지
찾기 기능
테이블 닫음 태그
<?
접근 권한이나 읽기 쓰기 권한에 대한 알러트
?>
<?
// MySQL 닫기
if($connect) mysql_close($connect);
?>
이정도의 수순으로 list.php가 만들어 집니다
바로 코드를 써서 설명 드리지 않는것은 모양새가 어떻게 돌아가는지를 파악해야 차후에
소스를 고치거나 혹은 넣을 때 용이하기 때문입니다
메뉴에서 게시판 아이디를 클릭했을 때 제일 처음 보이는 list.php 파일의 모양새를 보겠습니다
그후 view.php 파일의 모양새를 설명한 다음 디비에 게시판의 정보와 들어온 메모를 담을 수 있는 테이블을
생성해 보며 테스트 하기 위해 만들어진 글들이 게시판에서 잘 불러와 지는지를 보는 식으로 넘어가겠습니다
그 후 글쓰기 파일과 그 글들을 올리거나 지우는 파일 그 다음 코멘트를 만드는 식으로 넘어 가겠습니다
제가 하는 방식은 일종의 멀티형 게시판(?) 이라구 할 수 있습니다
게시판의 기본 정보는 따로 담겨지구 게시판에 들어가는 기본 정보인 글이나 글쓴이 날짜 등은 게시판 하나에
디비 테이블을 하나씩 찾이하는게 아닌 하나의 테이블에 모든 게시판의 글이 들어갑니다
디비 효율성에선 괜챦지만 양이 늘어 남으로써 불러들이는 시간이 길어지거나 혹은 코드가 늘어남으로써
더 복잡해 질 수 있습니다 게시판은 보통 일반 게시판 자료형 게시판 엘범형 게시판 메모장 방명록 정도면
왠만큼 쓸 수 있는 형태가 되리라 믿습니다
게시판 타입별로 디비 테이블을 생성할까도 했지만 가능성을 보고자 하나의 테이블에 모든 글을 담아 봤습니다
미니홈에 관심이 많으신 분은 예성님이 내 놓으신 개인 메모장을 생각하시면 됩니다
제로보드 처럼 게시판 하나에 여러개의 테이블이 생성되는게 아닌 하나의 테이블을 놓구 공유 하는게 되는거죠
차후에 불러오기가 늦다던지 그럴 경우엔 각자의 마음대로 게시판타입이나 아니면 정해 놓은 게시판 숫자에
의해 글을 담는 테이블을 늘려주면 아무래도 좀 낫겠죠
정확한 테스트는 아니지만 글을 15만개 올렸을 때 그 글을 클릭하구 게시물을 찾아오는 시간은 10초 정도
내용 찾기를 했을 때는 10초에서 15 초 정도 걸리더군요 늦어질 때는 대략 30초
이건 제대로 된 테스트가 아닌 for 문을 이용한 일방적인 글을 올렸을 때 입니다 (그림 같은 파일은 들어가지
않은 상태입니다 단순히 글 위주로 )
글을 찾아 올때는 여러가지 조건이 담기는데 그 조건들을 무시한 채 내용과 글 쓴이 날짜만으로 올린 결과 입니다
무식하게 for문만으로 글 하나를 돌려서 올려본거죠 어떤식의 결과가 나올지 궁금해서...
제가 만든 미니홈에 들어간 게시판에는 그 게시판의 고유 코드들이 몇개 있습니다 그 코드들을 무시한 채
올린 결과이구 정확한 테스트가 아니며 인덱스 키가 걸리지 않은 상태에서 일반적인 불러오기였을 때의
시간이였습니다 만약 제대로 글을 올리구 제대로 된 키 값들이 들어가며 어느 정도의 튜닝이 되었다면
최소 5초에서 최대 20초 정도는 되겠더군요 만여개의 글은 대략 3초에서8초 사이 안으로 뽑아 옵니다
만족할 만한 시간 값은 아니지만
일반 개인 홈페이지에서 십오 만여개의 글을 넘긴다는게 그리 쉽지만은 않기에 보통 사용자들은 쓰기에
큰 부담 없는 시간대가 나올듯 합니다
제대로 된글을 현재의 소스로 불러오기를 한다면 만여개의 글 까지는 그리 지루하게 기다려지는 느낌은
들지 않으리라 봅니다 게시물 중 용량을 찾이 하는 그림이 들어간 경우에는 조금 길어질 수 있습니다
추후에 좀 더 시간을 단축할수 있는 튜닝 기법을 배운다면
그 때 새로운 방법을 알려 드리겠습니다
# 다시한번 말씀드리지만 위에한 테스트는 정확한 테스트가 아닙니다 상황이나 조건을 하나도 안 맞춘거니
오해 없으시길 바랍니다
list.php의 모습입니다
<?
//제로보드 절대 상대 리브 파일 인크루드
// DB 연결
// 멤버정보 구하기
// 게시판 정보를 갖고옴;;
// $data 가 없을때, 게시판이 없을 때 에러 표시
// 선택된 메모가 있을시 데이타 뽑아오기;;
// 전체 글의 갯수
//검색 조건 있을시 전체 갯수 구하기;;
// 페이지 계산
// 데이타 뽑아오는 부분...
//$que 에 대한 정의
// 검색어 있으면 데이터 뽑기
// 페이지 계산
// 아바타 불러오기;
//게시판 접근 권한 체크
//글읽기 권한 체크
//글쓰기 권한 체크
?>
<? // 게시판이 있으면 데이터 불러오기:시작;;
if($data[no]) {
?>
<html>
자바 스크립트
--전페이지에서 쓰인 테이블 태그 시작 (배경 그림 지정)--
게시판의 맨 윗 공간 ( 게시판 이름이나 게시판 에디트 링크 혹은 게시물의 수가 들어가는 곳 )
번호 제목 글쓴이 날짜 조회 추천등 상황 판 들어가는 곳
1픽셀의 회색 가로 부분
<tr>
<?// 공통 화일문 리스트 출력
$loop_number=$total-($page-1)*$page_num;
while($data=mysql_fetch_array($result)) {
//번호 제목 글쓴이 날짜 조회 추천 이메일 홈페이지 등 기본 사항에 대한 정의
//비밀글일 때 비밀글 표시
?>
번호 제목 이름 날짜 조회 추전 들어가는 부분 (내용 부분)
</tr>
1픽셀의 아래 회색 막대 부분
<?
$loop_number--;
}
?>
글목록 글쓰기 버튼
페이지
찾기 기능
테이블 닫음 태그
<?
접근 권한이나 읽기 쓰기 권한에 대한 알러트
?>
<?
// MySQL 닫기
if($connect) mysql_close($connect);
?>
이정도의 수순으로 list.php가 만들어 집니다
바로 코드를 써서 설명 드리지 않는것은 모양새가 어떻게 돌아가는지를 파악해야 차후에
소스를 고치거나 혹은 넣을 때 용이하기 때문입니다
댓글 6
-
Daiseuki
2004.11.25 14:21
-
예뜨락
2004.11.25 17:46
글을 다 안 읽으신듯 한데요 ^^;;
위에 써 놨듯이 제대로 된 테스트가 아니라구 써놨는데 밑줄 쳐 놓는걸 깜빡했네요
인덱스도 걸리지 않은건 물론이거니와
불러오는 값에서 들어가야 할 사항이 완전히 들어가지 않은 글번호로만 불러 들인 값이거든요
올려진 데이터들도 글번호를 제외하곤 전부 동일한 중복 데이터구 ^^;;;
제대로 테스트용 쿼리문을 만들어서 들어가야 할 값들이 정확히 들어갔을 때 어떻게 나올지
저 또한 궁금합니다 하지만 아직 그럴 단계가 아니기에 미뤄두구 있죠
현 상태에선 어느 정도 자리를 잡은 상태에서 튜닝하는게 더 효과적이기 때문에
"100만건에 0.007초"라 대단하신데요 ^^
허접한 수준은 벗어 나신듯 한데요 ^^;;;
100만건의 데이터를 일일이 써서 올리시진 않았을 듯 싶구
실례가 되지 않는다면 100만 건의 글을 올리셨다는 게시판과 테스트 쿼리문을 좀 볼수 없을까요
혹여 기분을 상하게 해드렸다면 사과 드리구요 -
Daiseuki
2004.11.25 19:17
기분 상하게 한건 저 같네요 ㅎㅎ; 죄송합니다..(__)
'만약 제대로 글을 올리구 제대로 된 키 값들이 들어가며 어느 정도의 튜닝이 되었다면 최소 5초에서 최대 20초 정도는 되겠더군요'
이 말씀이시죠? 이걸 이해 못했어서 말이죠 ㅎㅎ
테스트는.. 제가 파일을 통째로 날려먹은 관계로...-_-;
(뭐.. 했었던 거니까 기억나는 대로 다시 만들 수는 있습니다만...귀찮죠;)
while문으로 제목에 번호 매겨가며 제목과 시간, 그리고 약간의 동일한 내용을 입력해 뒀구요.
http://phpschool.com/bbs2/inc_view.html?id=10415&code=tnt2
http://www.phpschool.com/bbs2/inc_view.html?id=9107&code=tnt2
위의 두가지 알고리즘을 적용시켜놨더랬죠. 그리고 나름대로 추가한 부분도 있구요.
근데.. 검색하는데서 고민하다가 팽겨쳐 놓은상태에서 하드포멧하다가 날려먹었죠..
분명백업은 해놨는데.. 복구를 안시키고 없애버리는 바람에..-_-;
그럼 수고하세요~^^ -
Daiseuki
2004.11.25 19:32
아.. 1천만건이 0.02초 밖에 안걸리는 것도 있더군요;
물론 더 빠른것도 당연히 있을테구요.
무서운 세상이네요.. ㅎㅎ -
위대한위선자
2004.11.25 22:32
Daiseuki 님께 //
미니홈 강좌를 하시는 예뜨락님의 시리즈 맨 처음에 보면 이 강좌는 예뜨락님이 그동안 미니홈을 만들어 오시다가 잠시 작업해 온 것을 공개하는 글인것 같습니다. 또한 공개를 통해서 예뜨락님께서는 좀 더 좋은 방법과 좀 더 좋은 팁을 서로 나누기를 바라시는 것 같습니다.
저는 예뜨락님과는 조금 다른 형식으로 미니홈을 공개하고 만들어가고 있지만 강좌를 읽어가면서 도움이 되는 부분도 많은 것 같습니다.
Daiseuki 께서 읽어보시고 이런 것보다는 이런 것이 훨씬 더 소스에 적합하다는 것을 함께 나누면 좋겠습니다.
Daiseuki 께서 알려주신 링크글도 많은 도움이 되는 글인것 같습니다.
예뜨락님이 쓴 글은 완성본이 아닌 함께 나누면서 좀 더 좋은 형태로 미니홈을 다듬어 가려는 목적도 있으니 서로 주고 받는 것이 좋은 것 같습니다. 두 분 다 힘내시기 바랍니다. 그리고 날씨가 추워집니다. 건강 챙기시면서 .... 꾸벅 ! -
최림
2008.07.04 08:19
刚开始vks爱上对方
제목 | 글쓴이 | 날짜 |
---|---|---|
개판 오분전 라인 그래프 [4] | 미친개 | 2004.12.01 |
실명 진위여부 확인 [10] | piasol | 2004.12.01 |
나만의 미니홈 만들기 ㅡ write.php 파일과 write_ok [5] | 예뜨락 | 2004.11.30 |
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크 [9] | 예뜨락 | 2004.11.27 |
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성 [6] | 예뜨락 | 2004.11.26 |
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새 [6] | 예뜨락 | 2004.11.23 |
나만의 미니홈 만들기 ㅡ 게시판의 디자인 | 예뜨락 | 2004.11.22 |
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지 [3] | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지 [3] | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃 [2] | 예뜨락 | 2004.11.19 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계2 .레이아웃 | 예뜨락 | 2004.11.18 |
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] | 예뜨락 | 2004.11.17 |
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] | 타키 | 2004.10.24 |
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] | 타키 | 2004.10.23 |
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] | 타키 | 2004.10.23 |
www자동 붙히기 [8] | 미오유 | 2004.10.22 |
IP to 정수변환(;) [4] | 플로렐라 | 2004.10.21 |
한글자르는 문제 PHP차원에서 해결된 건가? [5] | 겜방 | 2004.10.20 |
MySQL의 패턴 매칭 맛보기 [2] | 손상모 | 2004.10.19 |
그래프 만들어주는 소스 [10] | 미친개 | 2004.10.15 |
아무리 인덱스가 걸리지 않은 상태라 하더라도 데이터양이 수백Mb 또는 수Gb 정도가 아니라면 이해가 되지 않는군요;
저는.. 100만건 정도에서 아무리 느려도 0.05초 안에 뽑아올 수 있어야 한다고 생각하고 있습니다만..^^
저 같이 허접한 놈도 100만건에서 마지막 페이지에서 20개의 글 추출시 0.007초 정도까지 성공했는데.. 인덱스만 제대로 걸어줘도 크게 성능을 향상시키실 수 있으리라 봅니다^^