Web System history

sanghun Lee·2020년 7월 26일
0

Today I Learned

목록 보기
32/66

1. 전통적인 웹 시스템의 구조

1.1 초창기 웹사이트의 구조

  • 웹서버를 통해 HTMl page전체를 클라이언트(웹브라우저 등..)에게 전송하였다.
  • 초창기 웹사이트및 서비스는 html css등 단순 정보 제공위주였기에 특별한 기능이 많지 않았으며
    무엇보다 user interation이 많이 요구되지 않았다.

1.2 user interation

  • 웹 서비스의 발전에 따라 html/js/xml등 단순 정적인 page가 아닌 dynamic한 요소들이 요구되었다.
  • 그에 따라 Java Script의 역할이 커지기 시작하였으며 서버또한 html페이지 만이 아닌 js를 통해 서버와 필요한 데이터만 주고 받는것을 통해 dynamic한 user interation을 구현하게 되었다.
  • 이 때 js 는 일부분에서만 사용되고 현재 통용되는 api의 개념이 널리 사용되지는 않았다.
  • 동일한 server에서 html/js, 데이터 둘다 전송하였다(데이터 전송에는 xml)

####➕
Ajax란 ??
xml이란?

1.3 SPA(Single Page Application)

  • 이전에 하나의 페이지에서 다른 페이지로 넘어가는 다수의 html이 페이지를 구현하였다면 단일 html 파일을 통해 웹사이트와 서비스를 구현하기 시작했다.
  • 기존 방식대로 필요한 모든 정보를 한번에 서버에서 client에게 보내는 것이 아닌 맨처음 전송된 단일 html페이지에 포함되어 있는 js에서 필요한 데이터만 api server로 부터 호출하여 필요한 화면을 dynamic하게 새로 구성해주는 방식이다.
  • 이에 따라 html/js 부분 과 데이터 부분이 구조적으로 분리되기 시작하며 front-end와 Back-end의 개발이 더 독립적으로 분리가 되게 된다.
  • 그리고 front-end서버와 back-end API 서버도 분리가 되며 그에 따른 front,back-end 개발업무가 분리가 되는 구조로 발전된다.

####➕
*API란? 인터페이스 사이를 연결하는 그 모든것을 API라고 칭하는 등 다양한 개념이 존재하나
웹 개발에 있어서는 API를 긁어오는 주소를 말한다. 그리고 그 주소 끝에 각 데이터마다의 특별한 주소가 지정되어 있는데 이것을 Endpoint라고 한다.

(ex) 마켓컬리의 xhr파일 중 category로 기재된 친구를 다시 보자

*xml이란?

1.4 web system의 규모가 커짐

  • 웹사이트와 서비스들의 규모가 엄청나게 발전되고 커짐에 따라 시스템 구조도 훨씬 복잡하고 커지게 된다.
  • Front-end는 Node js React Js등의 js 엔진과 라이브러리의 발달으로 웹상에서 더 복잡한 기능들을 구현하게 된다.
  • Backend는 많은 웹서비스들의 스케일들이 엄청 커짐에 따라 구조가 굉장히복잡하게 발전되며 규모도 상당히 커졌다. Micro Service Architecture 등의 새로운 구조 개념이 발전되며 API서버들이 훨씬 세분화 되며 규모가 커졌다.
  • 분석을 요하는 데이터 양의 증가에 따라 ETL/Data Pipeline이 발전하게 되며 Hadoop등의 Bigdata분석 프래임 워크 등이 발달되고 소위 BigData분석 시스템이 많은 회사들의 백엔드 시스템에 도입되게 되었다.
  • 최근에는 머신러닝(ML)과 AI의 기술발달로 많은회사들이 관심을 가지며 백엔드 시스템이 계속해서 방대해져가는 추세이다.

####➕

  • Node Js의 발전으로 front-end개발자가 간단한 backend기능을 직접구현하는일도 가능해졌으며 흔하게 됬다.

최근의 개발팀 구조

  • PM:Product Manager(기획자): 전반적인 개발의 기획을 담당하며 개발된 제품 또는 개발하는 제품의 추가 이벤트 기획등에 관여한다, PM과Dev는 담당하는 일이 틀린 팀원이지 서로 상하관계가 아니다.

  • Designer: 웹페이지에 시각적으로 보일 요소들을 디자인한다.

  • Front-end Dev: 한국에는 Front-end이외에도 퍼블리셔(html/css만 담당)라는 고유 직군이 있으나 현재는 사라지고 있는 추세이며
    Front-end개발자는 전반적인 UI,UX의 개발등에 관여한다
    Back-end Dev: 백엔드 개발자는 크게 두가지로 나뉘는데 좀더 앞쪽을 담당하는 (API개발)을 담당하는 개발자와 뒤쪽의 데이터 수집,분석,관리등의 데이터관련 시스템을 개발하는 관리자이다
    DevOps: Developer와 Operator의 합성어로 개발자가 system infrastructure관리까지 담당하는것을 말한다.
    *SysOps: 서버 설치등의 시스템 인프라를 담당하는 직군이며 현재는 AWS같은 cloud service가 점점 많이쓰이는 추세로 Sysops인력을 두지 않고 Devops개발자들이 시스템인프라를 담당하는 추세이다.

DataScientist: 머신러닝, AI 등의 데이터분석과 알고리즘 데이터분석 모델링을 구현하는 직군이다.
DataEngineer: DataScientist들이 대부분 코딩에 그리 능숙하지는 않기 때문에 그들을 도와 data modeling등의 구현을 도와주는 개발자들이다.
*Tester: QA(직접 수동테스트를 실행하는 직군) Software Engineer in TesT(자동테스트 시스템을 전문적으로 구현하는 개발자)

####➕
Front-end의 역할에 대해 구체적인 내용이 더 필요할듯
scrum이란
*Data pipe line이란?

profile
알고리즘 풀이를 담은 블로그입니다.

0개의 댓글