login register Sysop! about ME  
qrcode
    최초 작성일 :    2001년 03월 26일
  최종 수정일 :    2001년 07월 18일
  작성자 :    taeyo
  편집자 :    Taeyo(김 태영)
  읽음수 :    141,143

강좌 목록으로 돌아가기

필자의 잡담~

안녕하세요? 드디어 자그마치 2년전에 썼던 게시판 강좌를 업그레이드 합니다. 웹 프로그래밍에서 무엇보다 중요하고 기반이 되는 것이"게시판 만들기" 입니다만... 기존에 올라와있던 강좌는 솔직히 비효율적인 소스와 구성이 상당했었음을 인정합니다.... T.T 그래서 마음을 먹고 무작정 진행하는 기존 강좌 업그레이드 프로젝트(?)의 하나입니다.. 멋지죠? 수준은 taeyo's ASP 정도로 하려고 하고 있습니다. 즉, 일반수준이지요. 윈도우 2000을 기본으로 해서요.. 기대해 보세요... 이미 아시는 분들도 어쩌면 자그마한 팁을 얻으실 수 있을지 모릅니다.

게시판을 만드는 과정은 아래와 같은 단계로 진행될 것입니다. 물론 쬐금은 변경될 수도 있습니다. ^^  이것은 일단 대략적으로 잡아본 목차이니까요..  ^^

1) 데이터베이스의 구성 & ODBC 세팅
2) UDA : OLE DB & ADO
3) 게시판 글 쓰기
4) 글의 목록(리스트) 보기
5) 글의 본문 보기
6) 글의 조회수 증가 및 이전글, 다음글
7) 글을 수정, 삭제하기
8) HTML 태그(tag)효과의 제한 및 페이지 바로 가기 기능
9) 글에 커멘트 달기
10) 글을 검색하기 (Search)
11) 자료실 기능을 접목하자 (ABCUpload 4버전 사용)
12) 강좌 사이에 여러분이 요청한 내용들... 추가..

자..  그럼 어디한번 시작해 볼까요??

1)  데이터베이스를 구성하자.

이제 ASP로 제작하는 것 중에 가장 기본인, 간단한 게시판을 제작해 보려고 합니다. 웹 프로그래밍에서 "게시판의 제작"은 상당히 중요한대요. 앞으로 다루게 될 쇼핑몰 제작, 계층형 게시판 제작같이 초보자들로서는 제작하기에 조금은 부담스러운 것들도 "게시판의 제작"을 마치고 나면 그리 크게 로직적으로 어려움이 없을 것이기 때문입니다.

모든 것의 기본이라고 볼 수 있죠..  게시판을 만들어 보는 것은 말입니다..  ^^ 잘 만들어 둔 게시판은 두고두고 유용하게 써먹을 수가 있습니다.  제 사이트가 그런 식이지요... ^^

일단, 게시판을 제작하기 위해서는 게시물(데이터)들을 저장할 데이타베이스가 필요한데요. 여기서는 가장 접하기 쉬운 MS-Access을 사용하려고 합니다.  요즘처럼 불법 소프트웨어가 문제가 되는 시기에는 어쩔 수 없지 않겠습니까?  하지만...   이 글을 읽고 계시는 업체의 분들을 위해서... SQL 서버의 경우도 같이 이야기를 하려고 합니다....  ^^

자. 이제 Access를 열어 우리가 사용할 데이터베이스를 만들어 봅시다. 이름은 여러분들 마음대로 주어도 되겠지만, 기왕이면 같이 해 나가는 공부이니 같은 이름으로 만들자구요. 자. 데이터베이스의 이름은 "MyDataBase"라고 주기로 합시다.

우선 Access를 열고 새로운 데이터베이스를 만듭니다.

mdb 라는 확장자로 MyDataBase.mdb 를 저장합니다. 저는 C:\Study\MyDataBase.mdb 로 저장했습니다. 데이터베이스를 다 만들었다면(이것은 진짜 하나도 안 어려웠습니다) 이제는 테이블을 만들어야 하겠습니다. 테이블은 다음 그림과 같은 구조로 만들도록 하며 테이블의 이름은 "MyBoard"라고 주도록 합시다...

