login register Sysop! about ME  
qrcode
    최초 작성일 :    2001년 07월 23일
  최종 수정일 :    2001년 07월 23일
  작성자 :    Dukyoung (김덕영)
  편집자 :    Taeyo (김 태영)
  읽음수 :    484,737

강좌 목록으로 돌아가기

필자의 잡담~

태지...  서태지가 아닙니다.. 제 동생인 태지입니다...  형은 태오, 동생은 태지... 그럼 여동생의 아이디는?? 
여동생 없슴다...  -_-;

안녕하세요.'왕초보용 게시판 만들기' 강좌를 올리게 된 태지입니다.
이번 게시판 만들기 강좌는 다음과 같은 분들을 위해 작성되었습니다.

1. "ASP가 애프터 서비스의 약자 아냐? 그럼 P는 머지?"
2. "게시판? 그거 OX보드에서 공짜로 준다면서? 헉~ 유료화 됐다구?"
3. "저... 여긴 무슨 사이트에요? -_-a"

그렇습니다... 여기는 바로 ASP(Active Server Pages) 사이트인 것입니다.
그리고 이 강좌는 'ASP를 거의 모르는 사람들을 위한 왕초보용 게시판 만들기'인 것입니다.

사실 저는.. 이 강좌를 쓰라는 제의(동의어 - 강압, 압력, 언어폭력..)를 Taeyo 형님께 받고 많은 고민을 했습니다.
저는 결코 ASP를 잘 아는 사람이 아닙니다. ASP를 얼마 접해보지도 못했고 말이죠.
그런 제가 감히 '강좌'를 쓴다는 것은 지나가던 멍구(바보)가 웃을 일입니다.

하지만 이미 '그레이트한 초보' 라고 불리기에는 실력과 경력이 너무 쌓여버린 Taeyo형님과
또 홍익인간의 정신으로 널리 ASP의 세상을 이롭게 하신 수많은 중원의 고수님들.
그분들의 아무 거리낌없는 전문 용어 한단어 한단어(COM+가 어쩌구.. 트랜잭션이 중얼중얼..)가
우리 초보의 가슴에 비수를 꽂아버리는 이 시점에서 제가 이렇게 나서게 된 까닭은...
어쩌면 과부 심정은 홀아비가 가장 잘 안다는 옛말이 떠올라서인지도 모르겠습니다.

지금 이 글을 읽고 계신 분들이 ASP를 지금 이순간 처음 접해보셨으리라고 생각하지는 않습니다.
(taeyo 사이트 초기 화면에서 여기까지 마우스 클릭하면서 오시면 못해도 너댓번은 보시게 됩니다. 하핫~)
그래서 저는 여러분들이 ASP에 대한 개념을 조금은 알고 계시다는 가정 하에 강좌를 진행해 나가고자 합니다.

제가 진행하려는 강좌의 순서를 잠시 말씀드리도록 하지요.

1. 게시판을 만들기 위한 사전 준비 (오늘의 내용이 되겠습니다)
2. 게시판 만들기 - 글 올리기
3. 게시판 만들기 - 리스트 보기
4. 게시판 만들기 - 내용 보기
5. 게시판 만들기 - 수정하기, 삭제하기
6. 게시판 만들기 - 페이지 나누기
7. 게시판 만들기 - 검색하기

다시 한번 말씀드리지만 이 강의는 초보를 위해 만들어진 강의입니다. (제가 초보기 때문입니다)
그래서.. 조금은 귀찮을지 모르는 사항까지 조목조목 짚게 될지도 모릅니다. 이점 미리 양해 바랍니다.

강좌에 들어가기 이전에...이 게시판 만들기 강좌를 따라하기 위한 환경의 설명을 드리도록 하겠습니다.
우선 O/S는 Windows NT 4.0 (IIS 4.0) 이나 그 이상이면 되겠습니다.
개인적으로는 Windows 2000 Server (IIS 5.0)을 추천해 드립니다. 이 강좌는 2000 Server로 진행할 예정임다.

(이렇게 말씀드리면 걱정스러운 얼굴로 이렇게 질문하시는 분들이 꼭 계십니다.
"저기요.. 정말 죄송한데요.. 저는 2000 advanced Server인데요. 괜찮을까요??"
정말 아름다운 질문입니다. 돌다리도 두들겨 보고 건너는 저 모습!!! 아주 좋습니다..
2000 advanced Server도 자알~ 돌아갑니다.. 걱정 푹 놓으셔도 상관없겠습니다)

