세대별 웹 서비스의 특징

박소정·2022년 5월 10일
0
  • 1세대 웹 - 전통적인 Web System Architecture. 정적 웹.
    • 웹 서버가 HTML 페이지 전체를 클라이언트(ex. Web browser)에게 전송
    • 초창기 웹사이트/서비스에 적합했던 시스템 - 초창기 웹사이트는 단순한 정보 제공 위주였다. 특별히 기능이 많지 않으며, 무엇보다 User Interaction 이 많이 요구되지 않았다.
    • 1세대 웹이 정적인 이유? HTML, CSS 자체가 정적
    • 어떻게 보여지는가에 대한 것이기 때문에 로직(동적)이 없다. 정적.

  • 2세대 웹 - User Interaction 의 증가. 동적 웹(자바스크립트)
    • 웹서비스들이 점점 발전함에 따라 단순한 정적 페이지가 아닌 다이나믹한 요소들이 요구됨.
    • 웹 기반의 언어인 자바스크립트가 출현. 자바스크립트의 역할이 커지기 시작함.
    • 이렇게 2세대 웹 서비스가 출현
    • Web server에서 전체 HTML 페이지 뿐만이 아니라 JavaScript를 통해 서버와 필요한 데이터만 주고 받음으로 dynamic한 user interaction을 구현하게 됨.
    • 그러나 아직 JavaScript 는 일부분에서만 사용되었고, 또한 현재 통용되는 API 의 개념이 아직은 널리 사용 되지 않음 → 동일한 서버에서 HTML, Javascript(프론트 영역) 데이터(백엔드 영역) 둘 다 전송.

  • 3세대 웹 - SPA(Single Page Application) - 구별되기 시작하는 Frontend와 Backend

    • 주객전도. 동적인 기능이 주가 되버림. → 자바스크립트가 주가 되고 그 안에 일부 HTML, CSS 가 포함.
    • 이게 바로 SPA(Single Page Application) - 하나의 파일로 전체 사이트를 구현
    • 이름 그대로, 단일의 html 페이지에서 전체 웹 사이트/서비스를 구현.
    • 기존의 방식대로 서버가 페이지 구성에 필요한 모든 요소(HTML, JavaScript, Data)를 매번 전송하는 것이 아니라, 파일은 처음 한 번만 송수신. 그 뒤로는 실시간 데이터만 주고 받음.
    • 제일 처음 전송된 단일 HTML 페이지에 포함되어 있는 JavaScript 에서 필요한 데이터를 API 서버로부터 호출하여 필요한 화면을 dynamic 하게 새롭게 구성해주는 방식.
    • HTML 태그 자체를 자바스크립트가 동적으로 생성
    • “명확히 두 개로 나눌 수 있겠다!” → 프론트엔드와 백엔드가 나뉘게 되는 기점.
    • 즉 HTML/JavaScript 부분과 데이터 부분이 구조적으로 분리 되기 시작
    • → Frontend 개발과 Backend 개발이 독립적으로 분리 (프론트 - UI UX / 백엔드 - Data)
    • 명확히 나뉘어진 두 개의 시스템으로 웹이 동작하게됨.
    • 기술 스택도 각자에 맞는 스택을 시용하기 시작함. (ex. Angular 의 출현!)
    • 이후 사용자에게 편하고, 더 멋진 웹 Frontend 를 구현할 수 있게 도와주는 Framework 혹은 Library 들이 탄생. (ex. React, Vue)
    • 프론트엔드가 개발의 혁신이 빠른 이유도 이 분야 자체의 역사가 짧음.
    • Frontend 와 Backend가 구조적으로 분리가 되면서, Frontend 서버와 Backend API 서버도 분리가 되며 그에 따라 Frontend 개발과 Backend 개발 업무가 분리가 되는 구조로 발전된다.

  • 3세대 웹에서 존재하는 포지션과 역할

Product manager(기획자)
개발하고자 하는 서비스를 정의하고 기획하는 역할을 담당하는 직군
Designer
웹 시스템 개발에는 UI(User Interface) 및 UX (User Experience) 를 구현하는 역할을 담당
사용자가 직접 경험하고 사용하는 서비스를 눈에 보기 좋게, 사용하기 편리하게 디자인하는 역할
• Frontend Developer
HTML, CSS, JavaScript 로 프론트엔드 시스템을 구현하는 역할
사용자와 가장 밀접하게 연결되어 있는 개발자
Backend Developer
백엔드 시스템을 개발하는 역할.
Backend 개발자들도 크게 2가지로 나뉨
Backend 에서 좀더 앞 쪽을 담당하는 (즉 API 개발을 담당하는) 개발자.
Backend에서도 완전 뒤쪽, 즉 데이터 수집, 분석, 관리 등의 데이터 관련 시스템을 개발하는 개발자.(경력이 높아질 수록 좀 더 난이도가 있는 뒷 부분에 해당하는 시스템을 많이 구현.) → DevOps
• DevOps (Development Operations)
시스템 개발(Development) 뿐만 아니라 시스템 운영(Operation)까지 담당하는 것
• SysOps (System Operations)
System Infrastructure 의 구현과 관리 및 운영을 담당하는 직군
DevOps 와 다르게 실제 하드웨어를 다룰 수 있는 직군
Data Center 를 사용하여 시스템을 운영하는 회사에 필요한 직군
• Data Scientist
Machine Learning, AI 등의 데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당하는 직군.많은 양의 데이터를 분석해서 새로운 정보와 가치를 만들어 낼 수 있는 직군
• Data Engineer
Data Scientist 가 데이터를 분석할 수 있도록 데이터를 정리하고 정석화 시키는 시스템을 구현하는 역할을 담당
• Tester
시스템을 테스트하여 검증하는 역할을 담당하는 직군

0개의 댓글