디자인보기에서 새 테이블 만들기를 선택해서 새롭게 테이블을 추가합니다.

위의 그림을 참고로... 테이블을 구성하도록 합니다..  ^^ 제공되는 그림은 Windows 2000, Ms Office 2000 을 기준으로 한 것이라 조금 여러분과 다를 수 있습니다만... 중요한 부분은 거의 같을 것입니다.

근데요... 이거 그림보고도 스스로 못 만드시는 분은 어쩔 수 없습니다. Access 라는 툴을 따로 공부하세요... 여기서 Ms-Accesss는 어떻게 사용하고 SQL 서버는 어떻게 사용하고.. 그런 것을 다 알려드릴 수는 없습니다. 그랬다간 ASP 이야기는 꺼내보지도 못하고 강좌가 끝나버릴 수도 있으니까요..  ^^ 서점에 가보시면 알겠지만, MS-Access도 책 한권입니다. 그리 만만한 넘이 아니지요..... 어쨋든.. 만듭시다... 하고자 한다면 아무리 초삥이어도 만들 수 있습니다. 진짭니다. 한번 해 보세요...

잠깐 !!

컬럼 이름을 정할 때는 주의해야 할 것이 있습니다.
그것은 이미 데이터베이스 내에서 쓰이는 키워드 변수들은 컬럼이름으로 사용해서는 안된다는 것이죠.
예를 들면 컬럼이름으로 no, number, group, level 등등 과 같은 것들은 사용하면 안 됩니다.
이런 변수들은 이미 데이터베이스의 내에서 사용되는 변수들이어서 컬럼이름을 이런 키워드와
같은 이름으로 주게 되면 Error가 발생하거나, Insert나 Update 등등의 쿼리가 제대로 동작하지 않게 됩니다.
그래서 일반적으로는 컬럼 이름 앞에 접두어를 붙이는 것을 추천하고 있습니다.
예를 들면, 위에서 처럼 BOARD의 약자인 b를 붙인 b_name, b_email, b_title 등등이 그런 예이지요

테이블 구조에서 보면 알겠지만 우리는 게시판에서 글을 쓰는 사용자의 이름과 E mail 주소, 홈페이지 주소, 제목, 글, 글을 쓴 날짜, 글을 읽은 조회수, 글의 비밀번호를 저장하게 될 것입니다. 조회수와 글 번호를 제외한 모든 컬럼은 문자열로 하며, 상당히 긴 글이 들어올지 모르는 '글(b_content)' 컬럼은 메모(text) 타입으로 맞추어 주도록 합니다.

그리고, 조회수와 글번호는 숫자타입으로 맞추어 주세요(위의 그림을 참조로 말입니다). 이렇게 만들었다면 이제 한 가지를 더 체크해 주어야 하는데요. 사용자 중에는 아직 메일주소가 없거나 홈페이지가 없는 사용자들이 있을 수 있을 것이기에... 그런 사람들의 경우는 메일주소나 홈페이지 값이 입력되지 않을 것입니다. 그래서 b_email 컬럼과 b_url 컬럼은 빈 문자열을 허용해 주어야 할 것입니다.. 즉, 널 문자값을 허용해 주어야 한다는 것이지요.

기본적으로 모든 컬럼은 반드시 값을 기입해야만 하게 되어있습니다. 그러므로, 우리는 우선 email 컬럼을 선택한 후 화면의 하단에서 널 문자 허용의체크를 "예"로 해주어야 합니다. 다음 그림과 같이 말입니다.

b_email 컬럼에 "빈 문자열 허용"을 해 주었다면 b_url 컬럼도 같이 체크해 주어야 할 것입니다. 이제 테이블 구조는 완성이 된듯 하네요. 이제 제작될 우리의 게시판은 이 테이블에 데이터를 저장할 것임다. Ms-Access에서의 경우는 위와 같았구요...

Ms SQL 서버를 사용하시는 분들은 먼저 데이터베이스를 다음 그림과 같이 추가로 하나를 만드세요..

