이리나이
2k
2017-07-25 18:38:50
6
12635

Jsp와 node.js



궁금한게 있는데요

Jsp나 php처럼 서버사이드 전용 언어를 쓰는 경우의 장단점과

Node.js처럼 클라이언트단 자바스크립트와 같은 언어를 서버사이드 언어로 쓰는 경우의 장단점이 뭘까요?

정확히 모르겠어서

어떻게 생각하시나요?

1
  • 답변 6

  • 협군
    6k
    2017-07-25 18:49:42 작성 2017-07-25 18:53:46 수정됨

    node.js 는 jsp, php 와 비교대상으로 삼기에는 범위가 넓은데요.

    웹개발자 입장에서야 서버사이트스크립트 중에 하나라고 생각되겠지만 그건 좁게 봐서죠.


    오히려 응용프로그램 개발에 가깝습니다.

    라이브러리 중에 HTTP 모듈이 쉽게 되어 있어서 웹서버스크립트처럼 활용이 되는 것이지만

    실제로는 웹서버를 만드는 것이지요. jsp 같은 것이 아니라 java 로 톰캣 같은 standalone 웹 서버를 만드는 격입니다.

    오히려 비교 대상이라면 c#, python 등을 놓고 비교해야 되지 않을까요?


    추가로 질문에 있는 node.js 의 자바스크립트와 브라우저에서 동작하는 클라이언트 자바스크립트는 언어만 같고 활용이 다르지요.

    비슷한 예로 웹개발과 안드로이드개발이 둘 다 자바로 개발을 하며 공통 모듈이라던가 라이브러리는 같이 쓸 수 있다지만 플랫폼이 다릅니다.

    적용 가능한 프레임워크도 다르며 실행 라이프사이클이 다르며 핵심적인 부분들은 완전히 다르다고 봐도 무방합니다.


    자바스크립트 할 줄 안다고 node.js 개발자로 취급하지 않는 이유가 있습니다.


  • nickEnuj2017
    119
    2017-07-25 19:49:12 작성 2017-07-25 19:51:58 수정됨

    용어 정리가 필요한데,


    Jsp나 php처럼 서버사이드 전용 언어를 쓰는 경우 => 전통적인(traditional) server-side HTML rendering이라 표현합니다

    Node.js처럼 클라이언트단 자바스크립트와 같은 언어를 서버사이드 언어로 쓰는 경우 => SPA(Single Page Application) 이라고 표현합니다.


    SPA는 REST와 맞물려 동작되도록 설계된 겁니다.


    SPA, REST 를 키워드로 googling 해 보십시오. network traffic 비용 문제, refresh 없는 웹 페이지, SEO(Search Engine Friendly) 등 너무도 많은 뉘앙스의 차이를 이해하게 될 것입니다.


    최신(modern)은 SPA + REST인데, 언제나 여기에 성가신 건 IE(Internet Explorer)로 표현되는 구형 브라우저 문제 입니다. XP에서 접속되는 navor 홈 페이지는 절대로 SPA + REST 형태로 못 만 듭니다.


    그 많은 장점에도 불구하고 여전히 traditional server side rendering 형태의 웹 서버가 존재하는 이유도 아셔야 할 겁니다. - 이런 주제는 너무 지루해서 쓰기 싫네요.


  • zepinos
    21k
    2017-07-25 22:32:09 작성 2017-07-26 10:22:40 수정됨

    전 좀 논점이탈적인 얘기를 하고 싶은데 JSP 는 Java 의 한 기술 중 하나인데 서버 사이드 개발의 대표주자 처럼 얘기되는게 문제라 생각합니다. 저 유명한 헤드퍼스트서블릿&JSP 책만 봐도 비즈니스로직을 서블릿에서 처리하지 JSP 에서 처리하지 않을 겁니다. 이런 식(프리젠테이션 레이어)의 활용을 염두에 뒀지만 (HTML 레이아웃을 Table 로 잡듯) 쉽다는 이유로 JSP 를 의도 이상으로 무리하게 쓰다보니 Java 웹개발을 JSP 라고 부르는 현상이 생겨서...이건 바로잡아야 한다고 봅니다.

    마찬가지로 자바스크립트가 브라우져 언어로 각광받았지만 (vbscript 가 비주얼베이직에서 나온 것처럼) 이젠 서버 전용 혹은 브라우저 전용으로 나왔다고 하긴 어렵다 봅니다(여기저기 다 쓸 수 있게 확장이 되니까). node.js 는 단순히 브라우저에 내장된 자바스크립트 언어 해석기(v8)를 별도로 꺼내고 브라우저에서 직접 접속할 수 없는(보안상) 파일이나 기타 다른 기능을 추가한 뒤 서버 언어처럼 사용하게 된 것 뿐이라 생각합니다. 언어 자체가 함수형이고 많은 웹개발자에게 익숙하다보니 개발자 수급도 용이했던 거구요.

    사실 이 두 기술과 SPA 는 관련이 없다고 생각합니다. 각광받기 시작한 시점에 어떤 기술이 떠오르고 있었냐에 따라 같이 얘기가 더 많이 되는 기술이 있을 뿐(그게 node.js), 모두 서버 쪽에서 동작하는 HTTP 프로토콜"도" 처리할 수 있는 기술이라는 거죠.


    원글에 대한 답도 포함되어 있는데, 그 부분을 정리하자면 node.js  역시 서버 사이드라는 겁니다. 첨언하자면 브라우저 스크립트로 vbscript 도 존재하며, 서버사이드라고 잘 알려진 asp(classic) 역시 javascript 로 작성 가능하단 걸 알면 기절초풍할 분들 계실지도...

  • nickEnuj2017
    119
    2017-07-25 22:36:01

    아, 매우 끈금 없으시군요.


    아, 질문의 내용이 완전히 바뀌었네요. 제가 글을 쓸 시점의 질문은 없어 졌네.


    okky 버그 로 보이긴 하네요.

  • zepinos
    21k
    2017-07-25 23:29:50

    nickEnuj2017 님 // 제 댓글이 원 글 내용에 뜬금없단 건가요?


    글 수정하면 이력 남는데...원래 내용이 지금 글 내용이 아니란거죠? 뭔지 궁금하네요.

  • 협군
    6k
    2017-07-26 10:11:46 작성 2017-07-26 10:12:32 수정됨

    node.js 와 SPA 는 전혀 다른 개념이고 관계없는 것인데 연관 지으셨네요.

    그리고 오키는 글이나 댓글이 수정되면 그전 이력이 남습니다. 

    현재 질문글은 수정된 이력이 없는데요?

    다른 질문 글을 보신게 아닌가 합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.