Java와 DB 연동 기술을 배워서 콘솔 기반 관리 프로그램을 개발해보았다.
물론 함수형인터페이스, 스트림, 역할분리 등 다양한 자바기술과 db연동을 하면서 재밌고 배운것도 많았다.
하지만 한 가지 아쉬움이 남았다.
'이걸 다른 사람에게 보여주고 싶은데, 콘솔 화면만으로는 부족한데?'
라는 생각이 계속 들었다.
그래서 해당 프로그램을 웹으로 옮겨보기로 결심했다.
단순히 기술을 하나하나 배우는 것보다, 웹이 어떤 흐름으로 발전해왔는지를 먼저 이해하면
지금의 기술들이 왜 존재하는지도 자연스럽게 이해할 수 있을 것 같았다.
그래서 웹 기술의 역사부터 먼저 정리해보기로 했다.
웹은 원래 문서 공유를 위한 정적인 환경이었다.
하지만 사용자와의 상호작용이 중요해지면서, 클라이언트 측 스크립트 언어가 필요해졌다.
처음에는 기능이 제한적이었지만,
2015년 ECMAScript 6(ES6)이 발표되면서 자바스크립트는 큰 변화를 맞이했다.
클래스 문법, 화살 함수, 모듈 시스템 등 다양한 기능이 추가되며,
프론트엔드는 물론 서버, 모바일 등 다양한 환경에서 사용되는 언어로 성장했다.
웹 페이지는 기본적으로 아래 세 가지 기술로 구성된다.
이 세 가지를 브라우저가 읽고 해석해서 최종적으로 화면에 출력하는데,
이 과정을 렌더링(Rendering)이라고 부른다.
HTML, CSS, JavaScript로 작성된 문서를 해석해서 브라우저 화면에 출력하는 과정이다.
웹 브라우저는 단순히 웹사이트를 띄우는 도구가 아니다.
다음과 같은 작업들을 수행한다.
XMLHttpRequest 객체가 등장하면서 비동기 통신이 가능해졌다. 이후 2006년, jQuery가 등장했다.
jQuery는 DOM 조작, 이벤트 처리, AJAX 요청 등을 간단하게 만들어 주었고,
웹 개발자들에게 큰 사랑을 받았다.
Node.js는 자바스크립트를 브라우저 외부, 즉 서버에서도 실행할 수 있게 했다.
그 결과, 자바스크립트는 프론트엔드뿐만 아니라 백엔드 개발에서도 사용되는 언어가 되었다.
웹이 점점 더 복잡해지면서, 데스크톱 애플리케이션에 뒤지지 않는 성능과 경험이 요구되었다.
이를 해결하기 위해 등장한 개념이 SPA (Single Page Application)이다.
SPA는 페이지 전체를 새로 로드하지 않고, 필요한 부분만 갱신한다.
이런 구조는 CBD (Component Based Development) 방식과 잘 어울렸다.
화면을 작은 컴포넌트 단위로 나누고, 이를 조합해 전체 앱을 구성한다.
콘솔 프로젝트를 하면서 백엔드 개발의 기본기를 익혔다.
이제는 그 프로젝트를 웹 플랫폼 위에서 작동하게 만들어보고자 한다.
웹 기술의 변천사를 먼저 살펴본 이유는,
단순히 기술을 외우기보다 그 기술이 왜 생겨났는지를 알고 싶었기 때문이다.
이 과정을 통해 웹 기술에 대한 전체적인 그림이 머릿속에 그려졌다.
앞으로는 이 흐름을 바탕으로 기존 프로젝트를 웹으로 옮기는 과정을 직접 실행해볼 계획이다.
그 과정도 블로그에 정리하며, 쌓아가고자 한다.