이름은 역시 MyDataBase가 좋겠지요 ?? 그리고, 해당 데이터베이스에 테이블을 만드셔야 하겠지만.... 그것은 Access 때와 같은 모습으로 만드시면 됩니다...  하지만, 여러분이 Ms SQL 서버를 사용하고 싶으시다면... 결코 만만하게 생각하시고 시작하셔서는 안됩니다. ASP 를 하기 보다 앞서서 따로이 SQL 서버를 공부해 주셔야만 합니다. 이것은 두꺼운 책 한권이구요. 사실 SQL 서버자체는 ASP 보다 내용이 더욱 깊습니다.

웹 프로그래머 입장에서 SQL 서버를 깊게 관리자격으로 파고 드는 것은 무리이겠지만.. 그래도 적어도 기본적인 SQL 서버 책은 한권정도 뗴셔야 합니다... 안 그러면 테이블을 하나 만드는 것도 어렵습니다. SQL 서버도 서버제품입니다. 이 SQL 서버만 공부하는 데에도 상당한 시간과 노력이 필요합니다. 결코 쉽게 생각하지 마세요...  여담이지만, 사실 SQL 서버만 잘해도 먹고 사는데에 지장이 전혀 없습니다. 그리고, SQL 서버의 경우는 위처럼 비주얼하게 테이블을 만드는 것 보다는요.... 아무래도 쿼리 스크립트를 직접 사용하는 것이 더욱 바람직 할 것입니다....  ^^  다음과 같은 스크립트를 통해서 테이블을 만들도록 하세요.. ^^  그게 더 나을 것 같습니다.

     CREATE TABLE [dbo].[MyBoard] (
         [board_idx] [int] IDENTITY (1, 1) NOT NULL primary key clustered,
         [b_name] [varchar] (50) NOT NULL ,
         [b_title] [varchar] (50)  NOT NULL ,
         [b_date] [smalldatetime] NOT NULL default getdate(),
         [b_email] [varchar] (100)  NULL ,
         [b_url] [varchar] (100)  NULL ,
         [b_readnum] [smallint] NOT NULL default 0,
         [b_ipaddr] [varchar] (50)  NOT NULL ,
         [b_pwd] [varchar] (10)  NOT NULL ,
         [b_content] [text]  NOT NULL
      )

이제 여러분들은 MyDatabase 라는 데이터베이스를 만드셨구요..  그 데이터베이스 안에 MyBoard 라는 테이블을 만들었습니다..  그 데이터베이스에는 원한다면 다른 테이블들도 얼마든지 만들 수가 있답니다..  ^^  하지만, 지금 우리는 게시판을 만들려고 하니깐, MyBoard 테이블에만 관심을 가지시면 된답니다.

자... 이제 데이터베이스와 테이블이 준비되었으니... ODBC를 잡을 차례인 듯 합니다.. ODBC 는 무엇일까요?  ASP를 비롯한 어플리케이션에서 데이터베이스를 연동할 수 있도록 해주는 방법이랍니다. 데이터베이스는 많은 종류의 것들이 있습니다. Ms Access, Ms SQL, Oracle, 사이베이스, Informix...

그 외에도 상당히 많은 데이터베이스 제품들이 존재하지요.. 하지만, 이들은 모두 나름대로의 규칙들과 문법들을 가지고 있습니다. 그렇다고 우리가 모든 데이터베이스 제품들에 대해서... 공부할 수는 없는 노릇이지요... 어쨋든 중요한 것은 우리가 ASP를 통해서 데이터베이스와 연동을 해야한다는 점입니다... 데이터베이스가 무엇이든지 간에... 우리는 데이터를 저장하고 싶고, 불러오고 싶기도 한 것이지요..

바로 ASP와 같은 어플리케이션들과 데이터베이스 사이에서 연결통로를 만들어 주는 것이 ODBC 입니다. 우리는 데이터베이스 제품이 어디 것인지는 상관없이 단지 ODBC 만 세팅해 주게 되면... ADO라는 마이크로 소프트 데이터 액서스 컴포넌트를 사용해서... 데이터베이스 서버에 접근, 데이터의 저장, 조회등을 할 수가 있게 된답니다..  ^^

