'컴퓨터공학/Visual Studio'에 해당되는 글 4건

  1. 2006/02/12 초보자를 위한 게시판 제작 - 데이터베이스 설정
  2. 2006/02/10 초보자를 위한 게시판 제작 - 제작 준비
  3. 2006/02/02 ASP 프로그래밍의 시작
  4. 2006/02/01 ASP 입문
2006/02/12 01:29

2. 초보자를 위한 게시판 제작 - 데이터베이스 설정

1) 데이터베이스 설정

앞서 강좌에서 게시판 구동 원리를 설명하면서 디비에 저장해야할 정보들을 확인하였다. 이번 강좌에선 본격적인 게시판 프로그래밍을 하기 위해 MSSQL 2000 서버에서의 데이터베이스 설정을 해보겠다.
(MSSQL 2000 에서의 데이터베이스 추가 단계는 생략하고 테이블 추가부분만 진행하겠다.)

[시작] - [프로그램] - [Microsoft SQL Server] - [엔터프라이즈 관리자] 를 실행한다.

제작지 사용할 서버, 데이터베이스 를 선택한후 해당 데이터베이스 안 테이블 항목에서 새 테이블 하여 테이블 생성 작업을 시작한다.

위 그림과 같이 테이블 생성을 합니다.(regdate 기본값 : (getdate()), count_read, depth 기본값 : 0)
테이블명은 board 로 지정합니다.(다른것으로 변경해도 상관은없습니다.)

각 필드 별 역할
num : 게시물 고유 번호
idx : 게시물 정렬 번호(게시물 고유 번호와 달리 게시물 정렬에 사용되는 번호입니다.)
subject : 게시물 제목
username : 게시물 작성자
regdate : 게시물 작성날짜 및 시간
count_read : 조회수
content : 게시물 내용
pwd : 게시물 관리 비밀번호
depth : 답변글 위치(적절한 단어가 생각않나네요; depth 의 기본값은 0입니다. 0으로 된 게시물은 일반 게시물이고 0 이상 숫자가 들어간 게시물은 답변 글입니다. 이부분은 답변글 강좌에서 자세히 다루겠습니다.)

테이블 생성 SQL

