작성
·
113
1
답변 1
1
안녕하세요, lsvk3577 님! 공식 서포터즈 codesweaver 입니다.
최근에는 자바스크립트가 브라우저에서 독립하였지요. 요즘 프로그래밍을 공부하는 입장에선 백엔드 언어가 필요한가 의문이 들 수도 있겠네요.
자바스크립트의 역사를 살펴보면 과거 넷스케이프 브라우저에서 처음 등장한 스크립트는 이후 마이크로소프트의 인터넷 익스프롤러를 거쳐 구글의 크롬, 모질라 재단의 파이어폭스 등 다양한 브라우저에서 발전했습니다. 중요한건, 과거의 자바스크립트는 브라우저 종속적인 기술이었습니다. 개발자가 작성한 스크립트가 어떻게 실행될지는 전적으로 브라우저 제조사에 달렸던 거에요. 게다가 자바스크립트로 백엔드 를 처리한다는 것은 상상하기 어려울 정도로 조악한 상태였습니다.
이후 브라우저 독립적인 자바스크립트 환경 Node.js 가 등장하였고, 자바스크립트가 백엔드 역할을 할 수 있음을 보여주었습니다. 물론 자바스크립트의 싱글 스레드 한계나 약한 타입과 난해한 문법 등 백엔드 언어로 적합한지에 대해 많은 비판을 받고 있습니다. 어쨋든 자바스크립트로 모든 영역을 커버할 수 있다는 가능성을 보여주었다는 의의가 있습니다.
그럼 백엔드 언어는 이제 사라질까? 에 대해서는 부정적으로 생각하고 있습니다. 현재의 백엔드 영역은 수십년의 역사를 거치며 누적한 사례와 기술이 녹아있습니다. 자바계열의 스프링 이라는 프레임워크 하나만 봐도 방대한 영역에 대한 해법과 확장에 대한 고민과 노하우가 집약되어있죠. Node 진영이 급속히 성장했다곤 하나 아직 서비스에 적용하기엔 신중해야 한다는 입장이 많습니다. 서비스에 적용하는 기술은 그만큼 '검증'된 기술인가가 중요한 고려사항인데, 개인 사업을 하는게 아니라 회사에 소속되어 있는 개발자라면 기술 선택에 보수적인 성향을 보여야 합니다. (물론 이미 검증이 끝났는데도 바뀌지 않으려 하면 소위 '고인물'이 되지요)
정리하면,
웹은 표준화 없이(혹은 표준을 애써 무시하며) 중구난방으로 개발되어 온 분야입니다. 최근에 와서야 표준이 자리잡기 시작했습니다.인터넷 익스프롤러 종말의 날, 웹 개발자들은 환호했죠.
그래서 환경에 상관없이 항상 동일한 동작을 보장하기 위한 기술이 필요했습니다. 그러려면 클라이언트 환경이 아닌 서버에서 동작하는 언어가 필요했죠. 클라이언트는 통제 불가능한 변수지만 서버는 서비스 제공측에서 제어 가능한 변수이기 떄문입니다.
현재 백엔드와 프론트엔드 영역이 나뉘어 있는 이유는 아직 웹의 역사가 짧기 때문입니다. 미래에는 백엔드와 프론트엔드의 구분이 무의미해 질 날이 올지도 모르겠습니다. 그때가 되면 옛날엔 백엔드 프론트엔드 개발자가 따로 있었다는 말이 이상하게 들릴수도 있겠네요. '웹마스터'라는 직책이 과거의 이야기가 된것처럼요. 아이폰 개발자, 안드로이드 개발자가 플루터 개발자 하나로 통합되고 있기도 하고요.
추가
스크립트의 역사와 관련해서는 모던 자바스크립트 Deep Dive 에서 재밌게 다루더라고요. 유튜브를 검색해도 좋은 콘텐츠가 많습니다.
감사합니다.