2000년이 지나면서 사실 OLEDB라는 것이 무척이나 주목을 받고 있으며, 이는 ODBC를 대체할 기술로 각광을 받기 시작하고 있지요.. OLEDB에 대해서는 조만간 다른 강좌를 통해서 따로 이야기를 해보도록 하겠습니다. 어쨋든 현재 우리에게 중요한 것은 ASP 에서 데이터베이스와 연동을 하기 위해서... 해당 데이터베이스를 서버측에서 ODBC 세팅해 주어야 한다는 것이랍니다...  ^^ 그래야... 데이터베이스로 ASP 에서 접근이 가능하게 되니까 말입니다..

그렇다면 Access 의 경우 ODBC 잡는 법을 먼저 같이 해봅시다..  다음처럼 말이지요..
이 강좌는 여러분이 윈도우즈 2000을 사용한다는 가정에서 쓰여지고 있으니.. 그림도 2000 기준입니다.
하지만,  혹시 98이나, Windows NT 를 사용하시는 분이 있다면 죄송합니다만  Taeyo's ASP 책을 참고하시도록 하세요.
^^ 윈도우의 보여지는 모습만 조금 틀려졌을 뿐, 세팅순서는 거의 같습니다..  ^^

우선  을 누르고,   메뉴를 선택한 다음

 메뉴를 선택하시구요.....    를 선택합니다.

그러면 다음과 같은 ODBC 윈도우가 나타날 것입니다..  ^^ 
그러면, 바로 탭중에서 System DSN 탭을 선택하도록 합니다.

경우에 따라서는 기본적으로 잡혀져 있는 System Data Source 가 있을 수도 있지만 일단 무시하시구요.
(저의 경우는 ECDCMusic 와 LocalServer 이라는 것이 있지만...  일단 무시합니다) 
우리는 우리가 사용할 데이터베이스를 여기서 ODBC 세팅하는 것이 필요한 것이니까...
우리가 하고자 하는 일에만 집중하도록 하자구요..

자... 현재의 윈도우에서 Add 버튼을 눌러서... 새롭게 우리가 사용할 데이터베이스를 ODBC 잡아주도록 합시다.
그러면, 다음과 같은 그림이 뜨면서.. 어떤 데이터베이스를 ODBC 잡을 것인지... 지정해 줄수 있습니다.
Access를 사용하고 싶다면, 여기서 Access를... SQL을 사용하고 싶다면 여기서 SQL을 선택하면 됩니다.
Oracle도 기타 ODBC 드라이버가 제공되는 기타 데이터베이스도 모두 여기서 세팅이 가능합니다

잠시후,  Access 데이터베이스의 ODBC 세팅이 끝난 뒤 Ms SQL 서버일 경우 ODBC 잡는 법을 설명드릴 때 다시 이 윈도우를 보실 수 있을 것입니다...  ^^

여기서 중요한 것은 "데이터 원본 이름" 입니다.. 여기서 지정한 데이터 원본 이름을 통해서... 우리는 ASP 페이지에서 세팅된 데이터베이스를 접근할 수 있을테니까요....  "설명" 부분에는 자신이 알아보기 편하게 현재 데이터베이스의 설명을 적으시면 됩니다. 이제 MyDB 란 데이터 원본 이름(DSN: Data Source Name) 을 지정했으니... 어떤 데이터베이스를 MyDB 란 이름으로 사용할 것인지를 지정해야 합니다...

우리는 좀 전에 C:\Study\MyDataBase.mdb에 MDB 파일을 만들어 두었으니 그 파일을 지정하면 될 것입니다.위의 윈도우에서 가운데의  데이터베이스 : [선택] 버튼을 누르면 다음과 같은 윈도우가 뜨면서.. 파일을 지정할 수 있게 될 것입니다.... C:\Study\MyDataBase.mdb를 찾아서 지정해 주세요..

그리고 나면 다음과 같이 윈도우에 데이터베이스가 지정되어지게 될 것입니다.

