역사와 근본은 왜 중요할까?
시작 전 사담을 하자면, 나는 내 인생의 절반을 바쳐 리버풀이라는
축구팀을 응원했었다.
그 당시 리버풀은 과거 세계 축구를 호령했던 강팀이었지만,
그 이후로 트로피 하나 없는 팀이었다.
그럼에도 팬이 된 건 팀 레전드들과 제라드&캐러거로 이어진
팀의 근본 라인때문이다.
맨시티와 첼시가 욕 먹을 때 항상 붙던 말도 '이런 근본도 없는..' 이었다.
그래서 뭐든지 근본과 역사에 대해 아는 것이 가장 중요하다는 걸 느꼈다.
그래서 웹개발자가 되기 전, 웹의 역사에 대해 알아보려 한다.
1989년 팀 버너스 리가 월드와이드웹(www)를 발명하고 난 후,
많은 웹 서비스들이 제공되었다.
특히, 2000년대 닷컴붐이 불면서 많은 웹서비스 회사가 생겼고,
웹 관련 기술들이 발전하였다.
지금이야 복잡하고 다양한 웹 서비스를 제공하지만, 그 당시는 단순하게
문서를 웹 브라우저를 통해 보는 수준이었다
그러므로 웹 서버는 단순히 웹 브라우저가 요청하는 해당 페이지를 보내주는 정도의
기능만 했다.
단순했던 웹 서비스들이 복잡해지기 시작하면서,
User Interaction이 중요해지기 시작했다.
이는 웹 애플리케이션과 웹 사이트의 차이로 설명 가능하다.
웹 애플리케이션과 웹 사이트의 차이는 대화식 여부의 차이인데,
웹 애플리케이션은 유저와 웹 사이의 대화식이 가능하다면,
웹 사이트는 웹 페이지의 모음으로 웹에서 일방적으로 우리에게 정보를 주는
그런 차이이다.
물론 지금은 그 차이도 많이 모호해지긴 했다.
웹 서버가 HTML뿐만 아니라 JS코드까지 웹 브라우저에 같이 전송하면,
웹 브라우저는 서버에서 전달받은 걸 실행해서 사용자에게 제공되도록 한다.
그래서 페이지 전체를 로드하지 않아도 새로운 데이터를 제공할 수 있게 되었으며
이 기술을 AJAX라고 한다.
이 때부터 데이터를 xml 구조로 전송되는 것이 일반적인 시대였다.
JS의 역할이 커지게 되면서, HTML 코드를 JS코드로 직접 생성하기도 했다.
이런 방식의 개발을 통해 SPA(Single Page Application) 개발이
인기를 얻었다.
말 그대로 단일 페이지에서 모든 웹사이트/서비스의 기능을 구현하는 것이다.
이렇게 단일 페이지의 자바 스크립트를 통해 구현하다 보니,
웹 브라우저가 필요한 서버와의 통신은 데이터 전송이나 생성 및 수정에 관한
그런 것이 대부분이 되었다.
사이트 페이지를 렌더링하는 데 필요한 자바스크립트 코드는 최초에 한 번 받으므로
그 다음부터는 서버와 데이터만 주고 받는 것이다.
이걸 도식화하면 아래 이미지처럼 된다.

출처 : 깔끔한 파이썬 탄탄한 백엔드(P43~49)