물먹이
219
2021-08-26 13:35:59
13
1555

웹서버와 WAS의 차이점에 대해 궁금한게 생겼습니다.


웹서버는 정적인 어플리케이션 서버 (node.js) 이고, WAS서버는 동적인 어플리케이션 서버 (php,jsp) 라고 하는데, 그럼 react와 node.js로 어떻게 게시판같은 동적인 어플리케이션을 만들수 있는건가요?? 

2
  • 댓글 13

  • HJOW
    7k
    2021-08-26 13:38:58 작성 2021-08-26 13:41:04 수정됨

    node.js 또한 WAS에 해당합니다. 정적인 애플리케이션 서버가 아니니까요.


    WAS가 아닌 웹서버라고 하면 말그대로 정적 서버

    HTTP 또는 HTTPS 요청 왔을 때 파일 내용을 그대로 응답만 해주는 서버 (html,js,css,jpg 등)

    파일 확장자에 따라, 연결된 다른 서버(WAS)로 연결만 해주는 서버가 웹서버입니다.


    근데 node.js 강의들 보면 그냥 웹서버 띄우기 이런 식으로만 말하네요.

    node.js쪽은 WAS를 따로 구분지어 얘기하지 않나봅니다.

  • 물먹이
    219
    2021-08-26 13:43:48

    @HJOW 아하.. 그럼 혹시 웹사이트를 배포할때 WAS를 구축하고, 호스팅 업체에 제가 구축해놓은 WAS서버를 사용하는게 맞나요??

  • 마라토집착
    7k
    2021-08-26 13:46:36

    React.js는  브라우져에서 개인피씨

    Node.js는 서버 was에서 작동하죠.  Html css는 웹서버에서

  • ruinnel
    634
    2021-08-26 13:47:27

    호스팅 업체가 구축해놓은.. WAS 서버라는건..

    php / jsp 호스팅 말씀하시는거 같은데..

    물론 node 호스팅이 있으면 쓰시면 되긴 합니다. 근데 잘 없을겁니다.

    그냥 일반 서버호스팅에 linux위에 node 깔고 돌리시면 됩니다.



  • HJOW
    7k
    2021-08-26 13:50:27 작성 2021-08-26 13:50:40 수정됨

    node.js 로 웹서비스하기 위해 별도의 WAS를 설치해서 실행하지 않고

    node.js 명령어(코드)로 서버를 시작하죠?


    그렇게 명령어로 서버를 실행하는 순간 node.js 에 내장된 WAS가 실행된거라고 보면 됩니다.

    거기에 정적 리소스를 위한 웹서버 따로 설치해놨으면 그건 jsp와 마찬가지로 웹서버-WAS구조를 구축한거구요

  • 물먹이
    219
    2021-08-26 13:56:22 작성 2021-08-26 13:57:25 수정됨

    현재 프론트엔드를 희망하고있는데, 웹서버 구축과 배포까지도 알아야할까요??ㅠ

  • Unknown_
    977
    2021-08-26 14:14:42

    물먹이 회사 by 회사겠지만... 저는 백엔드로 공부하고, 입사하여 풀스택 업무를 맡고, 신규 서버 구축 및 거래처 서버의 전체적인 관리까지 했었던지라... 어떻게 보면 업무 범위의 연장이라고 생각합니다.

  • 마라토집착
    7k
    2021-08-26 14:16:37

    네 집에있는 리눅스 서버에 아파치 와 스프링 같은 조합으로 

    게시판 만들기를  웹서버+ was 또는 node.js 등 이런건 설치 및 작동 시켜보면 실력이 많이 늘어요. 리눅스 명령어도 능숙해야 하구요.   프런트도  풀스택이면서  . 내  주요기술은 프런트 이렇게 해야 합니다.  일단 다 알아야함  

  • ruinnel
    634
    2021-08-26 14:17:21 작성 2021-08-26 14:22:08 수정됨

    프론트엔드 희망인데.. 호스팅까지? WAS?? 음 뭔가 좀 이상하네요.

    포인트가 어긋난거 같은데.. 예상으로는....


    react / vue 같은 프론트엔드 프레임워크 들은 node를 사용해서 개발합니다만.

    "npm run build" 같은 명령으로 빌드하게 되면..

    보통 빌드된 output이 css/js/html/image 들의 집합으로 나옵니다.

    이 빌드된 output을 일반적인 웹서버(apache httpd / nginx)에 올리면 개발하신 프론트엔드가 표시됩니다.

    즉.. output을 일반적인 웹호스팅에 ftp로 올리면 사이트가 표시됩니다.


    개발할때 node 서버가 실행되는건 ... 

    개발중인 코드를 쉽게 브라우져에 띄워서 볼 수 있게 해주기 위한 편의를 위한 기능에 가깝습니다.


    추가로... 데이터까지 입력/수정/삭제 등이 가능한 어플리케이션을 만드실려면..

    node로 express 같은 웹프레임워크를 써서 요청이 들어오면 DB에 쓰고/읽고 하는 웹서버를 따로 만드셔야 합니다.

    이렇게 만들어진 웹서버 프로그램을 보통 WAS라고합니다.

    (혹은 spring / php 등등으로 만들수도 있습니다)


  • 물먹이
    219
    2021-08-26 14:30:45
  • moonti
    5k
    2021-08-26 14:46:43
    was, webserver의 차이를 검색해보시면 좋겠는데요, 요기서 언급되는 정도로는 이해가 부족할것같습니다.
    두 개의 차이는 동적인 페이지를 렌더링하냐 정적인 페이지를 렌더링 하냐의 차이인것같아요.
    어쨋든 서버가 주는 것은 단순히 텍스트에요.
    정적인 페이지는 html, css, js, 그 외 리소스를 파일 형태로 보관하고 그대로 내려줘요.
    그런데 페이지 그리다 보면 매 페이지에서 조회한 내용이 다르게 내려주고 싶어요. js에서 바꿔도 되는데, SEO가 제대로 안되거든요. 그래서 자바 + 톰캣으로 html을 내려주는 데 중간에 데이터를 가져다가 html에 내용을 꼽아주는 형태가 되죠.
    이렇게 동적으로 웹 페이지를 생성해서 내려주는걸 WAS라고 해요.
    물론 WAS도 내부적으로 web server의 역할을 하기 때문에 font나 이미지 같은 리소스는 그냥 내려줄수있죠.

    구글에 검색하면 너무 많은데.. 그쪽을 보시면서 각각의 역할과 동작 방식을 이해하면 좋을 것 같습니다.
  • okvsks
    283
    2021-08-26 19:27:57

    웹서버가 어플리케이션 서버인가요? Web server, web application server(was) 용어보면 클라이언트 요청에 정적 마크업 html페이지 돌려주는게 웹서버고, 그 요청에 서버에 있는 어플리케이션이 여러작업을 해서 동적으로 보여줄수 있는게 was로 알고있어요

  • 장독깨기
    6k
    2021-08-27 02:08:18 작성 2021-08-27 02:14:19 수정됨

    웹서버는 http 규격에 따라 html 문서를 제공하는 역할을 합니다.

    대표적인게 아파치, nginx 죠.

    근데 이 html 문서를 데이터베이스에 있는 내용으로 채워서 서비스를 해야 하잖아요.

    그래서 웹서버는 이를 위해 인터페이스를 제공합니다. 예전엔 이 인터페이스를 CGI 라고 했습니다.

    개발자는 데이터베이스를 조회해 html 문서를 작성하는 인터페이스 모듈을 만들어 웹서버에 등록해둡니다.


    흐름을 보면 브라우저가 요청을 하고 웹서버는 요청한 url 를 해석해서 특정 규칙(예:확장자) 에 맞으면

    개발자가 등록한 인터페이스 모듈을 호출해 html 문서를 받아 브라우저로 보내주는거죠.

    여기서 이 인터페이스 모듈 역할을 하는게 WAS 라고 보면 됩니다.


    대표적인게 톰캣이죠.

    근데 이 WAS 가 이제 정적인 문서까지 전부 처리를 다 하고 성능도 크게 문제가 없습니다.

    그니까, 기능적으로 보면 웹서버는 이제 거의 필요 없다는 얘기입니다.

    다만, 정적인 컨텐츠가 많다면 성능을 고려해서 분리하는 경우도 어느 정도 있을 겁니다.


    PHP 는 웹서버 도움이 필요하죠. 즉, php 모듈을 웹서버에 등록을 해야 할 겁니다.

    Node 쪽은 딱히 경험은 없지만, Node 는 네트웍 (http포함) 서버가 될테고 

    express 가 was, 프레임웍 역할을 할 겁니다.

    다른 언어나 프레임웍도 대동소이하다 보면 됩니다.


    브라우저는 화면을 동적으로 처리할 수 있도록 자바스크립트 언어를 제공합니다.

    이를 프레임웍으로 구축한게 react 입니다.

    즉, 서버로 문서(json)를 요청하고 랜더링(html) 해서 화면에 뿌려주는 일련의 과정을 처리해주는거죠.

    근데 사용이 편리하고 간단하면서도 유연해야 하는데,... 암튼 전 맘에 들지 않더군요. ㅎ


    자세한건 검색 통해서 알아보시고 열심히 하세요. :)


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