C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[2629] Re:게시판 프로그래밍 (CGI/ISAPI)
박지훈.임프 [cbuilder] 4446 읽음    2000-01-06 00:00
: 안녕하세요... 문보석입니다...
: 함수 호출하는데 특이한 형태를 보고 이해가 가지않아서 질문올립니다...
: 어떤 함수의 프로토타입이 이렇습니다...
: void abc( int );
: 근데 메인 함수에서 이 함수를 호출하는데 다음과 같이 합니다...
: (*abc)( 1 );
: 이게 도대체 무슨 의미죠??
: 기본이 약한 저로서는 이해가 잘 않되네요...
: 그냥 보통 호출하는 방법과 어떤 차이가 있는지요...
: 그럼 안녕히...
: 참... 또하나 궁금한게 있는데요...
: 빌더로 이 게시판을 만들었다고 하셨는데 구체적으로 어떤 의미인가요??
: 어설픈 제 짐작으로 asp에서 참조할수 있는 dll 화일을 만들었다는 의미인가요???
: 아님 뭐죠???
:


임펠리테리입니다.
한 질문글에서는 한가지 내용만 문의해주시기 바랍니다.

말씀하신 것과 같이 이 게시판은 빌더로 만들었습니다.
웹 게시판은 웹서버측의 프로그래밍으로 만들어진다는 것은 짐작하실 수 있겠지요?
웹서버 프로그래밍은 크게 스크립트를 사용하는 방법과 컴파일된 모듈인 CGI류의 방법이 있습니다.
말씀하신 ASP가 바로 웹서버 스크립트입니다. 이 ASP는 MS의 웹서버인 IIS나 PWS에서만 실행될 수
있습니다. 반대로 요즘 리눅스에서 많이 쓰이는 아파치 웹서버는 PHP와 Perl을 사용합니다.

CGI류의 방법은 앞에서 말씀드린 것과 같이 컴파일된 모듈을 사용합니다. 원래 표준 CGI는 일반
EXE 파일로서, 표준 입력으로 웹서버에서 클라이언트의 요청을 전달받아 내부에서 처리하여
동적으로 웹페이지를 생성한 후 표준 출력으로 생성한 페이지를 보냅니다.
이런 표준 CGI는 사용되는 OS와 웹서버에 관계없이 아주 광범위하게 사용되는 기술입니다.
컴파일된 모듈인만큼, 스크립트에 비해 월등히 빠른 처리속도를 보여주죠.

반면 이 표준 CGI에는 결정적인 문제점이 하나 있는데, 일반적인 EXE로 되어있는 만큼, 클라이언트
로부터 요청이 들어올 때마다 매번 메모리에 로드되고 따로 실행되므로 메모리나 기타 리소스를
요청의 수만큼 비례하여 소비하게 됩니다. 그래서 동시에 아주 많은 요청이 들어오는 대형 사이트
의 경우, CGI로 해서 웹서버의 성능이 심각하게 떨어지게 됩니다.
이에 대한 대안으로 나온 기술이 ISAPI/NSAPI입니다. 이들 기술에서는, EXE 대신 웹서버의
프로세스로 임베드되는 DLL을 사용함으로써 매번 요청마다 리소스의 사용량을 현격하게 줄일 수
있고, 이에 더하여 캐싱기능이 있으므로 요청에 대한 응답이 끝나더라도 일정기간동안 DLL을
메모리에 붙잡고 있음으로써 다음번 요청시에 디스크로부터 로드할 필요가 없게 되어 응답속도
또한 빨라집니다.
ISAPI와 NSAPI는 사실 거의 비슷한 기술인데, ISAPI가 MS의 IIS와 PWS에서 사용되는 반면 NSAPI는
넷스케이프의 넷스케이프 웹서버에서 사용합니다.

빌더는 이들 CGI기술들, 즉 표준 CGI와 ISAPI/NSAPI를 모두 지원합니다. 지원하는 정도가 아니라,
자체적인 VCL 래퍼 클래스들을 사용해 훨씬 더 개발하기 편하고, 최적화된 모듈을 생성할 수 있게
해줍니다. ISAPI/NSAPI로 개발된 DLL은 ISAPI/NSAPI 모두에 사용될 수 있으며, 또 CGI와 ISAPI
/NSAPI를 쉽게 오갈 수 있습니다.

제가 이 게시판에 사용한 방법이 바로 빌더에서 지원하는 ISAPI/NSAPI입니다. 이것은 빌더의
File->New 메뉴에서 Web Server Application을 선택하면 종류를 선택한 후에 빌더가 기본적인
프레임워크를 만들어줍니다. 마치 빌더에서 New Application 하면 폼하나를 갖는 기본적인 어플리
케이션의 프레임워크를 만들어주듯이 말이죠.

그럼 참고하시길...

+ -

관련 글 리스트
2623 함수 호출하는 부분에서.... 문보석 3872 2000/01/05
2629     Re:게시판 프로그래밍 (CGI/ISAPI) 박지훈.임프 4446 2000/01/06
2626     Re:함수 호출하는 부분에서.... 박지훈.임프 3997 2000/01/06
2631         답변감사합니다... 그리고 보충질문입니다... 문보석 4071 2000/01/06
2633             Re:함수의 포인터 박지훈.임프 4297 2000/01/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.