이제 ODBC 설정은 끝났습니다.  이제 [확인] 버튼을 누르고 나면 우리는 ASP 페이지나 기타 여러 어플리케이션에서... MyDataBase.Mdb라는 데이터베이스 파일을 MyDB 란 이름으로써 사용할 수가 있게된 것입니다..  ^^

쉽지 않나요? 이것은 Access 의 경우의 ODBC 세팅이었구요... 이 ODBC가 세팅된 데이터베이스를 ASP 페이지에서 사용하는 것은 다음 강좌부터 진행될 것입니다.

그렇다면, Ms SQL 서버인 경우는 어떻게 될까요? 그러한 경운, 다시금 위의 ODBC 설정 윈도우를 열어서....  다시금 System DSN을 추가한다고 선택하면 됩니다.

방금 Access 로 잡아놓은 세팅이 보일 것입니다. 그것은 그것이고... 이번에 하려는 것은 SQL 서버를 사용하는 사용자일 경우입니다... DSN 이름.. 즉, 데이터 원본 이름은 중복될 수 없습니다..  ^^  고로, 이제 MyDB란 이름의 DSN은 사용할 수가 없다는 의미이지요...  그리고, SQL 서버를 쓰실분들은 위에서 한 Access 를 ODBC 잡는 것을... 하실 필요가 전혀 없습니다...  ^^   너무나도 당근과 같은 이야기지용...

SQL 서버의 특정 데이터베이스를 ODBC 잡는 것은 Access의 경우보다는 조금 어렵습니다. SQL 서버는 말그대로 서버이기에 계정이라는 것이 있고, 각각의 계정은 비밀번호를 가지고 있습니다. 그리고, 보안적인 부분이 강하게 움직이는 것이 서버이지요...  ^^  그러한 이유로 조금 더 복잡합니다만... 세팅에 어려움은 없습니다. 여러분은 금방 외울 수 있을 것입니다..  모든 ODBC세팅에 빠지지 않는 것이 무엇인지 기억하시면 되니까요... ODBC 세팅에 빠져서는 안되는 것일 무엇일까요??   마치 5W1H 와 같은 것...

어떤 데이터베이스 제품의 어떤 데이터베이스를 어떤 이름의 DSN으로 잡느냐는 것입니다.

위의 Access 의 경우에도 위의 조건을 따랐습니다. 먼저, 데이터베이스 제품을 선택했고, DSN이름을 지정한 다음, 해당 데이터베이스 파일을 지정해 주었습니다. 이는 SQL 서버에서도 오라클에서도 달라지지 않습니다.. 단지, 서버 제품에서는 사용자 계정 아이디와 비밀번호가 존재하기에 그것까지 세팅해 주는 부분이 추가되지요..

자.. 이 사실을 기억하시고...  이제 SQL 서버를 ODBC 연결해 보도록 합시다...^^

System DSN 탭에서..   [ADD]를 하게되면...  위와 같은 윈도우가 나오는데... 일반적으로 SQL 서버는 가장 밑에 존재하고 있습니다. 그것을 지정하시고..  [마침]을 누르시면 됩니다. 그러면 다음과 같은 윈도우가 등장합니다. 여기는 DSN과 설명 그리고... 데이터베이스 서버가 어떤 것인지 지정하는 부분이 등장합니다. DSN 명이 우리가 나중에 ASP 에서 사용할 이름이기에.. 이 이름을 잘 지정하고 외워두어야 합니다.

저는 아까의 Access와 구분을 하기 위해서.. MySQLDB 라고 주어 보았습니다. Access와는 다른 부분이... Server 라는 부분인데..  여러분의 네트웍상에는 여러대의 SQL 서버가 있을 수 있기 때문에...  그 서버의 이름을 지정하는 부분이 필요합니다. 여러 데이터베이스 서버가 존재할 수 있기 때문에 그중에 하나를 선정하는 것이지요.. 대부분, 자신의 PC 에 SQL 서버를 설치하고 있으실 것이기에...  다들 (local) 이라고 하시면 됩니다. 아니면, 자신의 컴이름을 기입하셔도 되져.. 컴 이름이 Sony 라면.  그 부분을 Sony 라고 적어주면 됩니다.

그리고.. [다음]...  그러면 이제 어떤 윈도우가 나올까요?

