View
Wecode 2일차 Session
주제
웹 서비스 역사와 발전
멘토
김순태 멘토님
순태님은 백앤드 개발자이시며,
VIM 에디터를 좋아하신다고 하신다 !
01. Internet & Web
[인터넷]
- 1960년
- 군사적 목적
- 당시의 중앙집중적 통신 시스템. 핵 공격에 취약.
- 핵 공격에도 견딜 수 있는 강한 통신 시스템 필요>> internet
- web이 출현하며 인터넷이라는 통신 시스템이 대중적으로 사용되기 시작.
[웹]
- 1990년-인터넷 출현 후 30년뒤 팀버너스리가 만듦.
- web은 최초의 브라우저.
- world wide web을 통해 인터넷이 대중화됨.
- 가장큰 혁신으로 유통이 가능하게 됨.
- 예전에는 소프트웨어를 구입하려면 물리적인 매개체가 필요
- 이런 유통의 과정이 혁신적으로 줄어들면서 많은 개발자들이 창업을 하기 시작
- 실리콘 밸리 형성(Yahoo, google, Amazon)
- 닷컴붐(Dot-com bubble 2000년대)
- 웹기반의 서비스 시작. -> 인터넷에 본인들이 만든 SW를 올려서 판매 시작.
- 1세대 웹서비스->정적인 사이트(ex.Yahoo 2000)
- 이때의 기술은 HTML,CSS가 전부
Question. 인터넷이 먼저일까? 웹이 먼저일까?
- 인터넷이 먼저 생겼고, 이후에 웹이 생겨남
>>> 인터넷은 웹을 포함한다!!!
02. Web System Architecture History
[1세대 웹서비스]
- 웹 서버가 HTML 페이지 전체를 클라이언트(ex. Web browser )에게 전송
- 초창기 웹사이트 - 단순한 정보 제공 위주
- 특별히 기능이 많지 않으며, 무엇보다 User Interaction이 많이 요구되지 않았따.
- 1세대 웹이 정적인 이유? HTML, CSS자체가 정정
- 어떻게 보여지는가에 대한 것이기 때문에 로직(동적)이 없다. 정적
[2세대 웹서비스]
- javascript 사용
- 웹서비스의 발전. 단순한 정적 페이지가 아닌 다이나믹한 요소들이 요구.
- 웹 기반의 언어 자바스크립트의 출현. 자바스크립트의 역할 증대
- 동적인 2세대 웹 서비스의 출현
- Web server에서 HTML페이지 + JavaScript를 통해 서버와 필요한 데이터를 주고 받으며 User interaction 구현
- 그러나 아직 JavaScript를 많이 사용하지 않았음.
[3세대 웹서비스]
- 웹서버가 HTML 페이지 전체를 클라이언트에게 전송
- 주객전도 - 자바스크립트 >>HTML, CSS
- SPA(Single Page Application) - 단일의 html페이지에서 전체 웹 사이트/서비스를 구현
- 자바스크립트를 더 중요하게 생각하게됨.
- 기존에서는 서버가 페이지 구섯ㅇ에 필요한 모든 요소를 매번 전송
- 그러나 3세대에서 넘어오면서 명확히 두개로 나눌수 있게 되었다.
- Frontend 개발과 Backend 개발이 독립적으로 분리(프론트 - UI UX/ 백엔드 - Data)
- 구조적 분리. Frontend 서버와 Backend API 서버도 분리. 업무적 분리.
03. Morden Web
- User Interaction의 중요성 증가 + 웹 복잡성 증가 + 사용자 수 , 데이터양 증가
- 이전에 겪지 못한 두가지 문제 발생( 1. 동시 접속자 수, 2. 데이터의 양 )
- System Architecture의 발전-> Frontent 서버와 Backend 서버의 분리
- BE - API 서버의 세분화. 데이터 양 증가. "Big Data", Machine Learning. AI.
- FE - 자바스크립트의 발달(Node.js-프론트가 백엔드의 영역까지 가능, React), 복잡한 웹 기능 구현가능
# 오늘날의 대표적인 웹 : https://2020.feconf.kr/
04. Development Team
[PM(Product Manager(기획자))]
- 개발하고자하는 서비스를 정의하고 기획하는 역할을 담당하는 직군
- 우리나라에서는 PM이 개발자의 상사 같은 지위를 가지고 있는 곳이 많은데, 미국에서는 그러지 않음.
- PM과 개발자는 담당하는 일이 다르다.
[Designer]
- 웹 시스템 개발에는 UI(User Interface) 및 UX(userExperience)를 구현하는 역할을 담당.
- 사용자가 직접 경험하고 사용하는 서비스를 눈에 보기좋게, 사용하기 편리하게 디자인하는 역할.
[Frontend Developer]
- HTML, CSS, JAVASCRIPT로 프론트엔드 시스템을 구현하는 역할
- 사용자와 가장 밀접하게 연결되어 있는 개발자
- 우리나라에는 퍼블리셔라고 하는 HTML, CSS만 담당하는 고유 직군이 있음.
[Backend Developer]
- 백엔드 시스템을 개발하는 역할.
- Backend 개발자들도 크게 2가지로 나뉨.
1. Backend 에서 좀더 앞 쪽을 담당하는 (즉 API 개발을 담당하는) 개발자.
2. Backend에서도 완전 뒤쪽, 즉 데이터 수집, 분석, 관리 등의 데이터 관련 시스템을 개발하는 개발자.
- 경력이 높아질 수록 좀 더 난이도가 있는 뒷 부분에 해당하는 시스템을 많이 구현 -> DevOps
[DevOps (Development Operations)]
- 시스템개발(Development) 뿐만아니라 시스템 운영(Operation)까지 담당하는 것.
- 직군이라기 보다는 개발분야에서 나타나는 문화나 추세
- AWS 등의 클라우드 서비스가 발달함에 따라 서버 구축 및 운영 등의 System infrastructure 관리까지 백엔드 개발자가 직접 구현하는 추세
- IAC(Infrastructure AS Code)
- DevOps에 대한 수요가 굉장히 높은 편. 개발 능력과 함께 DevOps능력도 키울 것.
[Data Engineer]
- DATA Scientist가 데이터를 분석할 수 있도록 데이터를 정리하고 정석화 시키는 시스템을 구현하는 역할을 담당.
- DATA PIPELINE(ETL) 구축. 각종 데이터를 적재하는 데이터 POOL 을 만드는 등 도구 구현 역할.
[Data Scientist]
- Machine Learning, AI 등의 데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당하는 직군
- 많은 양의 데이터를 분석해서 새로운 정보와 가치를 만들어 낼 수 있는 직군
- 통계학, 수학적 추론이 가능하고, 데이터를 통해 유의미한 결과 분석 및 시각화를 통해 방향을 제시하는 직군
Melody's Memo
무궁무진한 Web의 발전 그 끝은 어디인가....!!
Web을 만든 팀버너스리, 그의 기발한 아이디어 하나가 포도나무 가지 뻗듯이 다양한 기술과 직업군을 만들어내고,
우리의 상상을 웹을 통하여 현실에서 실현가능하게하며, 더 나아가 전세계인과 소통할수 있는 커뮤니티를 만들어내게 되었다.
이는 정말 놀랍고 대단한것 같다.
나 또한 그 덕분에 개발자로서 웹의 세계로 들어올 수 있게 되었다는 사실!
인터넷을 사용할때마다 그와 그의 팀의 노고를 기억하며 감사해야겠다..
우리 모두 엄청난 수혜자들!
감사합니다. 팀버너스리.
PS. 새로 알게된 사실 : 백엔드 개발자도 역할이 크게 2가지로 나뉜다는 것!
내가 첫 신규로 입사해서는 API 쪽을 담당하게 될 확률이 높을 것 같다.
'WEB' 카테고리의 다른 글
Web) Home Server_DHCP (0) | 2021.07.22 |
---|---|
Web) Home Server_Dynamic & Static_IP address (0) | 2021.07.21 |
Web) Home Server_port_forwarding (0) | 2021.07.21 |
Web) Home Server_공유기_NAT_IP주소알아내기 (0) | 2021.07.20 |
reply