그리고 DataBase는 MS-SQL 7.0 (MS-SQL 2000도 상관없음)으로 사용하도록 하겠습니다.
기분같아서는 MS-SQL 7.0의 설치 방법도 이 강좌에 포함시키고 싶습니다만..
강좌가 너무 장황해 질지도 모른다는 - 이 강좌를 읽는 분들께서 알아서 설치를 하실 수 있으리라는 판단 하에 -
이유로 설치 부분은 제외하도록 하겠습니다. 만약 강좌 이후에 많은 분들의 요청이 있다면
추후 설치 부분을 중간에 추가하도록 하겠습니다.

정리해서 쉽게 말씀드리면 Windows 2000 Server 상에서 MS-SQL 7.0이 깔려있으면 되겠다...
대충 이런 의미가 되겠습니다. ^.^

자, 이제 그럼 본격적으로 시작해 보도록 하겠습니다.
오늘은 첫번째 시간으로 '1. 게시판을 만들기 위한 사전 준비' 작업을 해 보도록 하겠습니다.

ASP로 게시판을 만들기 위해서 우선적으로 필요한 것!! 당연히 웹서버(IIS)가 실행중이어야 합니다.
("어머나? 나 웹서버 설치 안했는데.. T.T....." 이런 분들 계십니까? 걱정하지 마십시오.
Windows NT 4.0과 Windows 2000 Server를 설치하신 분들은 기본적으로 웹서버가 설치되어 있습니다.
"니 말을 어떻게 믿니? 너두 초보라면서..." (-_-a) 라는 분들을 위해서 증거를 보여드리겠습니다.

<그림 1>


위 그림처럼 '시작 -> 프로그램 -> 관리도구 -> 인터넷 서비스 관리자'가 보이신다면 되겠습니다.
이것이 바로 웹서버(IIS - Internet Information Services)라는 친구가 되겠습니다.
("어? IIS는 Internet Information Server 아니었나요?" 라고 질문하는 예리한 분들이 꼭 계십니다.
맞습니다. Windows NT 4.0 (IIS 4.0)까지는 IIS가 Internet Information Server 였지만
2000 Server (IIS 5.0)가 되면서 Internet Information Services가 되었습니다.
이 이야기는 강좌의 주제에서 많이 벗어난 내용이 되므로 여기서 살짝~ 마무리 짓도록 하겠습니다.)

대부분의 2000 Server 설치자 분들은 '인터넷 서비스 관리자'가 설치된 것을 보고 안도의 한숨을 쉬실텐데요.
위의 방법으로 했는데도 '인터넷 서비스 관리자'가 설치 안된 분들이 꼭 한두분씩 계실겁니다.
그렇다면.. Windows 2000 Server를 처음에 설치하실때 IIS를 설치하지 않으셨다는 말이 됩니다..
(보통은 기본 설정이므로 설치가 다 되어 있을텐데.. 왜 그러셨어요. T.T)

그런 분들을 위해서 IIS만 설치하는 방법을 잠시 말씀드리겠습니다.
위의 그림에서 '시작 -> 설정'으로 가시면 '제어판'이 나오게 됩니다. 제어판을 클릭해주시고요.
밑의 그림처럼 '프로그램 추가/제거'를 클릭해 주십시오.

<그림 2>

그러면 다음 그림과 같은 화면이 뜰텐데요. 여기서는 'Windows 구성 요소 추가/제거'를 선택하세요.

<그림 3>


자 이제 무언가 잠시 시간이 걸리는 듯 하더니 다음과 같은 화면이 뜰겁니다.

<그림 4>


자 이 화면에서 위 그림과 같이 '인터넷 정보 서비스(IIS)'를 찾아 체크해 주시고 '다음'을 누른후
설치를 해 주시면 되겠습니다. (설치할 때에는 Windows 2000 Server CD가필요합니다)

이것으로서 ASP로 게시판을 짜기 위해 필요한 것들 중 첫번째인 웹서버의 설치에 대해서알아보았습니다.

'첫번째.. 어쩌구 하는 것으로 보아 두번째가 있겠구먼' 싶으시죠? 예리하십니다.. ^.^
그럼 두번째는 무엇일까요? 두번째 필요한 것.. 그것은 바로 DB(Database - 데이터베이스) 입니다.

이 강좌에서는 DB로 MS-SQL 7.0을 사용한다고 미리 말씀을드렸습니다.

'아까부터 자꾸 DB, DB 그러는데 DB가 도대체 뭔데?' 라는 분들을 위해서 DB의 정의를 간단히 설명드리겠습니다.DB는 쉽게 말씀드리면 우리가 입력한 모든 자료들을 저장하는 저장소입니다. 그렇다면 왜 DB라고 하는가? 거기에는 숨겨져 있는 깊은 뜻이있습니다.

그이유는 바로.. 우리가 입력한 자료들을 쉽고 편하게 디비기 위함인 것입니다. (오오옷~~)
여기 저기서 디비다가 없으면 딴데가서 또 디비고.. (필자 주: 디비다 = 찾다)

잠시 썰렁한 유머였습니다(-_-a). 하지만 이제 DB 즉, 데이터베이스에 대해서는 감이 팍팍~ 오지 않으십니까?
자료를 저장하는 곳, 그곳이 바로 데이터베이스라는 말씀입니다.

DataBase에도 종류가 참 많습니다만, 이 강좌에서 사용할 DB는 아까 말씀드린대로 MS-SQL 7.0입니다.
웹서버가 설치 되어 있고, MS-SQL 7.0의설치가 종료되셨으면 모든 준비가 완료 되었습니다.

그렇다면 이제 본격적으로 시작하도록 하겠습니다.
이제 가장 먼저 해야 할 일은.. 수많은 유저(user)들이 여러분이 만드신 게시판에 기록하는 정보
(이름, 제목, 내용 등등..)를 예쁘게 저장할 '데이터베이스(DB) 및 테이블'을 만드는 작업입니다.
가볍게 DB와 테이블을 하나 만들어보도록 하겠습니다.

왼쪽 하단에 있는 시작 버튼을 클릭하십시오.
그리고 '시작 -> 프로그램 -> Microsoft SQL Server -> Enterprise Manager'을 실행시켜 주십시오.
아래 그림을 참고하시면서 따라하시면 편할것 같습니다.

<그림 5>

MS-SQL 7.0이 실행되었다면 이제 여러분의 컴퓨터를 찾으실 차례입니다.
아래의 그림을 보면서 진행하도록 하겠습니다

<그림 6>


왼쪽 윗부분에서 제 컴퓨터의 이름인 'EXHIBITION'을 찾으실 수 있을 것입니다.
(여러분은 각자 여러분의 컴퓨터 이름이 나오게 됩니다. EXHIBITION이 없다고 놀라지 마세요. ^.^)

그 밑에 보시면 'Databases'라는 폴더가 있을 겁니다. (찾으셨죠?)
그 폴더에서 마우스 오른쪽 버튼을 클릭하시면 메뉴가 뜨게 되는데 가장 위에 있는
'New Database...'를 선택하셔서 새로운 데이터베이스를 하나 만들어 주시기를 바랍니다.
만드는 방법은 간단합니다. 밑의 그림처럼 뜨는 창에서 Name에 'test'라고 입력하고 확인을 누르시면 됩니다.

<그림 7>

(강좌의 통일성을 위해서 웬만하면 같은 이름으로 해주시길 부탁드리는 바입니다. 꾸벅~)

그러면 원통형의 'test'라는 데이터베이스가 하나 생길 것입니다. (<그림 6>을 참조해 주세요)
성공하셨다면 그 'test'라는 데이터베이스 밑에서 'Tables'라는 목록을 찾아주시고,
거기서 마우스 오른쪽 버튼을 누르신 후 'New Table..'을 클릭하시면 되겠습니다.
(무언가 좀 산만하군요... 하지만 차분하게따라해 주시기를 부탁드립니다. ^.^)

그러면 어쩐지 만만치 않아 보이는 화면이 하나 뜹니다.
바로 아래와 같은 화면이지요.. (호오. 정말 만만치 않은 화면이군요)

<그림 8>
 

무언가 잔뜩 들어가 있어서 위축되십니까? 전혀~~ 그럴 필요가 없습니다.
위에 영어로 잔뜩 적은 것들은.. 단지 우리가 게시판에서 받아온 정보들(이름, 제목, 내용 등등..)을
저장할 세부적인 목록을 적은 것뿐입니다.

'너야 다 아니까 그렇게 자신만만하지. 난 하나두 모르겠다. 치이~' 라는 분들.. 꼭 계십니다.
그런 분들을 위해서 되도록 자세하게 말씀드리도록 노력하겠습니다.
오늘의 핵심은 이 부분이므로 쉽게 이해가 안가시더라도 이해하도록 노력해 주시기를 부탁드립니다.

가장 먼저 나오는 'intSeq ' - 이것은 sequence(순서, 차례)의 약자로 게시가 등록될때 주어지는 번호입니다.
쉽게 말해 '게시물의 번호'지요. 이것은 게시가 하나 입력될때마다 자동적으로 1씩 증가하게 될 것입니다.
또한 게시물의 번호는 상식적으로 같은 번호가 있어서는 안될 것입니다. (유일해야 하는 것이지요.)
그래서 유일한 값이라는 뜻의 'identity' 항목에 'yes'를 체크해 주었습니다.

<그림 9>

그러면 증가값(identity Seed, identity Increment)이 1로 바뀌게 되는데요.
그 값을 그대로 두시기를 바랍니다. 앞으로 게시물이 등록되면 게시물 번호는 알아서 1씩 증가될 것입니다.
그리고 이 intSeq의 'Data Type '(<그림 8> 참조)은 숫자이므로 'int'(integer - 정수)로 정해주었습니다.

두번째로 나오는 strName은 게시물 등록자의 이름입니다.
이것은 문자가 들어가야 하겠죠? 그래서 'Data Type'을 'varchar'(문자열 저장)로 정해주었습니다.
저장할 수 있는 길이는 '한글 10자' 또는 '영어 20자'까지 가능하도록 설정했습니다. (Length를 20으로 설정)

세번째인 strEmail은 게시물 등록자의 Email 주소입니다.
조금 길 수 있으므로 50자까지 허용했으며, 혹시 메일 주소가 없는 사람이 있을 수 있으므로
값을 입력하지 않아도 문제가 생기지 않도록 'Allow Nulls'를 체크했습니다. (<그림 8> 참조)

네번째인 strPassword는 게시물 등록자가 설정하는 비밀번호입니다.
저장할 수 있는 길이는 이름과 마찬가지로 '한글 10자' 또는 '영어 20자'까지 가능하도록 설정했습니다.

다섯번째인 strSubject게시물의 제목입니다. '한글 127자' 또는 '영어 255자'까지 가능하도록 했습니다.

여섯번째인 strContent 게시물의 내용입니다.

이 내용은 사람에 따라서 천차만별입니다. 짧을 수도 있지만 무지하게 길 수도 있다는 뜻이지요.
그래서 저장하는 Data Type을 'text'로 설정했습니다. 'text는 길게 써도 괜찮은가보다..' 라고 생각하셔도 좋겠습니다.

일곱번째인 blnTag, 이것은 이 게시물이 태그(HTML)를 허용할 것인지 아닌지를 선택하는 변수입니다.
만약 허용한다면 'T'(true)를, 허용하지 않는다면 'F'(false)를 입력하게 됩니다.
예리하신 분들은 blnTag의 Data Type이 'char'(character)라는 것을 보셨을겁니다. 이것 또한 문자를 저장하죠.

그렇다면 조금 더 예리하신 분들은 이런 의문이 들지도 모르겠습니다.
'머야? 그렇다면 아까까지 쓰던 varchar하구 char의 차이는 머야? 초보라더니만 기분 내키는대로 쓰는거 아냐??'
물론 기분 내키는 대로 쓰는 것은 아닙니다. 그랬다간 저는 형님한테 혼납니다. -_-a

여기에는 조그마한 이유가 있습니다. 물론 charvarchar 모두 문자열을 저장하는 형식임은 틀림없습니다.
하지만 조그만 차이가 있습니다. 그것은 바로 저장공간의 차이입니다. 예를 들어보겠습니다.
형식이 다른 두개의 변수를 만드는데 하나는 char 형으로 길이가 10이고, 또 하나는 varchar 형으로 길이가 10입니다.

이 두 변수에 똑같은 문자인 'taiji'를 저장한다면 어떻게 될까요?
char(10)인 변수에는 'taiji     ' 로 저장이 됩니다. 길이를 10으로 설정했으므로 뒤에 5자리가 빈 채로 남게 됩니다.반면에 varchar(10)인 변수에는 'taiji'로 저장됩니다. 뒤에 빈 공간이 없다는 것이 char와 틀리지요.
즉, char는 길이를 10으로 정했다면 무조건 들어오는 글자를 10 bytes에 맞추는 것이고,
varchar는 길이를 10으로 정했다 하더라도 들어오는 글자에 따라 (10 bytes 이내에서) 유동적으로 줄여준다는 뜻입니다.

이런 varchar의 방식은 매우 저장 용량에서 상당한 이득을 보게 됩니다.
그렇다면 아까 그분, 또 이런 질문을 하실 거라 생각합니다.
'머야? 그럼 무조건 varchar를 쓰면 되지, char를 왜 쓰는데? 기분 내키는대로 쓰는거 아냐?? (-_-a)"

varchar는 말씀드린 것 처럼 유동적으로 저장용량을 줄여주는 대신, 현재 저장되어 있는 문자열의 크기를
헤더(header)에 저장합니다. 물론 이것을 우리가 볼 수는 없습니다. SQL 내부적으로 알아서 하는 것이지요.
하지만 char는 그런것이 없습니다. 무조건 들어오는 문자들을 설정된 길이만큼 넣는다는 말씀입니다.

그렇다면 고정적인 문자들을 저장하는 경우는 어떨까요? 이럴때에는 char를 쓰는 것이 유리합니다.
예를 들어서 주민등록번호를 저장한다고 생각해 보겠습니다.
대한민국에 사는 사람은 어떤 사람이든 주민등록번호가 총 13자리입니다. (앞 6자리, 뒤 7자리)
char(13)으로 저장하면 이것은 정확하게 맞아 떨어지게 됩니다.
하지만 varchar(13)이라 하면 char와 똑같이 저장하고, 또 헤더에 이 문자열의 크기까지 저장하게 됩니다.
그러므로 이와 같은 고정적인 문자열의 경우에는 char가 varchar보다 유리하게 된다는 말씀입니다.
물론 이것은 극히 미세한 차이입니다만, 작은 차이가 명품을 만든다는 사실을 여러분은
TV 모 CF를 통해서 아실것이라고 생각합니다. ^.^

정리하겠습니다. 사람마다 길이가 틀릴 수 있는 문자열들(이름, 제목, 비밀번호...)을 저장할때에는
varchar를 애용하시는게 여러모로 유리합니다. 하지만 고정적인 문자열(주민등록번호, 우편번호...)을
저장할 때에는 char를 사용하시는 것이 작은 차이지만 더 낫다는 것입니다.

본론으로 돌아가서 blnTag 같은 경우에는 'T' 또는 'F'를 저장할 예정입니다. 이 값 외에 다른 값이
저장이 되지는 않을 것입니다. 그러므로 여기서는 char를 사용한 것입니다. 이해가 되시지요?

여덟번째인 intCount 는 게시물을 사람들이 조회한 조회수입니다.

아홉번째인 strUserIP은 게시물을 등록한 사람의 IP를 저장합니다.
이것은 관리자의 입장에서 게시를 올린 사람을 알아내기 위한 방법으로 사용했습니다.
(이것은 다분히 관리자적인 측면입니다. 이상한 게시를 쓰고 도망간 사람은 추적해야 하지 않겠습니까? ^^)
IP는 아무리 길어도 15자리(예: 203.244.212.124)이내이므로 varchar(15)로 설정했습니다.

그리고 마지막 dtmReg_date은 게시물을 등록한 시간입니다.
Data Type은 smalldatetime입니다. 이것은 날짜 형식으로 저장하는 것입니다.
날짜 형식으로 저장하는 방식에도 datetime과 smalldatetime이 있습니다.
간단하게 여기서는 smalldatetime이 datetime보다 용량을 적게 차지한다.. 라고 알고 넘어가셔도 무방하겠습니다.

자.. 여기까지 칼럼의 이름들을 설명해 드렸습니다. 많이 어려우셨습니까?
어떤 분들께서는 칼럼 이름들을 보고 불만이 있으실지도 모르겠습니다.
strName, strEmail, blnTag, dtmReg_date...
"도대체 왜 이렇게 칼럼명을 길게 만든대? 오호라. 초보라더니 이런 식으로 무언가 있는 척을 해 보겠다?"
"자판 치기도 힘든데 좀 짧게 만들자, 좀.. 그냥 a,b,c 하면 안되나?"
물론 아닙니다. 있는 척, 아는 척 하고픈 생각 전혀~ 없습니다.
그렇다면 왜 이렇게 어색해 보이는 단어들을 길게 붙여놓았는가?

우선 칼럼명을 간단하게 a,b,c 처럼 하지 않고 위와 같이 길게 쓰는 이유부터 말씀드리겠습니다.
그것은 가독성(readability)을 높이기 위함입니다.
다음 강의부터 ASP로 게시판을 만들 때, 값들을 저장하는 변수명을 선언하게 되는데요.
그때 변수명을 a, b, c.. 이런 식으로 주게 되면 그 순간에는 편할지 몰라도 시간이 얼마 흐른 후에
다시 그 코드를 볼 일이 생긴다면 무슨 의미인지 기억이 안나 헤매는 경우가 있습니다. (많습니다. -_-a)

또한 실무에서 작업을 할 때에는 혼자서 작업을 하는 경우가 거의 없고, 그룹으로 작업을 하게 되는데요.
이럴 때 위처럼 자신만의 변수를 선언해 버리면 같이 작업하는 다른 사람들은
그 변수의 의미를 이해하지 못해 골머리를 앓는 경우도 생기게 됩니다.
그래서 조금은 귀찮더라도 의미를 명확하게 하기 위해 변수명은 이해하기 쉬운 단어
(뜻이 통하는 단어 또는 단어들의 조합)로 만드는 경우가 많습니다.

그렇다면 앞의 str이니 bln이니 하는 것은 무슨 의미인가?
그것은 해당 변수의 타입을 알려주는 역할을 합니다.
strstring(문자열), blnboolean(둘 중 하나), intinteger(정수형) 등이 대표적인 예가 되겠습니다.
이런 접두어들을 앞에 붙여줌으로써 '이 변수는 문자열이다, 이 변수는 정수형이다..' 라는 것을
미리 알려주어 가독성(readability)을 한층 더 높여주는 것입니다.

이렇게 작성한다면 이 규칙을 아는 사람들이 이 테이블이나 소스를 접하게 되었을 때,
처음 이 변수를 접하는 사람이라도 그 변수의 의미와 타입을 한눈에 알 수 있지 않겠습니까?
이렇게 변수명을 짓는 것이 처음에는 귀찮고 어색하더라도,
적응되면 정말 괜찮은 방법이라는 것을 피부로 느끼시게 될 것입니다.

또한 이런 자그마한 습관을 처음부터 잘 잡아 나아간다면 우리는 우리도 모르는 사이에
좋은 코딩 습관을 몸에 배게 만드는 것입니다. (뜨아~~)
좋은 코딩 습관이라.. 웬지 막 변수명 앞에 str이니 int니 마구 붙여주고 싶지 않으십니까? 아~주 좋습니다. ^.^

그렇다면 이제 이해가 가시겠지요.
이름(Name)과 메일 주소(Email), 비밀번호(Password), 제목(Subject), 내용(Content), 게시 등록자 IP(UserIP) 등은 문자열(str)이라는 것과, 태그사용(Tag)은 Yes or No 일 것이므로 Boolean(bln)을 사용한다는 것,그리고 등록일(register Date)도 datetime의 약자를 딴 dtm을 붙인다는 것을 말입니다.

자, 이제 컬럼 이름을 모두 정하셨으면 다 끝났습니다.
테이블을 고이 저장하시고 테이블의 이름은 'board'라고 주도록 하겠습니다.

자 데이터베이스와 테이블을 만드는 작업까지 끝이 났습니다.
이제는 무슨 일을 하면 될까요? 커피 한잔? 알까기 한게임?
그것도 좋겠습니다. 하지만 마지막으로 ODBC 등록만 하고 가시는게 어떨까요?

이번 강좌의 마지막 내용인 ODBC 등록에 대해 알아보겠습니다.
'ODBC 등록..? 아.. 뭔지 모르겠지만 또 어려운 건가 보다.. 지겹다.' 라고 생각하시는 분들을 위해
ODBC 등록에 대해 되도록 쉽게 말씀 드리겠습니다. ('쉽다면서 맨날 어려워' 라고 하시면 할말이 없네요.. T.T)

ODBC 등록이란 우리가 ASP상에서 사용할 데이터베이스가 어떤 것인지 이름표를 달아주는 작업입니다.
수많은 데이터베이스 중에서 우리가 쓸 데이터베이스의 이름과 접속 계정 등을 등록 함으로서
'이 DB는 내가 쓸 것임, 찜했음!'이라고 컴퓨터에게 알려주는 역할을 하는 것이지요.
방금 전에 우리는 'test'라는 DB와 'board'라는 테이블을 만들었습니다.
이제 이 test라는 DB를 '내가 찜했음'이라고 등록해 보도록 하겠습니다.

(난 OLEDB를 하고 싶은데.. 하시는 분들이 혹 계실지 모르겠는데요.. 그분들은 이 동네에서 노실 분들이 아닙니다- OLEDB가 뭔지 알고 있다는 것 자체가 배신입니다, 배신, 배반형!! -
그분들은 '게시판 만들기 버전 2000' 동네에서 노시면 훨씬 재밌게 노실 수 있을겁니다. ^.^)

자, 그럼 ODBC 등록 방법을 알아보도록 하겠습니다.
다음 그림과 같이 왼쪽 하단에 있는 '시작 -> 프로그램 -> 관리도구 -> 데이터원본(ODBC)'을클릭하세요

<그림 10>

그러면 아래 그림처럼 창이 하나 뜨게 됩니다.

<그림 11>

이곳에서 'System DSN' 탭을 선택하고 'Add' 버튼을 지그시~ 눌러줍니다.
그러면 Create New Data Source가 뜨게 되는데 밑의 그림처럼 'SQL Server'를 선택하시면 되겠습니다.

<그림 12>

'마침'을 누르시면 아래 그림처럼 Data Source 정보를 입력하는 창이 뜨게 되는데요.

<그림 13>

Name에는 이 데이터 소스의 이름을(영어로) 입력하시면 되고요.
(이 이름을 잘 기억하셔야 합니다. 나중에 ASP 코드에서 이 이름으로 불러오게 되니까요.)
중간에 있는 Description은 생략해도 상관없습니다.
Server는 자기 컴퓨터에서 테스트하는 경우 (local)을 선택하신 후 다음을 클릭하시면 되겠습니다.
(혹 다른 컴퓨터와 연결해서 쓰시는 경우 그 컴퓨터의 이름을 선택하시면 됩니다)

그러면 다음 그림처럼 로그인 방법에 대해서 나오게 됩니다..

<그림 14>

선택(라디오) 버튼이 위 아래로 두개가 나오지요?
위의 것은 NT Login ID로 연결하는 것이고, 아래는 SQL Login ID로 연결하는 것입니다.
우리는 아래 'SQL Server authentication..' 을 선택하도록 하겠습니다.
여기서는 테스트 용이므로 ID는 sa(System Administrator), 비밀번호는 없이 넘어가도록 하겠습니다

여기서 잠깐!!

sa는 말 그대로 System Administrator, 즉 모든 권한을 가지고 있는 사람입니다.
그러므로 이 계정은 가급적 쓰지 않으시는 것이 좋습니다. 보안상의 문제가 있기 때문이지요.
(혹시 누가 이 sa의 암호를 알아서 DB에 접근한다면, 여러분이 공들여 쌓아놓은 많은 자료들이
누군가의 악의적인 행동으로 흔적도 없이 사라질 수 있다는 것입니다. 이것은 절대 복구 불가능입니다..)
특히 'ID - sa, password - 없음' 과 같은 기본 세팅은 '날 해킹해줍쇼~~. Please~~'
라고 외치는 것과 다를 바가 전혀(!) 없습니다.
지금은 테스트라서 기본 세팅을 사용하지만, 절대로~!! 실제에서는 이렇게 사용하지 마세요.
계정을 하나 만들어서 사용하시는 것을 추천하며,
sa의 암호는 아무도 모를만한 것으로 꼭~ 바꾸시길 추천합니다.

자, 흥분을 가라 앉히고 다음 단계로 넘어가도록 하겠습니다.
그런데 혹시 다음으로 넘어가지 않고다음과 같은 그림이 뜨는 분도 있을지 모르겠습니다.

<그림 14-1>
 

이 화면은 sa로 로그인을 하려다가 실패했을때 뜨는 경고창인데요.
sa의 암호가 틀렸을 경우에 나오는 화면입니다.
설치 후 특별히 계정을 건드리지 않았다면 이 화면은 뜨지 않겠지만요.
만약 이 화면이 뜬다면 <그림 6>의 왼쪽편에서 'Security' 폴더를 선택하시고  'Logins'에서
sa의 암호를 바꾸어 주시면 되겠습니다. (암호란을 다 비우고 '확인' 하시면 되겠습니다.)

다음으로 넘어가셨다면 밑의 그림처럼 Change the default database to: 가 있을겁니다. 맨 위에요.

<그림 15>

이 단계는 기본 데이터베이스를 지정하는 단계입니다.
이것을 우리가 만든 데이터베이스인 test로 바꾸어 주시고 다음을 눌러주세요.
그러면 다음 그림이 나오는 화면으로 이동할겁니다.

<그림 16>

이부분에서는 별로 건드릴 것이 없습니다. 오랜 기간 고생하셨습니다. 이제 '마침'을 눌러주세요
그러면 다음 그림처럼지금까지 우리가 세팅한 내용이 주욱~~ 나오게 됩니다.

<그림 17>

차분하고 경건한 마음으로 아래에 있는 Test Data Source를 지그~시 눌러주세요
그러면 다음과 같은 화면이 나오게 됩니다.

"오우, 난 영어가 정말 싫어!!! 무슨 말인지 모르겠다구!!!" 라는 분 계십니까?
부디 흥분하지 마시고 설명을 들어주세요. 흥분은 흡연과 마찬가지로 건강에 해롭습니다.
위의 그림에서는 단순히 마지막 줄만 보시면 됩니다.

TESTS COMPLETED SUCCESSFULLY! <--- 중요한건 바로 이겁니다.

이게 뭐냐고요?? 밑에 OK 버튼을 보니까 무언가 성공한 느낌이 오지 않습니까?
그렇습니다. 중학교때 영어 좀 못하면 어떻습니까. 눈치로 다~ 해결할 수 있습니다..
테스트에 성공했다.. 즉 지정한대로 데이터베이스에 연결을 시도해 보았더니 잘 되더라~
바로 이런 깊은 뜻이 담겨져 있는 것입니다. 기쁘지 않습니까?

테스트 성공 메시지를 기분좋게 OK로 없애버리신 후, ODBC 화면을 완전히 꺼버리시기 전에
System DSN 탭에서 test가등록이 되어 있는지 확인해 주십시오. 다음 그림처럼 말입니다.

중간에 test가 등록이 되어 있는 것이 보이시죠?
확인을 하셨다면 이제 모든 준비는 완료가 되었습니다. 축하합니다.

이것으로서 'test'라는 이름의 Database와 'board'라는 이름의 테이블을 만들어 보았고요.
또한 ODBC 등록을 통해서 이제 실제로 사용할 수 있도록 모든 준비를 마쳤습니다.

따라 오시느라 머리 아프셨을텐데 커피라도 한잔 하시면서 잠시 휴식의 시간을 가지시지요.
첫 강좌라 많이 미숙하고 부족했음에 틀림없지만.. 더 나은 강좌를 위해 많은 격려와 질책 부탁드리겠습니다.
이해가 잘 안가는 부분이 있으시다면 글 올려주세요. 저도 잘 모르는 부분은 물어서라도 답변 드리도록 하겠슴다.

다음 시간에는 오늘 만든 DB와 테이블을 이용한 실질적인 게시판 만들기 코딩에 들어가도록 하겠습니다.
고생하셨습니다. 다음 강좌에서 뵙도록 하지요. 꾸벅~

강좌에 도움을 주신 감사한 분들.. : taeyo, dragon, comadevil, cassatt, jaya.
     - 결코 도움을 많이 준 순서대로가 아님 -_-;



태지의 화(話)

강좌중 의문사항이나 하시고픈 말씀 겸허하게 받겠습니다: maestrody@orgio.net


authored by

  gillg7905
  2009-03-03(13:13)
캐릭 이미지
대단합니다
  zcj125
  2009-12-10(15:51)
캐릭 이미지
죽임니다

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

로딩 중입니다...

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