제가 이곳 볼랜드포럼에서
"채팅 서버/클라이언트 개발"이란 주제로
온라인 강좌를
진행하고자 합니다.
온라인상에서 강좌를 해본것도 너무 오랫만이고, 실력이 그리 뛰어난 편도 아니라 강의를
잘 진행할 수 있을런지 걱정이 앞섭니다. 하지만, 델파이 2005라는 공전절후의 개발도구가
곧 출시를 앞두고 있는 상황에서 침체된 포럼의 분의기를 좀 쇄신하고자 의욕적으로
추진하는 일이니만큼 다소의 잘못이 발생하더라도 너그럽게 이해해주시길 부탁드리면서
강의를 진행하기에 앞서 몇가지 말씀을 드리고 싶습니다.
강의 주제는 "채팅 서버/클라이언트 프로그램" 입니다.
이 주제는 많은 책이나 온라인 강좌에서 많이 다루고 있는,
"흔하고, 진부한" 것이긴 합니다만, 델파이로 소켓 서버프로그래밍을 배우기엔
더할 나위없이 훌륭한 주제라고 판단되어 이것을 강좌 주제로 채택했습니다.
강좌는 온라인 강좌를 원칙으로 하겠습니다.
오프라인 강좌는 공간과 시간상의 제약도 있고, 강의 진행자나 수강생 모두 많은 부담을 갖기
때문에 볼랜드포럼의 델파이 채널을 이용하는 온라인 강좌의 형태로 진행할 것입니다.
물론 "무료로 강의실을 확보할 수 있는 여건"이 된다면 오프라인 강좌도 병행할 생각도 있습니다만,
현실적으론 가능성이 낮아 보입니다.
강좌의 최종 회차는 반드시 오프라인에서 진행할 수 있도록 노력하겠습니다.(쫑파티도 해야 하므로...)
강좌주기는 주 1회 업데이트 하는 것을 원칙으로 생각하고 있습니다
가급적 원칙은 지키도록 노력하겠지만, 제 개인적인 사정에 따라서 그 주기가 변동될 가능성도 있습니다.
이점은 널리 양해해주시면 고맙겠습니다.
"강좌를 위한 강좌"는 지양하겠습니다
강좌에서 만드는 프로그램은 실제 볼랜드포럼에 포팅해서 운영할 "채팅 서비스"용으로
개발한다는 것입니다. 만드는 프로그램의 완성도가 높아야 그 과정에서 "보고 배울 수 있는"
것 들이 많을 것입니다.
기본적인 델파이 프로그래밍에 대한 지식이 필요합니다
델파이에 대해서 아무런 기초가 없는 분들을 수강대상으로 하게되면, 강좌 진행이 너무나도
어렵습니다. 따라서, 본 강좌를 무리없이 소화하려면 반드시 델파이 프로그래밍에 대한 지식이
필요하고, 본 강의에서 다룰 주제에 해한 선행학습이 필요합니다.
이젠 강좌를 듣고자하는 여러분이 반드시 갖춰야 할 기본적인 환경에 대해 말씀드리겠습니다.
델파이 버전
특정 델파이 버전에 종속되지 않도록 할 것입니다. 따라서 델파이5,6,7 또는 델파이 2005 중
어느 하나만 갖추고 있다면 강좌의 내용을 따라하는데 문제는 없도록 하겠습니다.
그러나, 기본적으로는 제가 델파이7로 작업을 할 것이므로 델파이7을 사용하시는 것이 아무래도
편할 것 같습니다.
DBMS
사용자관리, 로그인 등의 로직을 처리하자면 DBMS는 반드시 사용해야 하는데, BDE는 사용하지
않겠습니다. BDE를 사용하지 않는 것은 여러가지 이유가 있지만,
서두에서도 말씀드렸듯이 "실제 사용가능한" 프로그램 개발이 최종 목표이기 때문입니다.
현재 물망에 오른 것은 FireBird 1.5.1(
http://firebird.sourceforge.net/) 또는
MySQL 4.1.7(
http://www.mysql.com/) 입니다만, 라이센스 정책이 좀더 자유롭고
볼랜드 제품군인 Interbase에서 파생된 FireBird를 사용할 확률이 높습니다.
물론, 두 DB를 병행해서 지원하도록 최대한 준비하겠습니다만...
써드파티 컴포넌트
강좌를 진행하면서 델파이에 기본적으로 포함된 VCL을 사용하지 않고, 써드파티 컴포넌트를
사용하는 것이 좀 부담스러운 일입니다만, 프로그램의 완성도를 높이기 위해선 불가피한 선택입니다.
기본적으로 아래 기술한 컴포넌트를 사용할 것입니다. 물론 OpenSource 기반입니다.
Synapse 35b1
소켓 컴포넌트.
홈페이지 :
http://www.ararat.cz/synapse/
다운로드 :
http://www.ararat.cz/synapse/files/synasnap.zip
TRichView 0.5.2(Freeware Version)
채팅윈도 관련
홈페이지 :
http://www.trichview.com
다운로드 :
http://www.trichview.com/rvfiles/richview.zip
* 추가적으로 더 필요한 것이 발생하는 경우에는 고지하도록 하겠습니다,
* 최대한 써드파티 라이브러리의 사용은 자제할 생각입니다.
아직 각 회차별 강의 내용은 정리가 덜된 관계로, 다음 주말(11.21)에 게시하겠습니다.
그럼에도 제가 이 강의 계획을 미리 밝히는 것은 강의를 시작하기에 앞서 여러분들의 의견을
수렴하는 과정을 갖고 싶어서입니다. 나름대로 프로그램의 전체적인 윤곽이나 개발 방향에 대해선
어느정도의 계획이 섰지만, 좀더 많은 분들의 의견을 듣고 반영한다면 좀더 좋은 강좌가 될 수
있으리란 생각에서 입니다.
건의도 좋고, 기능에 대한 요구도 좋습니다.
많은 의견 주시길 기대합니다.
2004.11.14 안영제
-> 기본 내공이 부족하면 주화입마하리라... ^^;;