아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
귀한콜리156
귀한콜리15619.04.06
자바에서 서블릿을 쓰고 있는데 다른 언어에도 서블릿 역할을 하는게 있나요?

자바 JSP 공부를 하면서 서블릿을 써보고 있는데

예전에 PHP를 잠깐 공부했을 때와 좀 다르다고 느꼈습니다.

다른 언어에서도 서블릿과 같이 클라이언트와 DB 사이에서 비지니스 로직 수행 역할을 하는 것이 있나요?

  • JSP가 서블릿으로 컴파일됩니다.

    PHP라도 Zend나 HHVM을 사용하신다면 간접적으로 서블릿 역할을 하는 것을 쓰는 것입니다.

    Java는 Servlet을 직접 만들 수도 있고, JSP를 컴파일해서 만들 수도 있지만

    PHP는 서블릿 역할을 하는 걸 직접 만들 수 없다는 차이는 있습니다.


  • 질문자의 질문을 조금 수정하셔야 올바른 질문이 될것 같습니다.

    JSP 공부를 하면서 서블릿을 쓰는데 -> JSP 와 서블릿은 언어적 구분보다는 아키텍처 구조의 구분입니다.

    JSP -> View 역할, 서블릿 -> Controller , 빈즈 -> Model 즉, MVC 모델에서 각자가 맡은 역할을 구분짓기 위해 만든것이죠. 실제로 JSP 든 서블릿이든 빈 이든 다 Java 언어로 쓰고 컴파일 됩니다.

    PHP 잠깐 공부할때는 2-tier 방식으로 봤는데, JSP 공부하면서 서블릿 써보니 3-tier ( MVC 모델 ) 이어서 다르게 느꼈습니다.

    라는 질문이 좀더 명확할것 같네요.

    다른 웹개발 언어로도 MVC 아키텍처 개념으로 개발이 가능합니다.

    물론 그 구현체의 모습은 조금 다르지요~


  • Servelt은 CGI를 대체하기 위해 나온 기술입니다. 그럼 CGI(Common Gateway Interface)는 무엇이냐 하면은 웹과 일반 응용 프로그램을 연결하여 동작시키기 위한 표준 인터페이스입니다.

    인터넷 초기의 대부분 CGI는 C나 또는 Perl 언어로 사용해야 했습니다. 배우기도 어려웠고 난이도도 높았죠.

    그러한 때 1996년에 자바가 등장하면서 CGI를 자바로 대체해나가기 시작한 것입니다. 이후 HTML 과의 연동을 쉽게하기 위해 Servlet이 나왔고 데이터베이스와 연동을 쉽게하기 위해 JDBC가 나온 것입니다.

    PHP는 아직도 CGI 방식을 지원합니다.

    참고 https://docs.python.org/3/library/cgi.html

    자바에서 비즈니스 로직은 2가지로 일반적으로 구현합니다. J2EE에 맞추어 구현하던가 아니면 일반 Bean 형태로 구현하던가 합니다.