/****** Object: Table [dbo].[board] Script Date: 02/12/2006 19:57:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[board](
[num] [int] NOT NULL,
[idx] [int] NOT NULL,
[subject] [varchar](255) COLLATE Korean_Wansung_CI_AS NOT NULL,
[username] [varchar](20) COLLATE Korean_Wansung_CI_AS NOT NULL,
[regdate] [datetime] NOT NULL CONSTRAINT [DF_board_regdate] DEFAULT (getdate()),
[count_read] [int] NOT NULL CONSTRAINT [DF_board_count_read] DEFAULT (0),
[content] [text] COLLATE Korean_Wansung_CI_AS NOT NULL,
[pwd] [varchar](50) COLLATE Korean_Wansung_CI_AS NOT NULL,
[depth] [int] NOT NULL CONSTRAINT [DF_board_depth] DEFAULT (0)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
SET ANSI_PADDING OFF

Posted by DearMai
2006/02/10 01:28

1. 초보자를 위한 게시판 제작 - 제작 준비

1) 게시판이란?

게시판이라고 하면 대략 이런 형식을 떠 올릴 것이다.

<NZEO.com 의 제로보드 자유 게시판 모습>

게시판 목록 구조를 보면 게시물들의 리스트를 보여주는데 보통 번호, 제목, 작성자, 작성일, 조회수 이렇게 표시 하고 있다.

그리고 게시물 작성, 수정 및 삭제, 그리고 답변 기능 이 일반적인 게시판의 기능이다. 제로보드나 다른 포탈 사이트 게시판에 보면 코멘트(꼬리글) 기능 등 여러가지 기능들이 있는데 이 강좌는 초보자들을 위한 강좌 임으로 기본적인 계층형 게시판으로 강좌를 진행 하겠다.

2) 게시판 프로그래밍을 위해서 준비

게시판을 제작 하기 위해서는 일단 웹프로그래밍을할 ASP 를 사용 할 수 있는 웹 서버(IIS), 그리고 게시물을 저장할 데이터베이스가 필요하다. 이 강좌에서는 주로 사용되는 MSSQL 2000 서버 기준으로 강좌를 진행 하겠다.

게시판 제작에 있어 ASP 는 게시물이 저장되어있는 DB(데이터베이스) 서버의 자료를 사용자들이 알아 보기 쉽게 표시하고(게시물 목록 표시), DB에 손쉽게 입력하고(글작성), 수정, 삭제 등을 할 수 있는 역할을 한다.

DB 는 게시물이 저장되는 곳으로 게시물 번호, 제목, 작성자, 작성일, 조회수, 내용 등을 포함 하고 있는 자그만한 공간이다.

<필자가 제작중인 TeenBoard 의 한 게시판 DB 내용>

정리하자면 사용자가 게시판을 보게 되면 ASP 는 위 그림과 같이 저장된 DB 내용들을 사용자들이 보기 쉽고 사용하기 편하도록 사용자와 DB 와의 중간 역활을 맡게 된다.

3) 게시판의 작동 구조

본격 적인 프로그래밍에 앞서 게시판의 작동 구조에 대해서 설명 할 것이다.

일단 게시물을 작성할땐 우리는 사용자에게서 다음과 같은 정보를 입력 받을 것이다.

작성자 이름, 게시물 제목, 내용, 게시물 비밀번호(게시물 삭제 및 수정을 위한 용도)

사용자에게 위와 같은 정보를 입력 받으면 ASP 를 이용해서 데이터 베이스에 다음 정보들을 입력한다.

게시물 작성 폼에서 받은 정보들, 게시물 작성 시간, 게시물 번호, 시작 조회수 0

게시물 작성 시간은 현재 시간을 지정하고, 게시물 번호는 첫번째 글은 1번, 2번째 글은 2번 이런식으로 최근 글일 수록 숫자가 크고, 오래된 게시물 일 수록 숫자가 작다. 이 게시물 번호는 게시물의 고유한 번호 이며, 다른 게시물과 구분 될 수 있도록 다른 게시물의 번호와 중복되지 않도록 한다. 그래야 게시물 보기, 수정 및 삭제 등의 작업을 할때 다른 게시물과 혼동되지 않기 때문이다. 조회수는 처음 작성된 글이므로 당연히 0 번 조회한것으로 저장된다.

이제 게시물 목록을 볼 차례다. 게시물 목록 부분에선 사용자에게 다음의 정보를 보여준다.

게시물 번호, 제목, 작성자 이름, 작성 시간, 조회수

게시물은 최근에 작성된 순서데로 정렬될 것이다. 정렬 방법은 앞서 게시물 저장 부분에서 최근글은 숫자가 크게, 오래된글을 숫자가 작게 저장된점 기억할 것이다. 고로 정렬은 게시물번호를 내림차순(큰거 에서 작은순)으로 정렬하면 최근 글이 젤 위에 표시 될것이다. 그리고 게시물이 너무 많을경우 한페이지에서 보기가 힘드니 한페이지에 10개의 최근 게시물 만 나오도록 하고 하단에 다른 페이지로 이동 할 수 있도록 할 것이다.

그리고 게시물 목록에서 제목을 클릭하면 게시물의 내용을 볼수 있다. 여기서 게시물 비밀번호를 알면 게시물 수정 및 삭제 기능을 사용 할 수 있도록 한다.

이로서 게시판 작동 구조의 설명을 끝을 맺겠다. 다음 강좌 부턴 본격 적인 게시판 프로그래밍이 시작될테니 기대하라 -ㄴ-

Posted by DearMai
2006/02/02 01:27

ASP 프로그래밍의 시작

이제 ASP 를 사용하기 위한 모든 절차가 끝이 났으니 이제 본격적인 ASP 프로그래밍을 시작해 보자.

ASP 를 HTML 문서 안에서 ASP 구문이 추가 되어 사용되는게 일반 적이다. 일단 IIS 의 기본 홈 디렉토리인 C:\inetpub\wwwroot\ 디렉토리에 hello.asp 를 추가하여 다음과 같이 입력하자.
(경로가 마음에 들지 않거나 다른 경로를 이용하실려면 인터넷 정보 서비스 관리모드에서 수정하면 된다.)

파일명 : hello.asp

<% @Language = "VBScript" %>
<html>
<head>
<title>Hello ASP.</title>
</head>
<body>
<%
Response.Write "Hello ASP.<br />"
Response.Write "현재 시간은 " & Now() & " 입니다."
%>

</body>
</html>

빨간색 으로 표시 한 부분이 ASP 구문이다. 소스를 살펴보면 일반 HTML 과는 달리 <% %> 이라는 이상한 구문이 있다.
그렇다 ASP 는 <% 와 %> 를 통해 ASP 구문의 시작과 끝을 알린다. <%, %> 그리고 <SCRIPT RUNAT="SERVER" LANGUAGE="VBScript"> </SCRIPT> 이런식으로 이용할 수도 있다.

첫번째 ASP 구문을 보면 @Language = "VBScript" 라고 되어있다. @Language 는 ASP 에서 사용할 언어를 선택 하는 부분이다. 기본적으로 VBScript와 JScript 를 사용 할수 있으며 이부분은 생략 하게 되면 서버의 기본 언어를 이용하게된다. IIS 서버는 설치후 기본적으로 VBScript 를 이용하게 되어있어 특별히 작성 않해도 되는 부분이나 혹시 JScript 로 ASP 프로그래밍 하실 분들은 @Language = "JScript" 라고 선언하고 사용하면된다. @Language 와 관련된 내용은 다음 강좌에서 언급 하도록 하겠다. 이 강좌에서는 ASP 에서 기본적으로 사용되는 VBScript 로 사용하도록 하겠다.

두번째 ASP 구문을 보면 Response.Write 가 이용되어있다. Response 는 ASP 에서 기본적으로 제공하는 객체 이며 Response 와 Request, Server, Application, Session 등을 지원하고 있다. 이부분도 따로 강좌로 만들어 언급하겠다. Response.Write 는 클라이언트에게 전송할 내용이다. 프로그래밍을 해오신 분들이라면 print, printf 문과 비슷하다고 생각하면 될 것 이다. 첫 Response.Write 에서 Hello ASP.<br /> 를 출력 하고 두번째 Response.Write 에서는 현재 시간은 Now() 입니다. 라고 출력한다. 이부분에 사용된 & 부분은 VBScript 에서 문자열과 문자열을 이어주기 위한 연산자(? 흠.. 맞는 용어가 생각이 않납니다.;;) 입니다. 그리고 Now() 는 VBScript 에서 현재 날짜와 시간을 가지고 있는 내장 변수(상수던가?;;)입니다.

hello.asp 를 웹서버를 통해 실행 시키면 다음과 같이 나올 것이다.

http://localhost/hello.asp


Hello ASP.
현재 시간은 2006-02-08 오전 5:21:52 입니다.


자 성공적으로 ASP 가 실행 된것을 볼수 있을 것이다.

(만약 500 에러 메세지가 발생 한다면 hello.asp 의 ASP 구문내 잘못 작성되어 틀린 구문이 있을테니 에러 메세지를 참고해서 수정 하길 바란다.)

간단하지 않는가? HTML 문서내에 <% %> ASP 구문을 이용해서 간단한 코스 삽입으로도 이렇게 동적인 페이지를 구현 할수 있다.

클라이언트는 웹브라우져 상에서 아무리 소스 보기를 시도 해도 <% %> 안의 ASP 구문은 절대 확인 할 수가 없다. 이는 웹브라우져에서 hello.asp 를 요청할때 웹서버는 hello.asp 를 가져오면서 확장자로 ASP 페이지인걸 판단후 ASP.DLL 을 이용해서 ASP 구문을 서버 내에서 처리 한후 결과값 만을 웹브라우져에게 전송 하기 때문에 클라이언트는 비 정상적인 방법(해킹 등)이 아니라면 절대 ASP 구문을 확인 할 수 없다.

ASP 페이지는 확장자가 기본적으로 .asp 로 지정되며 이건 관리 도구의 인터넷 정보 서비스 의 웹 사이트 관리에서 확인 및 추가, 수정을 할 수 있다.

참고 문헌.

http://www.taeyo.net/ - ASP 기초 입문 강좌

Posted by DearMai
2006/02/01 01:26

ASP 입문

1. ASP 란?

ASP(Active Server Page)는 1995년 후반기에 등장한 IIS(Internet Information Server)의 세번째 버전으로 Microsoft Windows NT 머신의 IIS 3.0 이상에서만 돌아가는 특별한 페이지 입니다.
ASP 는 서버에서 동작하여서 고정적인 HTML 과는 달리 동적인 구성을 가진 언어입니다.

HTML 문서의 서버 역할

HTML 문서의 경우 웹브라우져에서 웹서버로 요청을 할경우 웹서버는 서버에서 해당 HTML 문서를 찾아서 내용을 웹브라우져를 보내주게 됩니다..

반면 ASP 페이지의 경우.

웹 브라우져에서 ASP 페이지를 웹서버에 요청을 할 경우 웹서버는 해당 ASP 페이지를 찾아내서 ASP.DLL 을 통과를 해서 ASP 구문을 서버내에서 처리를 해서 HTML 로 변환해준후 웹브라우져로 보내주게 됩니다.

이처럼 HTML 는 저장된 페이지 내용 그데로 사용자에게 전송되어 지지만, ASP 페이지 경우 ASP 구문에 따라서 서버 내에서 사용자에게 필요한 정보를 가져와서 HTML 문서로 변환시켜 사용자에게 보내주게되어 동적인 페이지로 웹프로그래밍을 가능하게 해줍니다.


2. ASP 를 하기 전에 준비해야 할것

1) 웹서버

ASP 를 사용 하기 위해서는 1장에서 언급한 데로 Windows NT 머신의 IIS 3.0 이상에서 돌아가는 페이지 이다. ASP 를 사용하기 위해서는 Microsoft Windows NT 급의 OS가 필요합니다. 최근에 서버는 NT 4.0, 2000 Server(NT 5.0), 2003(NT 6.0) 가 사용되고 있는데 모두다 IIS 가 설치되어있다면 사용가능한 OS이다. 추가 적으로 Windows 9X, ME 버전도 PWS(Personal Web Server) 라는 프로그램을 설치 해서 ASP 를 이용 할수 있습니다. Windows XP 의 경우 Windows 2000 Professional 버전과 같이 XP Professional 버전일 경우 IIS 를 설치 해서 ASP를 이용 할 수 있습니다.

(Windows XP Home Edition 에서는 IIS 설치를 지원하지 않는데 뭐 따로 설치 방법이 있다는 정보를 본적이 있긴한데 여기서는 언급하지 않겠습니다.)

2) 데이터베이스 서버

데이터베이스는 사실상 모든 종류의 데이터베이스를 이용 할 수 있습니다. 다만 ASP 가 Microsoft 에서 제작된 언어 이기에 데이터베이스도 Microsoft 에서 제작된 MS Access, MS SQL 등을 사용하는것을 추천합니다.
하지만 MS Access 의 경우 트랜잭션의 미지원이나, 많은 트래픽이 있을때 오작동이나 안정성의 문제 등이 있어서 소규모 사이트(개인, 소모임 동호회 등)이 아니라면 사용을 추천하지 않습니다
요즘 많은 웹호스팅 업체들에서 MSSQL 을 기본적으로 제공하고 있으니 ASP의 데이터베이스 사용은 MSSQL 을 추천합니다. 물론 자신의 취향이나 프로젝트의 규모나 성격 등에 따라서 오라클 등을 이용 하는것도 괜찮습니다.

3) 제작툴

ASP 페이지는 사실상 제작툴이 따로 필요하지가 않습니다. ASP 는 HTML 문서에 ASP 구문을 추가 하여 사용하는 식의 텍스트 형식의 문서로 제작되는 언어이기에 HTML 문서를 제작할때 사용하는 드림위버나 나모웹 에디터 같은 이지윅에디터나 메모장, Editplus 같은 텍스트 편집 프로그램으로도 충분히 ASP 페이지의 제작이 가능합니다.

Microsoft Visual Studio 의 인터데브로도 가능하긴한데 필자는 이툴을 한번도 써보지 않은관계로(- _-;;;;) 강좌에선 생략하겠습니다. 인터데브가 강력한 툴이긴 하지만 고가의 제품이기도 하고 인터데브가 없이도 충분히 ASP 프로그래밍이 가능하기때문에 불편함은 없으리라 봅니다. 만약 인터데브를 이용하고 싶다면 개인적으로 공부하길 바랍니다.(-ㄴ-;;)


3. 본격적인 ASP 시작 준비

1) OS 설치

웹서버를 돌릴려면 당연히 운영체제가 설치되어있어야 웹, 데이터베이스 서버 등을 사용 할수 있겠지요(-ㄴ-;). 운영체제 설치 부분의 경우 따로 설명을 하지 않아도 다들 할줄 아실꺼라 봅니다. 설마 윈도 설치 정도도 못하지는 않을 테니.. 단 설치는 Windows 2000, XP, 2003 등으로 설치 하길 추천합니다.

2) IIS 설치

필자의 컴퓨터는 Windows XP 를 사용 함으로 Windows XP 에서 IIS 를 설치 하는 과정을 설명하겠습니다. 2000, 2003 등에서 설치도 위 과정과 비슷하니 문제는 없을 것입니다.

(IIS 설치 하기전에 윈도우 설치 CD 준비 하는거 잊지 말기!)

[시작 - 설정 - 제어판] 에 들어가서 [프로그램 추가/제거] 실행

[프로그램 추가/제거] 실행 후 [Windows 구성 요소 추가/제거] 선택 그리고 [인터넷 정보 서비스(IIS)] 항목을 찾습니다.
(이부분은 윈도 설치 CD 를 삽입하면 실행되는 오토런 화면에서도 바로 실행 가능합니다.)

[인터넷 정보 서비스(IIS)] 하위 항목에서 [World Wide Web 서비스] 를 체크 해줍니다. 체크 할경우 공용파일, 인터넷 정보 서비스 스냅인 등이 자동적으로 체크 될것입니다. 추가적으로 FTP, FrontPage, SMTP 서비스 등은 사용 하실 경우 체크 하시기 바랍니다.

[World Wide Web 서비스] 항목안에 들어가면 여러가지 항목들이 있는데 자신의 사용할 서버에 맞춰서 체크 하시기 바랍니다.
2003 상의 경우 ASP.NET 항목이 있을텐데 ASP.NET 을 사용 하실려면 ASP.NET 항목도 같이 체크 하시면 됩니다.

이럻게 IIS 설치 항목 선택이 완료된후 [다음] 버튼을 클릭하면 설치가 시작될 겁니다.
CD 를 넣으라는 메세지가 나오면 윈도 설치 시디를 삽입하여 설치를 완료 하시기 바랍니다.

[시작] - [프로그램] - [관리도구] 또는 [제어판] - [관리도구] 에서 [인터넷 정보 서비스] 항목을 볼수 있을 것이다.

이제 이 화면에서 IIS 를 관리 할 수 있다.


이로서 ASP 를 사용 하기 위한 모든 준비가 끝이 났습니다. 이제 ASP 에 입문 하는 일만 남았네요.


참고 문헌.

http://www.taeyo.net/ - ASP 기초 입문 강좌 - Active Server Pages. 그 정체는?

Posted by DearMai