단순했던 웹 서비스들이 복잡해지기 시작하면서 사용자 인터랙션(user interaction)이 중요해지기 시작했다.
정적인 데이터만 제공하는 것에 그치지 않고
웹 페이지에서 사용자와 동적으로 상호작용하는 것이 중요해졌다.
따라서 웹상에서 동적인 기능을 제공하는 JS의 역할이 커졌고
급기야 HTML도 JS코드로 구현하는 방식이 사용되기 시작했다.
전체 페이지를 load 하는 일 없이
사용자의 input을 동적으로 처리하고 새로운 데이터들을 처리할 수 있게 되었다.
이렇게 JS를 통해 사용자와의 동적 상호작용을 구현하는 기술이 AJAX이다.
JS가 주력이 되면서 SPA(Single Page Application) 방식의 프론트 개발이 인기를 얻게 되었다.
사이트의 페이지를 rendering하는 데 필요한 JS코드는
최초의 통신에서 모두 한 번에 받게된다.
따라서 그 다음부터는 서버와 데이터만 주고 받으면 된다.
최근에는 NodeJS라는 JS 엔진이 인기를 얻으면서
JS로 구현된 백엔드 시스템도 늘어나는 추세에 있다.JS를 이용하는 최대의 장점 중 하나는
JS를 이용해 프론트와 백을 모두 구성할 수 있다는 점이다.
최근에는 머신러닝과 인공지능 기술의 발달로
많은 회사들에서 이를 활용하게 되었다.
따라서 백엔드 시스템의 영역이 계속해서 확장되는 추세다.
이 둘은 서로 많이 다르고 요구되는 기술이나 능력에도 차이가 있다.
일반적으로 데이터 관련 개발이 API 개발보다 난도가 높다.
NodeJS를 통해 JS만으로 프론트와 백을 구성할 수 있게 되면서 풀스택 개발자들이 많이 생겨났다.
풀스택 개발자에 대한 수요는 많다.
특히 스타트업 같은 소규모 기업에서의 선호가 높은 편이다.
하지만 입문자들이 풀스택을 목표로 했을 때
둘 다 잘 할 수 없다는 것을 알아야 한다.
프론트나 백
둘 중 하나를 확실하게 정하고 전문분야로 만들어야 한다.
나머지 분야는 필요시에 능력을 발휘할 수 있을 정도를 목표로 한다.