웹마스터 팁

교육용 메모장 #1

2000.07.10 15:31

zero

아래에 있는 방명록이 좀 복잡한가요?
좀더 쉬운 메모장을 만들기를 한번 적어봤습니다.

<a href=http://zerophp.com/php/memo/memo.php3 target=_blank>미리보기</a>

----------------------------------------------------------------------------
1. 메모장 만들기
이제 실제로 PHP로 CGI를 제작하여 봅시다.
처음으로 만들어본 CGI는 메모장입니다.
메모장은 간단하면서도 편리한 기능으로 많은 홈페이지에서 애용되고 있는 CGI입니다.
메모장을 제작함으로써 MySQL에 자료를 입력하고 검색할수 있는 실질적인 방법을 익힐수 있을것입니다.

2. 첫 번째로 생각하여야 할 것!!
일반 프로그램과 마찬가지로 CGI 프로그래밍시에도 미리 생각해야 할것이 있습니다.
바로 어떤 기능을 가져야 할것이며 어떤식으로 구현해야 할지를 정하는 것이죠.
메모장은 매우 간단한 구조로 되어 있습니다.
이미 MySQL DB에 저장되어 있는 자료를 출력하는 부분과 사용자의 입력 을 받아서 MySQL DB에 저장하는 방법이죠.
일반적인 메모장 CGI의 형태로 제작하여 본다고 생각하였을 때 다음과 같은 모양을 가지겠죠.
<div align=center><img src=http://zerophp.com/study/memo1.gif border=0></div>


그럼 어떤 기능이 필요한지 볼까요?
이름과 내용을 입력받아서 MySQL DB에 저장을 해야겠죠?
그리고 그 저장된 내용을 MySQL DB로부터 뽑아서 화면에 출력을 해야 하고요.
만약 저장된 내용이 너무 많다면 페이지별로 나누어서 출력하는 부분이 필요하겠죠.
그럼 이제 실제적인 제작 과정으로 들어가봅시다.

3. MySQL DB 스키마 설정
어떤 형식으로, 어떤 자료가 저장되어야 할지를 정해야겠죠?
그 형식을 스키마(Scheme)라고 하죠.
위의 메모장을 보고 생각을 해보세요.
우선 필요한 것이 이름, 내용, 날자가 필요하다는 것은 바로 아시겠죠?
그리고 번호도 들어가는군요.
메모장은 매우 간단해서 이 4가지 형식만 있으면 된답니다.
그럼 우리가 설계해볼 MySQL DB의 스키마를 한번 그려볼까요?
<div align=center><img src=http://zerophp.com/study/memo2.gif border=0></div>

위와 같은 형태로 MySQL DB에 자료가 저장이 된답니다.
스키마 이름은 한글로는 정의할 수가 없기 때문에 영어로 한번 적어봅시다.
번호 → no, 이름 → writer, 내용 -> memo, 날자 → reg_date
그리고 이 자료들의 형식을 정해줍시다.
no 는 계속해서 쌓이는 것이니깐 13자리로 합시다.
자료형은 int, 즉 정수형으로 해야겠죠?
name 은 사람 이름이니깐 문자형으로 8자로 합시다.
한글은 1글자당 2바이트를 차지하죠.
그리고 우리나라사람 이름은 4자를 넘어가는 일이 없기 때문에 총 8자로 정하는것입니다.
memo 또한 문자형으로 하고 크기는 255글자로 합시다.
reg_date는 정수형 12자리로 하면됩니다.
php에서는 time()라는 함수가 있습니다.
1970년 1월 1일부터 1초씩 계속 더해서 지금의 날자와 시간에 대한 값을 가지고 있습니다.
그럼 MySQL에서 통하는 query문으로 만들어봅시다.

create table memo (
no int(13) primary key not null auto_increment,
name varchar(8) not null,
memo varchar(255) not null,
reg_date int(13) not null );

create table memo 는 memo라는 이름을 가진 테이블을 만든다는 겁니다.
그리고 no 같은경우는 기본키(primary key)로 지정을 한다는 겁니다.
not null 은 빈값을 허용하지 않겠다, 즉 어떤값이라도 입력이 되어야 한다는 지정문입니다.
auto_increment는 아무런 값을 넣지 않았을 때 자동으로 1씩 증가된 값이 저장이 되죠.

이제 위에서 우리가 만든 메모장 테이블을 MySQL에 입력을 하여 봅시다.
프롬프트 상태에서 다음과 같이 입력을 하세요.

mysql -u아이디 -p암호 DB명

위와 같이 하면 자신의 MySQL DB로 접속이 됩니다.
그럼

mysql> 이라는 프롬프트 상태가 나타나는데 여기서 위에서 만든 query를 그대로 입력하세요.

제대로 입력이 되었다면 table memo created 라는 메시지가 출력이 됩니다.

자 이제 테이블까지 생성을 했으니 실제적인 코딩작업으로 들어가겠습니다.