TIL 9/5 Javascript의 발전

개발(공부) 자국·2021년 9월 5일
0

자바스크립트는 어떻게 지금까지 왔을까?

자바스크립트는 네스케이프에서 html문서를 브라우저에서 동적으로 작동하기 위해서 만들어진 프로그래밍 언어였다. 처음 만들어졌을 때는 Mocha라는 이름으로 만들어졌다가 Livescript를 거쳐 Javascript가 되었다. 자바스크립트는 브라우저안에 포함되었다. 만들어질 때는 html을 동적으로 표현하기 위해 만들어졌기 때문에 처음에는 실행코드로 만드는 컴파일 과정없이 코드를 해석하여 실행하는 인터프리터의 기능으로 작동했다. 이런 자사스크립트는 브라우저마다 파편화되어 지원하는 기능이 다른 문제로 다른 브라우저에서 보이지 않게 되는 '크로스 브라우징' 이슈가 생기면서 자바스크립트의 표준화를 진행하게 되었고 그렇게 만들어진 브라우저 표준이 ECMAScript가 되었다. 표준화된 규칙에 따라 브라우저 회사는 이 기준에 맞춰서 기능들을 구현하게 되었다. ECMAScript는 버전이 올라가면서 점점 자바스크립트의 기능들을 최적화하고 새로운 기능들을 지원하고 버그들은 수정하며 웹 개발의 환경이 점점 좋아지고 그에 따라 웹 페이지의 유저 사용성이 좋아지게 되었다.

큰 변화를 이끈 발전은 무엇이었을까?

자바스크립트는 시간이 지날스록 개선되는 방향으로 발전을 거듭했다. 초기에는 javascript는 웹 서버에서 간단한 작업을 하는 정도였고 브라우저는 서버로부터 온 페이지를 렌더링 하는 기능밖에 크게 할 일이 없었다. 그리고 초기에는 매번 이렇게 서버에서 페이지의 전부를 렌더링 하는 방식을 사용했었는데 이 방식은 효율적이지 않은 데이터 통신이었다. 현재 페이지에서 유저의 입력을 받아 변화해야할 부분이 전체라면 상관이 없지만 아주 작은 일부를 변화한다고 할때도 전체를 다시 렌더링을 해야했기 때문이다. 이 때 AJAX(Asynchronous Javascript And XML)로 비동기 통신을 할 수 있는 기술이 등장했다. 이전에는 동기적으로 통신을 주고 받았다. 동기적인 방식은 코드의 순서대로 진행이 될때 코드의 작업이 끝나지 않는다면 다른 기능은 그 코드의 작업이 끝나기 전까지 동작하지 않는 방식이다. 속도가 정말 빠르고 처리해야 할 일이 많지 않다면 문제가 없지만 처리해랴할 작업이 많고 하나의 작업이 정말 오래걸린다면 오래 걸리는 작업으로 뒷 기능들은 모두 멈춘 상태가 된다. 이 부분은 자바스크립트가 하나의 스레드만 가지는 Single thread이기 때문이다. 스레드는 프로세스 안에서 실행되는 흐름을 말한다. 프로세스는 컴퓨터가 실행되는 프로그램 작업을 말한다. 이 부분은 다음에 더 자세하게 공부하고 다루는게 좋을 것 같다. 결국 싱글 스레드는 동시에 여러 코드를 실행할 수 없고 한번에는 하나씩만 코드를 실행할 수 있다는 말이다. 이 부분을 비동기 기술이 들어서면서 더 효율적으로 코드를 실행하고 관리할 수 있게 되면서 더 최적화된 빠른 속도를 구현할 수 있게 되었다. 이때 이 비동기 통신으로 SPA, Single Page Application이 가능해지게 되었다. 모든 페이지를 렌더링 하지 않고 필요한 부분의 데이터만 렌더링하는 것을 말한다. 불필요한 데이터 통신을 줄이고 속도도 빨라지는 좋은 유저 경험을 구현할 수 있게 되었다. 이를 바탕으로 SPA 를 구현하는 프레임워크와 라이브러리를 사용하는 개발방식이 크게 발전하게 되었다.

profile
기록을 중요하게 생각하는 사람입니다. 학습한 내용을 정리한 것이라 잘못된 정보가 있을 수 있습니다. 잘못된 정보는 언제든 말씀해 주시기 바랍니다.

0개의 댓글