웹서버는 http 규격에 따라 html 문서를 제공하는 역할을 합니다.
대표적인게 아파치, nginx 죠.
근데 이 html 문서를 데이터베이스에 있는 내용으로 채워서 서비스를 해야 하잖아요.
그래서 웹서버는 이를 위해 인터페이스를 제공합니다. 예전엔 이 인터페이스를 CGI 라고 했습니다.
개발자는 데이터베이스를 조회해 html 문서를 작성하는 인터페이스 모듈을 만들어 웹서버에 등록해둡니다.
흐름을 보면 브라우저가 요청을 하고 웹서버는 요청한 url 를 해석해서 특정 규칙(예:확장자) 에 맞으면
개발자가 등록한 인터페이스 모듈을 호출해 html 문서를 받아 브라우저로 보내주는거죠.
여기서 이 인터페이스 모듈 역할을 하는게 WAS 라고 보면 됩니다.
대표적인게 톰캣이죠.
근데 이 WAS 가 이제 정적인 문서까지 전부 처리를 다 하고 성능도 크게 문제가 없습니다.
그니까, 기능적으로 보면 웹서버는 이제 거의 필요 없다는 얘기입니다.
다만, 정적인 컨텐츠가 많다면 성능을 고려해서 분리하는 경우도 어느 정도 있을 겁니다.
PHP 는 웹서버 도움이 필요하죠. 즉, php 모듈을 웹서버에 등록을 해야 할 겁니다.
Node 쪽은 딱히 경험은 없지만, Node 는 네트웍 (http포함) 서버가 될테고
express 가 was, 프레임웍 역할을 할 겁니다.
다른 언어나 프레임웍도 대동소이하다 보면 됩니다.
브라우저는 화면을 동적으로 처리할 수 있도록 자바스크립트 언어를 제공합니다.
이를 프레임웍으로 구축한게 react 입니다.
즉, 서버로 문서(json)를 요청하고 랜더링(html) 해서 화면에 뿌려주는 일련의 과정을 처리해주는거죠.
근데 사용이 편리하고 간단하면서도 유연해야 하는데,... 암튼 전 맘에 들지 않더군요. ㅎ
자세한건 검색 통해서 알아보시고 열심히 하세요. :)