이번에는 어떤 아이디와 패스워드로 데이터베이스 서버로 접근할 것인지를 물어보는 윈도우가 나옵니다. NT 인증과 SQL 인증을 사용할 수 있는데..  대부분 SQL 인증을 많이들 사용합니다. 이것은 SQL 서버를 접근할 수 있는 계정을 NT 계정과는 따로  사용하겠다는 의미이지요...

저의 경우는 SQL 인증을 선택했구요.... 해당 아이디와 비밀번호는 SQL 서버의 기본적인 어드민 계정인 Sa를 사용했습니다. 기본적으로 Sa 계정은 암호가 없습니다.

하지만, 가급적.. 아니 반드시 SQL 서버 설치후 Sa 계정에게 반드시 암호를 부여하는 것이 좋습니다
(하지만, 사실 가급적 이 계정은 사용하지 않는 것이 좋긴 하죠.. 새로 계정을 하나 만들어서 사용하는 것이...)
저는 암호를 부여했기에... 위에 그림처럼 암호도 같이 지정하고 있는 것을 볼 수 있습니다. 지정이 잘 되었다면 다음으로 진행합니다.  혹, 다음과 같은 에러 메시지를 만나셨나요???

이 에러 메시지는 계정 아이디와 암호가 일치하지 않아서 나는 에러입니다... 이런 에러가 나면 SQL 서버 로 가셔서... 계정의 아이디와 암호를 다시금 확인해 보세요... 누군가가 암호를 바꾸어 두었던가, 그런 계정이 존재하지 않던가 할 것입니다...  ^^ 아이디와 암호도 모두 맞추어 주었다면...  ^^  다음과 같은 윈도우가 나옵니다...

그렇습니다. 바로 이제 우리가 사용할 데이터베이스를 선택하는 윈도우이지요...  ^^

기본적으로는 화면이 비활성화 되어져 있어서... 조금 혼란스러울 수 있습니다만... 여기의 가장 첫번째 체크박스에 체크표시를 하시고.. 위의 그림처럼.. 사용할 데이터베이스를 지정해 주어야 합니다. 우리의 경우 MyDataBase 이기에.. 그것을 선택하시면 됩니다. 이 단계를 제대로 거치치 않으면 기본적으로 Master 데이터베이스가 잡히게 되기에.. ODBC 를 잡아놓고도 제대로 ASP 페이지에서 데이터베이스로 접근이 안되는 일이 발생할 수 있습니다.

설정이 되었으면 다음으로...

그러면 위와 같은 윈도우가 나오는데요... 이것에서 우리가 세팅해 줄 것은 아무 것도 없습니다. 그냥 웃으면서 넘어가세요... ^^ [마침] 버튼을 눌러주시면, 다음과 같은 마지막 윈도우가 등장합니다.

여기서 지금까지 여러분이 세팅을 잡은 내역이 보여지는데요.. 그게 영어라 여러분은 별로 읽어보고 싶지 않을 수 있습니다...   하지만, 데이터베이스 이름은 가급적 꼭 확인하도록 하세요....  ^^ 그리고, 기분 나쁘다고 넘 성급하게 [OK] 를 누르지 마시구요... 꼭.. Test Data Source 를 해보세요

그리고,  위와같이 TESTS COMPLETED SUCCESSFULLY! 라고 메시지가 나오는 것을 확인 하셔야만 합니다...  이러면 ODBC 세팅이 완벽하다는 것을 알 수가 있지요... 여기까지 꼭 확인해 보셔야만 한답니다..... 이래서 Access 와 Ms SQL 서버의 ODBC 설정부분은 다 설명을 드렸네여..

뜨아아... 첫 강좌인데도.. 무척이나..  긴 이야기를 했습니다요...  하지만, 그래도 뭔가 부족해 보이는 것은 왜일까요? 흠흠... 이번 강좌에 대한 여러분의 멘트를 기대해 보구요.... 다음 강좌부터 이제 진짜 "게시판 만들기"는 시작됩니다...

그럼 다음 강좌에서.....  다시...  10000 나요~!


authored by


 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})