gSOAP에 대해 공부하다가 궁금한게 있습니다.

oracle0212의 이미지

최근 회사에서 gSOAP 관련하여 새로 시작하는 프로젝트가 있어서 gSOAP에 대해 공부하는 중입니다.

동봉되어있는 매뉴얼을 보는 중에

and then compile the CGI binary:
> c++ -o currentTime.cgi currentTime.cpp soapC.cpp soapServer.cpp stdsoap2.cpp

라는 말을 발견했습니다.

여기서 저의 질문은,

1. CGI binary로 컴파일 하라는 말의 의미는 무엇인가요?

2. CGI binary에 대해 찾아보니 php와 연관되어 있는 개념인것같은데, php에 관련하여 기본 개념을 먼저 잡는것이 맞을까요? 그것이 아니라면 어떤 개념을 먼저 찾아보고 공부해야할까요?

3. c++ -o currentTime.cgi currentTime.cpp soapC.cpp soapServer.cpp stdsoap2.cpp 의 명령어에서 c++가 GNU 컴파일러를 사용하면 동작하는 명령어라는 것을 알아냈습니다. 그렇다면 c++ 명령어를 사용하여 컴파일한다는 것은 CGI binary로 컴파일한다는 것과는 다른 의미인가요?

처음가입하고 올리는 질문이라 많이 떨립니다. 부족한 저에게 방향성을 제시해주시면 정말 감사하겠습니다.

...!의 이미지

1 & 2.

CGI (https://en.wikipedia.org/wiki/Common_Gateway_Interface) 는 동적으로 웹페이지를 생성하는데 사용되는 규약입니다. 웹서버가 CGI를 사용하는 웹페이지를 요청받으면 (이미 생성되어 있는 html 파일이나 이미지 등을 단순히 전송하는 것이 아니라) 동적으로 웹페이지를 생성하는 프로그램에 그 요청을 넘기고 그 결과를 받아서 클라이언트(보통은 웹브라우저)에게 전송합니다. 동적으로 웹페이지를 생성하는 프로그램을 CGI binary 라고 부르고 (일반적으로 사용되는 용어 같지는 않습니다만 읽고 계신 매뉴얼에서는 이 뜻으로 사용한 것 같습니다.) 웹서버와 CGI binary 사이에 데이터를 주고 받는 방법을 CGI 라고 부릅니다.

3.
CGI binary는 어떤 언어로 작성되어도 관계 없습니다. 웹서버와 CGI 규약에 맞춰서 데이터를 주고 받을 수만 있으면 되니까요. php, perl 등이 많이 사용되지만 c, c++ 등도 얼마든지 사용될 수 있습니다.
c++ -o currentTime.cgi currentTime.cpp soapC.cpp soapServer.cpp stdsoap2.cpp
라는 명령은 단순히 c++ 소스 파일 currentTime.cpp, soapC.cpp, soapServer.cpp, stdsoap2.cpp을 컴파일해서 currentTime.cgi 라는 이름으로 저장하라는 뜻입니다. 이 녀석은 CGI 규약에 따라 웹서버와 데이터를 주고 받을 수 있도록 작성된 프로그램이겠지요 (즉, CGI binary겠지요). CGI binary가 되도록 특별히 컴파일하는 방법 (말씀하신 "CGI binary로 컴파일한다는 것") 같은 것은 없습니다. 그냥 CGI를 구현한 프로그램을 만들면 되는 겁니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.