개발자가 아니던 시절에는 서버하면 웹사이트가 이동되고 로그인이 되게 해주고 등등.. 다양한 기능을 해주는 것이라 생각했다.
어떻게 보면 맞고 어떻게 보면 아니라고 생각한다. 그 이유는 페이지를 빌드해주는 것은 프론트 서버가, 해당 데이터에 대한 부분은 백엔드 서버가 해줄 수도 있기 때문이다. MSA에 대해 알아 보면서 서버의 개념부터 하나하나씩 정리해볼 예정이다.
백엔드 서버라 하면 대부분 스프링 부트, 장고, 노드JS 등을 흔히들 말하고는 하는데 개인적으로 이건 맞지 않다고 생각한다. 백엔드 서버가 데이터에 대한 부분을 처리해준다고 했을 때 이는 WAS의 개념이기 때문에 단순히 스프링 부트를 백엔드 서버로 했다고 하면 이는 WAS 서버가 스프링 부트로 구성되었단 뜻일 뿐이다.
즉, WEB서버로 주로 쓰는 프레임워크를 WAS처럼 사용할 수 있다. 리액트에 있는 내장 서버인 노드를 WAS처럼 사용할 수 있고 반대로 스프링 부트에서 mustahe, thymeleaf와 같은 의존성을 받으면 정적 페이지를 구성할 수 있으며 톰캣으로 WAS서버를 사용할 수 있는 것처럼 말이다.
정리하자면 백엔드 서버는 WAS 서버를 의미하고 일반적으로 데이터베이스 서버와 함께 api 작업을 수행해준다.
프론트 서버에는 리액트, 뷰, 등을 말하곤 한다. 대부분 자바스크립트 기반인데 자바스크립트의 성질이 브라우저블하다보니 현재는 프론트 영역을 완전히 장악했다는 느낌이 든다.
전에는 프론트 서버의 역할에 대해서 잘 몰랐는데 프론트 개발자인 친구에게 물어보면서 이해를 해보니 결국 다 똑같다는 생각이 들었다. 모든 프레임워크는 WEB, WAS서버처럼 사용할 수 있지만 대개 프론트 영역은 자바 스크립트 기반으로 하는 것이라고 생각했다.
WAS는 Web Application Server의 약어로, 데이터베이스 접속 기능을 제공해주거나 여러 개의 트랜잭션을 관리해주는 등의 역할을 수행해준다.
WEB은 정적 페이지 자원인 html, css 등의 자원을 네트워크 망에 종속되지 않고 웹 서비스를 진행해준다.