cgi 등 웹 프로그램 잘 아시는분?

park712의 이미지

www 프로그램을 자바,asp php jsp cgi등을
몰라서 그러는데요
이들의 차이점이나 공통점이 뭐죠?
들은 이야기로는 cgi만 알면 웹 전반에 대해 이해한다는데요
참고로 전 실무로 c c++,mfc만 10년 정도 했고요.
웹 프로그램 모르니 너무 불편하더군요.
웹 프로그램 메카니즘을 배우려면 몇 년하면 될까요?
전문 프로그래머가 아닌 c c++ mfc에 참고로 할 정도로요

다크슈테펜의 이미지

자바,asp php jsp cgi
우선 말씀하신 CGI같은 경우에는 작성언어는 별로 상관이 없습니다.
즉 형식이 클라이언트에서 요청을 하게 되면 CGI에 관련된 프로그램이 실행되어서 HTML로 해석되어 져서 나오게 됩니다. 즉 컴파일된 프로그램의 결과가 웹페이지로 해석되어 져서 나옵니다.
즉 CGI상에서 돌아가는 프로그램은 서버에서 실행될수 있는 환경이어야 합니다.
ASP나 PHP나 JSP는 서버 상에서 돌아가는 스크립트 언어 입니다.
ASP는 기본이 비주얼 베이직을 기반으로 하고 PHP는 C언어 기반 그리고 JSP는 자바를 기반으로 하고 CGI와 다른점은 서버상에서 실행되는게 아니라 해석된다는 점이겠지요...즉 CGI와 같이 컴파일 된 프로그램이 실행되는게 아니라 요청을 받으면 해석되어 집니다.
실행환경은 셋다 다릅니다.ASP는 기본적으로 IIS상에서 돌아가고 대부분 웹서버가 그렇습니다.PHP도 역시 서버상에 해석이 가능한 상태여야 하고 JSP는 톰캣이나 제이런등이 설치된 환경에서 작동합니다.
자바는 기본적으로 클라이언트에 장착된 버추얼 머신에서 돌아갑니다만 자바에서 탄생한 서블릿이라던가 그런거는 서버상에 있는 가상머신에서돌아갑니다.

보통은 CGI는 요즘 거의 안쓰는 걸로 알고 있고...
ASP나 아니면 ASP닷넷 그리고 자바와 서블렛 자바빈즈 연동 등이 주로 쓰이겠지요...

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

익명 사용자의 이미지

11

익명 사용자의 이미지

cgi는 개념입니다.
아마 찾아보시면 common gateway interface입니다.

그리고 asp, php, jsp등이 있는데 이것들은 cgi를 vb, php, java이런 언어로 구현한것이지요
통상 cgi로 잤다고 이야기 하는데 이것은 c로 cgi를 구현했다는 이야기이지요

이 web server와 browser간의 통신을 이해 하기 쉬운 방법은 c로 짜보는것입니다.
좀 시간이 걸리고 손이 많이 가지만 한번 이해 하시면 asp, php, jsp등에서 쓰이는 공통의
특성을 얻어가실수 있습니다.

saxboy의 이미지

웹프로그램의 메커니즘은 c로 작성한 cgi로 무엇이든 db를 백엔드로 넣은 간단한 게시판 또는 방명록 따위만 한번 작성해보신다면 쉽게 이해하실 수 있으리라 생각합니다.
요즘에는 웹이 워낙 방대해져서 실제로 웹쪽 일을 하려고 한다면 알아야 할 것들이 무척 많지만, 프로그래머로의 교양이라고 생각하고 웹을 이해하려고 한다면 그 정도면 충분하지 않을까 합니다.

cgi는 제가 이해하는 한에서는 stdin 은 웹서버의 소켓, stdout은 웹브라우저의 소켓, stderr은 웹서버의 에러로그이며 특별한 env var 몇개를 전달받아 웹서버의 child process로 실행되는 어플리케이션쯤 될 것 같군요. cgi라는 단어 자체는 일종의 인터페이스 내지는 표준이라고 생각하셔도 좋을 것 같고요. 그리고 php, jsp, asp는 이 작업을 간단하게 해주기 위해서 html에 embed시켜 사용할 수 있는 스크립트 언어라고 이해하셔도 좋겠습니다. 아울러 많이 사용하고 있는 application server라는 단어는 아예 이런 언어의 인터프리터만으로는 부족해 웹서버를 포함시켜 버린 것이라고 생각해도 무리가 없을 것 같습니다.

익명 사용자의 이미지

park712 wrote:

...
참고로 전 실무로 c c++,mfc만 10년 정도 했고요.
...
웹 프로그램 메카니즘을 배우려면 몇 년하면 될까요?
...

c/c++/mfc 10년이면, 웹프로그램 메카니즘은 숙달에 걸리는 시간은, 아주 오래, 길게 잡아도 3개월이내 일것으로 예측됩니다.

우려되는것은 기존에 GUI쪽을 하셨다면 모를까? 내부 엔진 부분에 10년의 많은 시간을 보냈다면, 재미없어서 적응이 될지가 문제로 보입니다. 난이도 보다는 즐겁지 않을 수 있다는 얘기지요.

음, ...재미...없다.??!!... 쿵~

park712의 이미지

Quote:

c/c++/mfc 10년이면, 웹프로그램 메카니즘은 숙달에 걸리는 시간은, 아주 오래, 길게 잡아도 3개월이내 일것으로 예측됩니다.


오늘 회사직원 몇 명에게 물어봤습니다. 최근 입사한 사람들은 거의 다 웹 프로그램하더군요. 하여간 여러분들 답변 감사하고요. 3개월 힘들죠. 메카니즘을 이해하는게 가장 어렵다는게 저 생각입니다. 메카니즘만 이해하면 프로그래밍 하기 매우 쉽거던요

후회없이 살자

dolhani의 이미지

아래 페이지 한번 둘러 보시죠.

http://www.corewebprogramming.com/

Web Development with JavaServer Pages, Manning
에 보면 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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.